Linux基礎(三)——交互接口
交互式接口就是系統和用戶之間進行交互和信息交換的媒介,它實現信息的內部形式與人類可以接受形式之間的轉換。換句話說,即在啟動終端後,在終端設備附加一個交互式應用程序,就叫交互式接口。通常指軟件接口,一般有命令行接口、圖形接口、程序接口三種。
命令行接口
命令行接口(command line interface,CLI)是計算機操作系統或應用程序為用戶提供的可視提示接口,使用CLI,可以在特定的行中輸入命令,從操作系統接收回應等。常見的如:shell程序:sh (bourn 史蒂夫·伯恩)、csh、 tcsh、 ksh (korn)、 bash (bourn again shell)GPL、zsh等。
圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設備操縱屏幕上的圖標或菜單選項,以選擇命令、調用文件、啟動程序或執行其它一些日常任務。常見的如:X protocol、window manager、Desktop:GNOME (C, 圖形庫gtk)、KDE (C++,圖形庫qt)、XFCE (輕量級桌面)
程序接口
程序接口就是操作系統為用戶提供的兩類接口之一,編程人員在程序中通過程序接口來請求操作系統提供服務。面向過程語言最基本的單元是過程和函數。常見的如:API(Application Programming Interface),就是軟件系統不同組成部分銜接的約定;ABI(Application Binary Interface),應用程序二進制接口,描述了應用程序和操作系統之間,一個應用和它的庫之間,或者應用的組成部分之間的低接口。
二、終端
? 設備終端
鍵盤鼠標顯示器
? 物理終端( /dev/console )
控制臺console
? 虛擬終端(tty:teletypewriters, /dev/tty# #為[1-6])
tty 可有n個,Ctrl+Alt+F[1-6]
在UNIX系統中,計算機顯示器通常被稱為控制臺終端(Console)。它仿真了類型為Linux的一種終端(TERM=Linux),並且有一些設備特殊文件與之相關聯:tty0、tty1、tty2等。當你在控制臺上登錄時,使用的是tty1。使用Alt+[F1—F6]組合鍵時,我們就可以切換到tty2、tty3等上面去。tty1 –tty6等稱為虛擬終端,而tty0則是當前所使用虛擬終端的一個別名,系統所產生的信息會發送到該終端上。因此不管當前正在使用哪個虛擬終端,系統信息都會發送到控制臺終端上。
? 圖形終端( /dev/tty7 ) startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪個終端啟動,即位於哪個虛擬終端
? 串行終端( /dev/ttyS# )
ttyS
串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。計算機把每個串行端口都看作是一個字符設備。有段時間這些串行端口設備通常被稱為終端設備,因為那時它的最大用途就是用來連接終端。這些串行端口所對應的設備名稱是/dev/tts/0(或/dev/ttyS0)、/dev/tts/1(或/dev/ttyS1)等,設備號分別是(4,0)、(4,1)等,分別對應於DOS系統下的COM1、COM2等。若要向一個端口發送數據,可以在命令行上把標準輸出重定向到這些特殊文件名上即可。例如,在命令行提示符下鍵入:echo test > /dev/ttyS1會把單詞”test”發送到連接在ttyS1(COM2)端口的設備上。
? 偽終端( pty:pseudo-tty , /dev/pts/# )
pty, SSH遠程連接
偽終端(Pseudo Terminal)是成對的邏輯終端設備,例如/dev/ptyp3和/dev/ttyp3(或著在設備文件系統中分別是/dev/pty/m3和/dev/pty/s3)。它們與實際物理設備並不直接相關。如果一個程序把ttyp3看作是一個串行端口設備,則它對該端口的讀/寫操作會反映在該邏輯終端設備對的另一個上面(ttyp3)。而ttyp3則是另一個程序用於讀寫操作的邏輯設備。這樣,兩個程序就可以通過這種邏輯設備進行互相交流,而其中一個使用ttyp3的程序則認為自己正在與一個串行端口進行通信。這很象是邏輯設備對之間的管道操作。
對於ttyp3(s3),任何設計成使用一個串行端口設備的程序都可以使用該邏輯設備。但對於使用ptyp3的程序,則需要專門設計來使用ptyp3(m3)邏輯設備。
例如,如果某人在網上使用telnet程序連接到你的計算機上,則telnet程序就可能會開始連接到設備ptyp2(m2)上(一個偽終端端口上)。此時一個getty程序就應該運行在對應的ttyp2(s2)端口上。當telnet從遠端獲取了一個字符時,該字符就會通過m2、s2傳遞給getty程序,而getty程序就會通過s2、m2和telnet程序往網絡上返回”login:”字符串信息。這樣,登錄程序與telnet程序就通過“偽終端”進行通信。通過使用適當的軟件,就可以把兩個甚至多個偽終端設備連接到同一個物理串行端口上。
在使用設備文件系統(device filesystem)之前,為了得到大量的偽終端設備特殊文件,HP-UX AIX等使用了比較復雜的文件名命名方式。
可以通過以下命令查看當前的終端設備
tty
三、Linux Shell
?Shell 是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令並把它送入內核去執行。
?Shell也被稱為LINUX的命令解釋器(command interpreter)
?Shell是一種高級程序設計語言
bash shell
GNU Bourne-Again Shell(bash)是GNU計劃中重要的工具軟件之一,目前也是 Linux標準的shell,與sh兼容
?CentOS默認使用
?顯示當前使用的shell
echo ${SHELL}
?顯示當前系統使用的所有shell
cat /etc/shells
Linux基礎(三)——交互接口