Linux系統的終端主要包括控制臺終端、控制終端、串口終端、偽終端、虛擬終端。
1、控制臺終端(/dev/console)
在Unix系統中,計算機顯示器通常被稱為控制臺終端。Console與虛擬終端相關聯,內核將信息送到控制臺終端上(/dev/console), 通過與console相關聯的虛擬終端將信息顯示到屏幕上。不管當前正在使用哪個虛擬終端,系統信息都會發送到控制臺終端上。你可以登錄到不同的虛擬終端上去,因而可以讓系統同時有幾個不同的會話期存在。只有系統或超級用戶root可以向 /dev/tty0進行寫操作。
2、控制終端(/dev/tty)
控制終端是一個應用程序的概念。對于登錄shell來講,/dev/tty就是我們使用的終端, 使用命令”tty”可以查看它具體對應哪個實際終端設備。dev/tty有些類似于到實際所使用終端設備的一個聯接。
3、串口終端(/dev/ttyS#)
串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。這些串行端口對應的設備文件名是在Linux的/dev/ttyS#
4、偽終端(/dev/pty/#)
偽終端功能類似于終端的設備,但它不與任何終端硬件連接。偽終端通常為通過x-woindow ,SSH或telnet登錄到linux主機上所使用的終端。偽終端(Pseudo Terminal)是成對的邏輯終端設備(即master和slave設備, 對master的操作會反映到slave上)。
5、虛擬終端(/dev/tty#)
虛擬終端為Linux通過Ctrl-Alt-F[1-6]打開的終端。
由于在很多朋友對終端的概念一直不是很清楚,因此寫了這個FAQ,希望能夠幫助大家理解這些概念。不妥之處,還請大家來信指出。
Q:/dev/tty是什么?
A:tty設備包括虛擬控制臺,串口以及偽終端設備;/dev/tty代表當前tty設備,在當前的終端中輸入 echo "hello"> /dev/tty ,都會直接顯示在當前的終端中。
Q:/dev/ttyS*是什么?
A:/dev/ttyS*是串行終端設備。
Q:/dev/pty*是什么?
A:/dev/pty*即偽終端,所謂偽終端是邏輯上的終端設備,多用于模擬終端程序。例如,我們在X Window下打開的終端,以及我們在Windows使用telnet 或ssh等方式登錄Linux主機,此時均在使用pty設備(準確的說應該pty從設備)。
Q:/dev/tty0與/dev/tty1 …/dev/tty63是什么?它們之間有什么區別?
A:/dev/tty0代表當前虛擬控制臺,而/dev/tty1等代表第一個虛擬控制臺,例如當使用ALT+F2進行切換時,系統的虛擬控制臺為/dev/tty2 ,當前的控制臺則指向/dev/tty2
Q:如何確定當前所在的終端(或控制臺)?
A:使用tty命令可以確定當前的終端或者控制臺。
Q:/dev/console是到/dev/tty0的符號鏈接嗎?
A: 目前的大多數文本中都稱/dev/console是到/dev/tty0的鏈接(包括《Linux內核源代碼情景分析》),但是這樣說是不確切的。根據內核文檔,在2.1.71之前,/dev/console根據不同系統的設定可以鏈接到/dev/tty0或者其他tty*上,在2.1.71版本之后則完全由內核控制。目前,只有在單用戶模式下可以登錄/dev/console(可以在單用戶模式下輸入tty命令進行確認)。
Q:/dev/tty0與/dev/fb*有什么區別?
A: 在Framebuffer設備沒有啟用的系統中,可以使用/dev/tty0訪問顯卡。
Q:關于終端和控制臺的區別可以參考哪些文本
A: 可以參考內核文檔中的Documents/devices.txt 中關于”TERMINAL DEVICES” 的章節。
原創文章,作者:lyx,如若轉載,請注明出處:http://www.www58058.com/51450