有人可以解释一下 tty 文件是什么吗?我无法理解,使用命令:echo 1 > /dev/tty
打印到我当前的终端输出:1,但如果我尝试使用echo 1 > /dev/tty0
或echo 1 > /dev/tty1
什么也没有发生。所以我知道 /dev/tty 代表我的实际终端,但其他 61 tty 代表什么?我该如何使用它们?
注意:我通过 ssh 连接到 Linux 服务器,并且我已经了解 /dev/pts 的工作原理。
答案1
它们对应于系统上的每个单独的终端设备,无论是真实的还是虚拟的。/dev/tty
它本身很特殊,指向访问它的进程的终端。
这些/dev/tty<number>
是 Linux 文本模式虚拟控制台,您通常可以使用 Ctrl-Alt-F1 等从 X 访问它。(您的 GUI 可能位于 F6 或 F8 左右。)/dev/ttyS<number>
是串行端口和终端仿真器(xterm、 GNOME 终端或其他),以及 GNU 屏幕或 tmux 中的 SSH 会话和窗口通常显示为/dev/pts/<number>
.
写入每个写入相应的终端,最简单的测试方法是启动几个终端模拟器并tty
在每个终端上运行命令以查看它们连接到哪个 tty。
答案2
只需列出 /dev/tty* 使用ls -ls
并考虑每个特殊文件的所有者及其相关的访问权限。
通常,它们都不应该以用户 w 权限显示。
因此,标准用户只能写入他们拥有的特殊文件。
在桌面上,这些 64 字符设备中只有一小部分实际上会映射到现有控制台。
不管怎样,除了从相关键盘输入或写入屏幕之外,您还想对它们做什么?