1. 程式人生 > >linux 系統tty、pty和pts 的概念及區別

linux 系統tty、pty和pts 的概念及區別

發送 種類型 rtl mina com 文件 閱讀 遠程 好玩

linux 系統tty、pty和pts 的概念及區別

  1. tty(終端設備的統稱):
    tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱讀和發送信息的東西,後來這東西被鍵盤與顯示器取代,所以現在叫終端比較合適。
    終端是一種字符型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。

tty指的是七個alt+crtl+F1~F7

tty1-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換,+F7就是切換回圖形界面。

在Linux系統中,計算機顯示器通常被稱為控制臺終端(Console)。它仿真了類型為Linux的一種終端(TERM=Linux),並且有一些設備特殊文件與之相關聯:tty0、tty1、tty2等。

當你在控制臺上登錄時,使用的是tty1。使用Alt+[F1—F6]組合鍵時,我們就可以切換到tty2、tty3等上面去。
tty1 –tty6等稱為虛擬終端,
而tty0則是當前所使用虛擬終端的一個別名,系統所產生的信息會發送到該終端上。
因此不管當前正在使用哪個虛擬終端,系統信息都會發送到控制臺終端上。
你可以登錄到不同的虛擬終端上去,因而可以讓系統同時有幾個不同的會話期存在。
只有系統或超級用戶root可以向/dev/tty0進行寫操作。

  1. pty(虛擬終端):
    但是如果我們遠程telnet到主機或使用xterm時不也需要一個終端交互麽?是的,這就是虛擬終端pty(pseudo-tty)。

  2. pts/ptmx(pts/ptmx結合使用,進而實現pty): 在Xwindows模式下的偽終端。
    pts(pseudo-terminal slave)是pty的實現方法,與ptmx(pseudo-terminal master)配合使用實現pty。
    man裏面是這樣說的:ptmx and pts - pseudo-terminal master and slave,
    pts是所謂的偽終端或虛擬終端,具體表現就是你打開一個終端,這個終端就叫pts/0,如果你再打開一個終端,這個新的終端就叫pts /1。

比如用who命令查詢當前登錄的用戶,可以看到每個用戶的TTY設備(簡單來說就是用戶輸入命令還有顯示信息的設備,比如終端),下面是我機器上的顯示:
[root@localhost ~]# who
xjb tty1 2018-02-18 03:01 (:0)

xjb pts/0 2018-02-18 03:02 (:0.0)
root pts/1 2018-02-18 03:06 (192.168.31.1)
root pts/2 2018-02-18 03:07 (192.168.31.1)
root pts/3 2018-02-18 03:07 (192.168.31.1)
root pts/4 2018-02-18 03:07 (192.168.31.1)
[root@localhost ~]#

有一個tty1是表示圖形界面,當前登錄的是GNOME,是圖形界面了。

(:0.0) 表示在服務器登錄的

兩個pts間發送消息

[root@localhost ~]# tty
/dev/pts/3
[root@localhost ~]# echo "Hey Binn. how are you?" > /dev/pts/2

[root@localhost ~]# tty
/dev/pts/2
[root@localhost ~]# Hey Binn. how are you?

技術分享圖片

好玩的事,直接給它發紅色字體消息。
顏色代碼詳情請參閱ANSI控制碼。
[root@localhost ~]# echo -e "\033[31mHey. Binn.\033[0m" > /dev/pts/2

技術分享圖片

linux 系統tty、pty和pts 的概念及區別