Linux
Linux 如何使用 /dev/tty 和 /dev/tty0
通過測試這個問題提供的方法,我可以看到 /dev/tty 和 /dev/tty0 之間的區別。但我真的很想知道這些設備的實際用途(比如它們將被使用的情況)。
/dev/tty
是目前程序的控制 tty ,對於實際打開此特殊文件的任何程序。它不一定是虛擬控制台設備(/dev/tty
n),可以是pty、串列埠等。如果控制 tty 不是虛擬控制台,則該程序不必與控制台設備互動,即使它是偽設備實際上是在系統控制台上實現的。例如。對於本地執行的 X 伺服器下的終端仿真器中的 shell,所述程序形成如下互動鏈:Unix shell
⇕
/dev/pts/2
(≡/dev/tty
代表它的程序)核心 pty 驅動程序
⇕
/dev/ptmx
終端模擬器
⇕ X Window 協議
X 伺服器
⇕
/dev/tty7
(≡/dev/tty
代表伺服器)系統控制台
z``x``c
↿⇂$$ _̈░░ $$
使用者 使用者態程序的使用
/dev/tty
包括:
- 向控制終端寫入內容,忽略所有重定向和管道;
- 做一個 ioctl() – 見 tty_ioctl(4);
- 例如,從終端分離 (TIOCNOTTY)。
/dev/tty0
是作業系統的目前活動(即在監視器上可見)虛擬控制台。這個特殊的文件不太可能被系統軟體大量使用,但實際上是 syslog 守護程序的“別名”,並且經常被核心本身使用。/dev/console``tty0
/dev/console
實驗以顯示差異:在( ++ )或終端仿真器中執行
root
shell 。現在tty3``Ctrl``Alt``F3
# sleep 2; echo test >/dev/tty
然後快速
Ctrl
++ ,等待兩秒鐘,然後++Alt
無論如何返回。你在哪裡看到輸出? 現在對.F2``Ctrl``Alt
/dev/tty0