Linux

Linux 如何使用 /dev/tty 和 /dev/tty0

  • April 27, 2017

通過測試這個問題提供的方法,我可以看到 /dev/tty 和 /dev/tty0 之間的區別。但我真的很想知道這些設備的實際用途(比如它們將被使用的情況)。

/dev/tty是目前程序的控制 tty ,對於實際打開此特殊文件的任何程序。它不一定是虛擬控制台設備(/dev/ttyn),可以是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

實驗以顯示差異:在( ++ )或終端仿真器中執行rootshell 。現在tty3``Ctrl``Alt``F3

# sleep 2; echo test >/dev/tty

然後快速Ctrl++ ,等待兩秒鐘,然後++Alt無論如何返回。你在哪裡看到輸出? 現在對.F2``Ctrl``Alt
/dev/tty0

引用自:https://unix.stackexchange.com/questions/229530