在剛開始學習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的操作。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93207
大叔寫的非常好?。?!