本篇主要介紹終端和控制臺的區別,其次列出幾種不同的終端類型(ttyXXX)
要明白這兩者關系,還得從很久很久以前的計算機使用開始說起。
歷史:
首先說一下終端(terminal):
最早的計算機價格很高,因此為了充分利用計算機資源,一般都是支持多用戶同時登陸使用的。這樣的話,一臺電腦就需要連接很多鍵盤和顯示器來提供給每個人使用。在以前專門有這種能直接連接到計算機上的設備(鍵盤和顯示器),使用簡單的通信電路進行連接(通常是串口),這個電路只是用來提供數據的傳輸和顯示,沒有處理數據的能力,只負責連接到計算機上登錄。既然可以允許多個鍵盤和顯示器同時連接到計算機上,所以當時的操作系統就已經是多用戶多任務的了(為了充分利用價格昂貴的計算機資源)。這樣的每一套連接的鍵盤和顯示器能夠通過串口連接到計算機的設備就叫做終端。
終端設備兩個(右),計算機和控制臺(左)
控制臺(console)又是什么呢?
在各個領域都有控制臺的存在比如:
調音臺 飛機控制臺
控制臺從字面意思來看,就是一個直接用于控制設備的臺面,臺面上有很多按鈕顯示屏等。
在計算機領域也同樣存在,把那套直接與計算機組裝在一起的鍵盤和顯示器就稱作控制臺。
請注意:它和終端的區別,終端是通過串口線(額外的物理連線)連接到計算機上的,而
控制臺是計算機本身就有的設備,一個計算機只有一個控制臺。在計算機啟動的時候,所有的啟動信息都會打印到控制臺上,而不會顯示到終端上。也就是說,控制臺是計算機的基本組成設備。而終端是為了充分利用計算機多出來的附加設備。
在計算機操作系統中什么信息會打印到控制臺而不在終端上呢?比如內核啟動信息和運行日志,都是顯示到控制臺上,但不會顯示到終端上。這是區分控制臺和終端的重要依據。
現在:
隨著計算機越來越便宜,目前都是個人筆記本(單獨用戶的),不再鏈接上真正意義上的硬件終端設備了。終端和控制臺由很久以前的硬件概念,演化成了軟件概念。
現在說的linux終端都是使用軟件虛擬出來的終端(虛擬終端)。他用軟件的方式模擬出硬件通信方式。比如Ubuntu的 ctrl + alt + f2 ~ f6. 是6個虛擬終端,就好比以前6個人共用一臺計算機所使用的套鍵盤和顯示屏一樣。只不過這里是用軟件模擬出來的。這也是為什么叫做虛擬終端(VT, Virtual Terminal的縮寫)的原因。
終端(terminal): 在Ubuntu中按下 ctrl + alt + f2 ~ f6.
控制臺(console): 在 Ubuntu中按下 ctrl + alt + f1 .
(ctrl + alt + f1): tty1 console (ctrl + alt + f2): tty2 terminal
做實驗說明:
1、ctrl + alt + f1 ~ f6.
可以發現只有 f1 顯示有系統啟動時的打印信息,也就表明tty1 是控制臺。
2、echo "hello world" > /dev/console
在linux中一切設備皆文件,包括控制臺設備,它對應得文件是 /dev/console , 如上命令就是往控制臺上打印 hello world。但是在Ubuntu中無論在tty1~6 中的那個終端執行都會顯示到當前虛擬終端上。也就是說,此時linux把當前的終端當做控制臺來看待了。這樣看來,linux已經淡化了控制臺和終端的區別。但是在其他類UNIX系統上,控制臺和終端就會有很明顯的區別,比如freeBSD系統。
(ctrl + alt + f1): tty0 console (ctrl + alt + f1): tty2 terminal
如下圖:
還有另外一些信息也會在控制臺上顯示,比如那個終端登錄,系統啟動日志等,全都顯示
在這個真正的控制臺上。在這里就明顯的區分出了控制臺和終端了,只不過他們都是現在用
軟件模擬出來的,跟以前的硬件實現是一個意思。
好了明白了終端和控制臺區別之后。
最后總結一下:很久以前需要共享計算機時,控制臺和終端都是物理硬件加上他們的驅動和軟件。現在不需要多人共享,但是仍然保留著用用軟件模擬的控制臺和終端設備文件現在的linux也在把控制臺和終端的概念慢慢的淡化。對于普通用戶,可以理解控制臺和終端就是:可以用于輸入命令并顯示程序運行結果的窗口。不用嚴格區分。
終端設備類型(tty):Teletypes的縮寫
tty也是一個UNIX命令,用來指出當前終端設備的名稱。
終端是一種字符型設備,它有多種類型,通常用tty來簡稱各種類型的終端設備
1、串行端口終端(Serial Port Terminal) : /dev/ttySn
2、偽終端(Pseudo Terminal):/dev/pty/
3、控制終端: /dev/tty
4、控制臺: /dev/ttyn, /dev/console
終端相關的一些Linux命令:
who/w :顯示有哪些終端登錄
who am i : 顯示當前終端是哪一個
tty : 顯示當前終端的設備文件
chvt : 切換虛擬終端 chvt 2 等同于快捷鍵 (ctrl + alt + f2) ,注意:在圖形界面不行
last : 顯示每個終端的登錄時間和持續時間等信息