在剛開始學習Linux時,對物理終端、虛擬終端以及偽終端的概念非常困惑,此文是我馬哥培訓學習后對這些概念的理解。
-
- 物理終端:直接連接在主機上的顯示器、鍵盤鼠標統稱。在實際機架式服務器部署中,一般是多台服務器共享一套終端,簡稱KVM(Keyboard鍵盤,video顯示器,mouse鼠標)
- 虛擬終端(tty):附加在物理終端之上,用軟件方式虛擬實現,CentOS默認啟用6個虛擬終端,可以通過快捷鍵來切換,切換方式:Ctrl-Alt-F[1--6], 對應的文件是/dev/tty#。可以同過tty命令來查看當前的虛擬終端號。tty是teletypewriter的簡稱。
- 偽終端(pty):兩種應用場景,第一在圖形界面下打開的命令行接口,第二基於ssh協議或telnet協議等遠程打開的命令行界面,是運維工程師用的最多的一種連接服務器的方式。pts(pseudo-terminal slave)是pty的實現方法。
下面以虛擬機為例子用命令查看登錄的終端類型以及具體的終端代號。具體的命令
tty, who, w,其中tty只顯示本終端的類型和終端號:
root@centos7 dev#]tty
/dev/pts/3
顯示為代號為3的偽終端
root@centos7 dev#]tty
/dev/tty4
顯示為代號為4的虛擬終端
root@centos7 ~#]who
vmx :0 2018-03-26 19:07 (:0)
vmx pts/0 2018-03-26 19:07 (:0)
vmx pts/1 2018-03-26 19:40 (192.168.73.1)
vmx pts/2 2018-03-26 19:17 (192.168.73.1)
root tty3 2018-03-26 19:18
root tty2 2018-03-26 19:23
root tty4 2018-03-26 19:23
root tty5 2018-03-26 19:23
root tty6 2018-03-26 19:23
root pts/3 2018-03-26 19:41 (192.168.73.1)
:0 代表圖形界面登錄
在這個例子中,一共有5個虛擬終端4個偽終端登錄。
[root@centos7 profile.d#]w
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
vmx :0 :0 19:07 ?xdm? 1:12 0.06s /bin/sh /usr/bin/startkde
vmx pts/0 :0 19:07 1:31m 0.00s 1.47s kdeinit4: kded4 [kdeinit]
vmx pts/1 192.168.73.1 19:40 7.00s 0.17s 0.24s sshd: vmx [priv]
vmx pts/2 192.168.73.1 19:17 2:15 0.17s 0.26s sshd: vmx [priv]
root tty3 19:18 1:14m 0.06s 0.06s -bash
root tty2 19:23 1:14m 0.13s 0.13s -bash
root tty4 19:23 4:15 0.05s 0.05s -bash
root tty5 19:23 1:14m 0.03s 0.03s -bash
root tty6 19:23 10:39 0.04s 0.04s -bash
root pts/3 192.168.73.1 19:41 9.00s 0.34s 0.01s vi anaconda-ks.cfg
相比who命令,w命令更詳細,包括登錄時刻,空閑時間(具體指雖然連接保持,但是沒有指令在執行),同時能顯示具體執行的指令,如偽終端pts/3是來自IP為192.168.73.1的遠程連接,正在執行vi anaconda-ks.cfg的操作。