标签: tty

如何在没有 tty 的情况下模拟 shell?

我通过 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。

linux ssh sudo shell tty

10
推荐指数
1
解决办法
7030
查看次数

Linux:在 TTY 中复制/粘贴

我正在寻找一种在 TTY 中复制和粘贴的方法。我只有一个触摸板,用起来gpm很痛苦。我能想到的唯一可能性是使用“屏幕”,但即使将 Ctrl-A 重新映射到“`”,它仍然不方便且缓慢。
有没有更舒服的方法?

linux console tty copy-paste

9
推荐指数
2
解决办法
2万
查看次数

X 在一台显示器上,一个裸露的 tty 终端在另一台显示器上?(Linux)

我电脑上的显卡有(至少)两个独立显示器的输出。我有一台高分辨率的显示器,我喜欢将它用于 X(任何图形)。然而,我的另一台显示器是旧的、低分辨率的平板显示器。

我想知道是否可以配置监视器,以便运行 X 的 tty 终端转到监视器 A(高分辨率监视器),而仅运行 bash shell 的 /dev/tty2 转到 B(较低分辨率监视器) .

我会为此使用 xorg 配置文件吗?我真的不确定。

任何有关这方面的信息将不胜感激。谢谢

linux display xorg tty

9
推荐指数
1
解决办法
9585
查看次数

较少模拟 TTY 以保留管道颜色输出

当您通过管道less传输某些内容时,程序通常会丢弃颜色代码,因为它不会输出到 TTY。因此,您必须添加--color=always选项才能使其工作。

ls -l --color=always | less
grep -R asdf --color=always | less
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,有时甚至不支持该选项,因此实际上无法强制将颜色输出到管道。

有没有(相对)简单的方法来减少对 TTY 的模拟,这样我就不必--color=always在通过管道传输到每个程序时指定每个程序,并且它会在可能的情况下自动显示颜色输出?

bash colors tty less pipe

8
推荐指数
1
解决办法
4055
查看次数

/dev/tty:没有这样的设备或地址 - 仅在脚本中

我正在为此拔头发。我查看了 /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 - 这就是失败的原因 …

ssh bash tty

8
推荐指数
1
解决办法
1万
查看次数

将输入从一个终端重定向到另一个终端

我已经进入了一个 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 中的错误?

linux unix terminal redirection tty

7
推荐指数
1
解决办法
2万
查看次数

无法在 arch linux 中切换 TTY

所以我要从 Ubuntu 转移到 Arch Linux 的领域。

在 Ubuntu 中,我能够使用ctrl+alt+F1/F2...等来切换 TTY 。

在 Arch 中,当我尝试这样做时,我只是被转储到带有闪烁下划线的黑屏(分辨率看起来也是非原生的)。

我遵循了这里的初学者指南,但无济于事。

我使用的是 Thinkpad X220,带有xf86-video-intel驱动程序(用于我的第二代 i7)并运行 i3 作为我的窗口管理器。

tty arch-linux

7
推荐指数
1
解决办法
1万
查看次数

如何在 Mac 上切换 tty(相当于 Linux 中的 chvt)?

有没有办法在不同tty的 Mac 终端之间切换?这相当于chvtLinux上的命令。

terminal tty macos

7
推荐指数
1
解决办法
2585
查看次数

我可以在 Linux 上安全地使用同一用户登录多个终端吗?

通过终端我的意思是,你可以切换到使用的手机Ctrl+ Alt+ F1-F6

我知道我可以多次登录,但这有任何副作用吗?

linux terminal tty

6
推荐指数
1
解决办法
4163
查看次数

如何向 Ubuntu 16.04 添加更多 TTY?

问题基本上是标题。我试图Ctr+ Alt+ F7,但没有任何反应。我使用了所有当前可用的六个虚拟终端,并且需要更多。如何添加更多 TTY?

terminal tty ubuntu

6
推荐指数
1
解决办法
2798
查看次数

标签 统计

tty ×10

linux ×5

terminal ×4

bash ×2

ssh ×2

arch-linux ×1

colors ×1

console ×1

copy-paste ×1

display ×1

less ×1

macos ×1

pipe ×1

redirection ×1

shell ×1

sudo ×1

ubuntu ×1

unix ×1

xorg ×1