在使用Linux的過程中,當我們通過ssh或者telnet等方式連接到服務器之后,會有一個相應的終端來對應。而在直接登陸到Linux服務器的時候也有一個對應的終端。也就是說所有登陸到當前Linux服務器的用戶都有一個對應的終端,那他們有什么差異,終端到底是怎么一回事?本文作簡要描述如下。
一、什么是終端(Terminal)
早期的計算機都屬於大中型計算機,是個龐然大物,占用很大的空間,屬於公用產品,好比現在的共享單車,大家一起用。不像現在的電腦,可以人手一部,直接操作。那腫么辦呢,如何對這些計算機進行控制與操作呢。那就搞個終端設備來操作。因此一台計算機上有很多種不同的終端設備也和正常。也就是說終端就是為主機提供了人機接口,每個人都通過終端使用主機的資源。終端有字符終端和圖形終端兩種。同時這些大型計算機還配有控制台。控制台是一種特殊的人機接口, 是人控制主機的第一人機接口。而主機對於控制台的信任度高於其他終端。控制台可以類比為我們操作系統的超級管理員,可以禁用某個用戶的權限,禁用用戶登陸等等。而普通終端就相當於一個普通用戶。
二、終端的模式
1、Linux X window
X window環境,即圖形界面終端模式,類似於Windows的圖形畫界面,也就是通過鼠標的點點來完成所有的管理任務。這個通常是在測試環境或者學習環境中被用到。真實的生產環境,一般來說都是使用的非圖形界面,因為對與繁忙的生產環境來說,這個圖形界面是需要資源開銷的,因此省省吧,也就是系統通常運行等級在level 3。對於X window,這個都是鼠標點擊,沒啥太多可說的。
有圖形界面也就有文本界面終端,那對於在命令行窗口想要切換到X window的情形,腫么辦呢?可以使用startx 來啟動圖行界面。
前提如下:
已經安裝了X Window system,並且X server是能夠順利啟動的;
tty7並沒有其他的窗口軟件正在運行(tty后面會講到);
啟動X所必須要的服務,例如字型服務器(X Font Server, xfs)必須要先啟動;
系統已安裝了GNOME/KDE等桌面環境;
2、文本接口終端
這是Linux服務器常用的模式。如果配置了Linux系統運行等級為3的時候,Linux啟動后就直接為文本模式,在這種情況下,當我們登陸到Linux服務器,即表明開啟了一個終端模式會話。Linux默認的情況下會提供六個Terminal來讓使用者登陸, 切換的方式為使用:[Ctrl] + [Alt] + [F1]~[F6]的組合按鈕。那這六個終端接口如何命名呢,系統會將[F1] ~ [F6]命名為tty1 ~ tty6的操作接口環境。 也就是說,當你按下[crtl] + [Alt] + [F1]這三個組合按鈕時 (按着[ctrl]與[Alt]不放,再按下[F1]功能鍵), 就會進入到tty1的terminal界面中了。同樣的[F2]就是tty2啰!那么如何回到剛剛的X窗口接口呢?很簡單啊!按下[Ctrl] + [Alt] + [F1]就可以了!
總結如下:
linux的終端機(文字)界面與圖形界面間的切換熱鍵為:
進入終端機也就是字符界面(tty1-tty6):[Ctrl] + [Alt] + [F1] - [F6]
進入圖形界面(tty7):[Ctrl] + [Alt] + [F7]
3、tty(終端設備的統稱)
tty一詞源於Teletypes,或teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱讀和發送信息的東西,后來這東西被鍵盤和顯示器取代,所以現在叫終端比較合適。終端是一種字符型設備,他有多種類型,通常使用tty來簡稱各種類型的終端設備。
4、pty(虛擬終端):
我們在使用遠程telnet到主機或使用xterm時也會產生一個終端交互,這就是虛擬終端pty(pseudo-tty)
例如,我們在X Window下打開的終端,以及我們在Windows使用telnet 或ssh等方式登錄Linux主機,此時均在使用pty設備(准確的說應該是pty從設備)。
5、pts/ptmx(pts/ptmx結合使用,進而實現pty):
偽終端(Pseudo Terminal)是終端的發展,為滿足現在需求(比如網絡登陸、xwindow窗口的管理)。它是成對出現的邏輯終端設備(即master和slave設備, 對master的操作會反映到slave上。也就是說pts(pseudo-terminal slave)是pty的實現方法,和ptmx(pseudo-terminal master)配合使用實現pty。
三、演示tty與pty###演示環境
[root@desktop ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
###從虛擬機直接登陸到shell,此時產生tty1,如下
[root@desktop ~]# tty
/dev/tty1
[root@desktop ~]# ps -ef|grep tty
root 1796 1719 0 15:23 tty1 00:00:00 -bash
root 1886 1843 0 15:24 pts/0 00:00:00 grep --color=auto tty
###切換到Documents目錄
[root@desktop ~]# cd Documents/
[root@desktop Documents]# pwd
/root/Documents
###從SecureCRT ssh登陸到shell,此時產生一個偽終端,為pts/0
[root@desktop ~]# tty
/dev/pts/0
[root@desktop ~]# ps -ef|grep tty
root 1796 1719 0 15:23 tty1 00:00:00 -bash
root 1886 1843 0 15:24 pts/0 00:00:00 grep --color=auto tty
###在虛擬機切換tty,此時同時按下CTRL+ALT+F2,出現一個新的登陸提示
[root@desktop ~]# tty
/dev/tty2
###如下,可以看到有2個tty,一個是tty1,一個是tty2
[root@desktop ~]# ps -ef|grep tty |grep -v grep
root 1796 1719 0 15:23 tty1 00:00:00 -bash
root 1930 1912 0 15:27 tty2 00:00:00 -bash
root 1997 1930 0 15:24 tty2 00:00:00 ps -ef
###按下CTRL+ALT+F1,此時回到tty1終端,如下,回到tty1的Documents目錄下
[root@desktop Documents]#
###再開幾個tty終端,如下,出現了tty3,tty6等。
[root@desktop Documents]# ps -ef|grep tty
root 1796 1719 0 15:23 tty1 00:00:00 -bash
root 1930 1912 0 15:27 tty2 00:00:00 -bash
root 2056 2050 0 15:33 tty3 00:00:00 -bash
root 2187 2172 0 15:38 tty6 00:00:00 -bash
root 2230 1843 0 15:38 pts/0 00:00:00 grep --color=auto tty
[root@desktop ~]# tty
/dev/tty6
###在tty6切換到X window
[root@desktop ~]# startx
### 在SecureCRT 虛擬終端下查看,可以看到tty6調用了X window
[root@desktop Documents]# ps -ef|grep tty6
[root@desktop Documents]# ps -ef|grep tty6 |grep -v grep
root 2187 2172 0 15:38 tty6 00:00:00 -bash
root 2242 2187 0 15:39 tty6 00:00:00 /bin/sh /bin/startx
root 2280 2242 0 15:40 tty6 00:00:00 xinit /etc/X11/xinit/xinitrc --
/usr/bin/X :0 vt6 -keeptty -auth /root/.serverauth.2242
root 2281 2280 0 15:40 tty6 00:00:00 /usr/bin/X :0 vt6 -keeptty -auth
/root/.serverauth.2242
[root@desktop ~]# ### Author : Leshami QQ/Weixin : 645746311
[root@desktop ~]# ### Blog : http://blog.csdn.net/leshami
###查看當前系統登陸用戶終端使用情形
[root@desktop ~]# who
root tty1 2017-08-11 15:23
root pts/0 2017-08-11 15:23 (192.168.81.1)
root tty2 2017-08-11 15:27
root tty3 2017-08-11 15:33
root tty6 2017-08-11 15:38
root pts/1 2017-08-11 15:40 (:0)
###查看偽終端使用的情形
[root@desktop ~]# ps -ef|grep pts|grep -v grep
root 1839 1645 0 15:23 ? 00:00:00 sshd: root@pts/0
root 1843 1839 0 15:23 pts/0 00:00:00 -bash
root 2784 2777 0 15:40 pts/1 00:00:00 /bin/bash
root 4313 1843 0 17:31 pts/0 00:00:00 ps -ef
###查看虛擬終端設備,如下,當前有2個偽終端對應到ptmx
[root@desktop ~]# ls /dev/pt*
/dev/ptmx
/dev/pts:
0 1 ptmx
###在SecureCRT再啟動一個連接,再次查看多出了一個,即在ptmx多出了一個為2的slave
[root@desktop ~]# ls /dev/pt*
/dev/ptmx
/dev/pts:
0 1 2 ptmx
六、終端示意圖
七、更詳細概念描述可參考