当列出正在运行的进程时,我可以看到“chrome”、“notepad”、“intellij”、“sublime editor”等几个进程都有“tty =?”
- 那么他们如何能够读取键盘的输入呢?
- TTY 总是与终端/cli 相关吗?
答案1
XWindows 应用程序从 X Server 接收键盘和鼠标输入,并通过 X Server 显示内容。这些应用程序很少有控制终端(tty 列),除非它们是从具有控制终端的命令行启动的。
实际上只有少数 XWindows 应用程序需要控制终端或输入或输出重定向。其中包括xclip
、、、、、、、和。xev
xprop
其中,只有一个显示窗口,三个可以临时更改光标。xwininfo
xkill
xlsfonts
xlsclients
xlsatoms
实际上,XWindows 应用程序托管 tty 更为常见。 xterm
每个其他终端应用程序都向 shell 或在其“内部”运行的其他程序提供 tty。
最后,请注意,X 服务器本身通常(至少在 Linux 中)有一个与之关联的终端。这比其他任何东西都更适合虚拟控制台,但它确实允许键盘和鼠标在 X 服务器和其他虚拟控制台之间切换。