Linux終端類型


unix是一個多用戶多任務的操作系統。早期電腦昂貴,所以當時使用便宜的設備連接到電腦上(當時還沒有鍵盤和顯示器,使用紙帶和卡片來輸入輸出)來使用操作系統,這個便宜的設備就是終端,也可以認為終端是一種控制台。所以可以認為電腦本身是console終端,便宜的連接設備是物理終端pty。

Linux是類unix系統,所以也繼承了終端的特性。但是后來電腦逐漸便宜,也出現了顯示器和鍵盤,所以可以使用鍵盤當作輸入終端,顯示器當作輸出終端,這些終端就是虛擬終端,虛擬終端其實就是虛擬控制台,或者說是一個虛擬設備。

Linux提供了很多種虛擬終端,使用ttyN表示,使用Ctrl+Alt+F[1-6]可以進行虛擬終端的切換,這些終端設備記錄在/dev/目錄下。

[root@xuexi ~]# ls /dev/tty
tty    tty12  tty17  tty21  tty26  tty30  tty35  tty4   tty44  tty49  tty53  tty58  tty62  ttyS0 
tty0   tty13  tty18  tty22  tty27  tty31  tty36  tty40  tty45  tty5   tty54  tty59  tty63  ttyS1 
tty1   tty14  tty19  tty23  tty28  tty32  tty37  tty41  tty46  tty50  tty55  tty6   tty7   ttyS2 
tty10  tty15  tty2   tty24  tty29  tty33  tty38  tty42  tty47  tty51  tty56  tty60  tty8   ttyS3 
tty11  tty16  tty20  tty25  tty3   tty34  tty39  tty43  tty48  tty52  tty57  tty61  tty9

tty加上數值的就是虛擬終端,CTRL+ALT+F1表示切換到tty1終端,ctrl+alt+f2表示切換到tty2終端,一般Linux上只提供了ctrl+alt+f[1-6]這6個終端之間切換的功能。兩個特殊的終端是tty和tty0,tty表示當前正在使用的終端,tty0表示當前的虛擬終端。還有ttySN,這些表示串行終端。

還有從ssh或telnet等從網絡連接到電腦上的終端,或者從圖形虛擬終端打開的命令行終端,都稱為偽終端,使用pts/N表示,對應的設備為/dev/pts目錄下的數值N文件。

[root@xuexi ~]# ls /dev/pts/
0     ptmx 

0表示第一個偽終端,1表示第二個偽終端。

偽終端和其它所有終端的管理方式都不一樣,它是通過連接電腦的程序管理的,例如ssh連接則由ssh負責申請偽終端資源,並要求輸入用戶名和密碼。如果ssh連接進程被殺,則此偽終端也相應的退出。

另外,有些身份驗證的程序並非一定會為連接從程序分配終端,例如執行sudo ssh時,sudo就不一定會為ssh分配偽終端。

在現代Linux上,console終端已經和原始的意義不太一樣了,其設備映射在/dev/console上,所有內核輸出的信息都輸出到console終端,而其他用戶程序輸出的信息則輸出到虛擬終端或偽終端。

總結下:

/dev/console:控制台終端

/dev/ttyN:虛擬終端,ctrl+alt+f[1-6]切換的就是虛擬終端

/dev/ttySN:串行終端

/dev/pts/N:偽終端,ssh等工具連接過去的活着圖形終端下開啟的命令行終端就是偽終端。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM