我通过 SSH 维护的系统遇到了问题。当我测试需要 TTY 的命令时,它们可以工作,可能是因为 SSH 会话。在某些不清楚的情况下,没有可用的 TTY 和诸如sudo失败的命令
(sudo: sorry, you must have a tty to run sudo)
Run Code Online (Sandbox Code Playgroud)
他们在 SSH shell 中取得了成功,这使得在问题发生之前很难跟踪。由于这是一个反复出现的问题,我正在寻找一种方法来在不提供 TTY 的 shell 中测试对脚本的更改。
我正在使用带有 bash 和 ksh 的 Ubuntu 19.04、CentOS 6 和 Debian 9。
我正在寻找一种在 TTY 中复制和粘贴的方法。我只有一个触摸板,用起来gpm很痛苦。我能想到的唯一可能性是使用“屏幕”,但即使将 Ctrl-A 重新映射到“`”,它仍然不方便且缓慢。
有没有更舒服的方法?
我电脑上的显卡有(至少)两个独立显示器的输出。我有一台高分辨率的显示器,我喜欢将它用于 X(任何图形)。然而,我的另一台显示器是旧的、低分辨率的平板显示器。
我想知道是否可以配置监视器,以便运行 X 的 tty 终端转到监视器 A(高分辨率监视器),而仅运行 bash shell 的 /dev/tty2 转到 B(较低分辨率监视器) .
我会为此使用 xorg 配置文件吗?我真的不确定。
任何有关这方面的信息将不胜感激。谢谢
当您通过管道less传输某些内容时,程序通常会丢弃颜色代码,因为它不会输出到 TTY。因此,您必须添加--color=always选项才能使其工作。
ls -l --color=always | less
grep -R asdf --color=always | less
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,有时甚至不支持该选项,因此实际上无法强制将颜色输出到管道。
有没有(相对)简单的方法来减少对 TTY 的模拟,这样我就不必--color=always在通过管道传输到每个程序时指定每个程序,并且它会在可能的情况下自动显示颜色输出?
我正在为此拔头发。我查看了 /dev/tty 的所有谷歌结果:没有这样的设备或地址,它们都不适用于我正在做的事情/没有一个解决方案是成功的。
我有一个脚本,可以通过 SSH 连接到另一台机器(使用公钥)并自行运行(使用不同的参数 - 它不会循环)。调用这个 rpmInstallScript.bash
在脚本的某一时刻,它运行 rpm -ivh 来安装一些 RPM 包。在安装这些软件包之一的过程中,会在 /var/tmp 中放置一个名为 rpm-tmp 的文件。[6 个随机字符]
这个文件是一个脚本,我猜它是在 rpm 安装过程中的某个时刻执行的。
在脚本中,有多次出现
echo [something] > /dev/tty
Run Code Online (Sandbox Code Playgroud)
或者
echo [something] | tee [something] > /dev/tty.
Run Code Online (Sandbox Code Playgroud)
所有这些事件都以 /dev/tty 失败:没有这样的设备或地址。如果我手动 ssh 进入机器并自己 rpm 包,运行 rpm-tmp 脚本或运行 rpmInstallscript.bash,它工作正常。
我正在使用 ssh -t 连接到远程机器,因此应该有一个 tty,对吗?
我不明白为什么这不起作用,特别是因为手动执行,即使没有 -t 选项,也能正常工作。我唯一能想到的是它不是交互式会话 - 但 /dev/tty 应该仍然存在,对吗?
编辑 - 错误结果来自:
ssh -t root@[machine] -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <<DONE
./rpmInstallScript.bash
Run Code Online (Sandbox Code Playgroud)
其中 rpmInstallScript.bash 运行 rpm -ivh,放置在 /var/tmp 中的结果脚本使用 >/dev/tty - 这就是失败的原因 …
我已经进入了一个 linux 机器,我正在使用 dvtm 和 bash(虽然我也尝试过使用 Gnu screen 和 bash)。我有两个终端,当前的 /dev/pts/29 和 /dev/pts/130。我想将输入从一个重定向到另一个。
据我了解,在 /dev/pts/130 中,我可以输入:
cat </dev/pts/29
Run Code Online (Sandbox Code Playgroud)
然后当我输入 /dev/pts/29 时,我输入的字符应该会出现在 /dev/pts/130 中。然而,最终发生的是我输入的每个其他字符都被重定向。例如,如果我输入“你好”,我会得到这个:
/dev/pts/29 | /dev/pts/130
$ | $ cat </dev/pts/29
$ el | hlo
Run Code Online (Sandbox Code Playgroud)
这真的很令人沮丧,因为我需要这样做以重定向在 gdb 中运行的进程的 io(我已经尝试过运行 /dev/pts/# 并设置低级 tty /dev/pts/# 并且都导致上述行为)。我做错了什么,还是 bash/screen/dvtm 中的错误?
所以我要从 Ubuntu 转移到 Arch Linux 的领域。
在 Ubuntu 中,我能够使用ctrl+alt+F1/F2...等来切换 TTY 。
在 Arch 中,当我尝试这样做时,我只是被转储到带有闪烁下划线的黑屏(分辨率看起来也是非原生的)。
我遵循了这里的初学者指南,但无济于事。
我使用的是 Thinkpad X220,带有xf86-video-intel驱动程序(用于我的第二代 i7)并运行 i3 作为我的窗口管理器。
有没有办法在不同tty的 Mac 终端之间切换?这相当于chvtLinux上的命令。
通过终端我的意思是,你可以切换到使用的手机Ctrl+ Alt+ F1-F6。
我知道我可以多次登录,但这有任何副作用吗?
问题基本上是标题。我试图Ctr+ Alt+ F7,但没有任何反应。我使用了所有当前可用的六个虚拟终端,并且需要更多。如何添加更多 TTY?