什麼是啞終端,終端模擬器

鏈接:https://blog.csdn.net/ltx06/article/details/52170852

https://blog.csdn.net/jirryzhang/article/details/70147827

https://www.google.co.in/search?q=%E5%93%91%E7%BB%88%E7%AB%AF%E6%98%AF%E4%BB%80%E4%B9%88&safe=active&ei=-ePFWrmzC4OP8wWY65ngBw&start=10&sa=N&biw=1366&bih=637



作者:任皓
鏈接:https://www.zhihu.com/question/51478942/answer/212057481
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

tty(teletypewriter)電傳機,這邊按一個按鍵,主機端接受到一個數據,主機端傳出一個數據,電傳機打印一個字符。

這個是一切終端(terminal)的祖先,輸入字符和打印字符是一體的,主機裏面運行的叫程序。

我輸入一個字符,主機上接受到一個字符。那我想換行就麻煩了,因爲這就是控制字符了,所有要有解釋器能把輸入來的字符進行分析處理,這個解釋器就叫做shell。

顯示器的出現,把輸入和輸出分離開了。時代的發展,我們不用電傳機了,把顯示器和鍵盤插到主機上,顯示器負責顯示程序的輸出,鍵盤負責輸入字符到程序裏面去,這兩個還是叫做終端。

因爲linux一切皆文件,終端也是文件。那麼就可以通過創建文件來虛擬終端,但是這些文件(虛擬終端)必須也要完成把信息輸入到主機中,接受主機傳出來的數據。

控制檯是直接插到主機上和主機系統交互的終端,直接控制着主機。

後來不用直接插上了,就是虛擬控制檯,特點是還能控制核心的東西,也有被用來指比較低級別的只能處理字符,通過字符控制主機的終端,這個概念就是命令行窗口,這裏沒有鼠標的事,以此和圖形化的終端相區別。

僞終端(pseudo-terminal)是被xterm這樣的終端模擬器程序在主機上運行模擬出來的終端,它由兩個終端組成,一個僞終端主人ptmx,一個叫僞終端僕人pts。對終端主人的操作會被傳輸到終端僕人,反之亦然,多用在遠程登錄狀態,我在電腦上操作遠程的主機,就是操作遠程主機上的終端主人,而遠程主機還以爲是一個人在自己的終端上進行操作,那就是終端僕人。主機上的程序告訴終端僕人的信息都會被通過終端主人傳給我的電腦。

===========

啞終端是隻依賴於主機才能進行處理的終端。啞終端沒有處理器、硬盤或軟盤,只有鍵盤、顯示器和到主機的通信途徑(通常通過一些類型的控制器)。而智能終端有自己的處理器、存儲設備以及軟件程序。

--------

終端Terminal通常是指那些與集中式主機系統(例如IBM大型計算機)相連的“啞”用戶設備。終端從用戶接收鍵盤輸入,並且將這些輸入發送給主機系統。主機系統處理這個用戶的鍵盤輸入和命令,然後輸出返回並顯示在這個終端的屏幕上。個人計算機可以運行稱爲終端仿真器的一些程序來模仿一個啞終端的工作。

linux 中ctrl+alt+t  打開一個終端。

============

終端,英文叫做terminal ,通常簡稱爲term ,比如我們在X下的xterm.   

控制檯,英文叫做console.


要明白這兩者的關係,還得從以前的多人使用的計算機開始。

大家都知道,最初的計算機由於價格昂貴,因此,一臺計算機一般是由多個人同時使用的。

在這種情況下一臺計算機需要連接上許多套鍵盤和顯示器來供多個人使用。

在以前專門有這種可以連上一臺電腦的設備,只有顯示器和鍵盤,還有簡單的處理電路,本身不具有處理計算機信息的能力,他是負責連接到一臺正常的計算 機上(通常是通過串口) ,然後登陸計算機,並對該計算機進行操作。當然,那時候的計算機操作系統都是多任務多用戶的操作系統。這樣一臺只有顯示器和鍵盤能夠通過串口連接到計算機 的設備就叫做終端。  

而控制檯又是什麼回事呢? 

學機電的人應該知道,一臺機牀,或者數控設備的控制箱,通常會被稱爲控制檯,顧名思義,控制檯就是一個直接控制設備的檯面(一個面板,上面有很多控制按鈕)。 在計算機裏,把那套直接連接在電腦上的鍵盤和顯示器就叫做控制檯。

請注意它和終端的區別,終端是通過串口連接上的,不是計算機本身就有的設備,而控制檯是 計算機本身就有的設備,一個計算機只有一個控制檯。

計算機啓動的時候,所有的信息都會顯示到控制檯上,而不會顯示到終端上。也就是說,控制檯是計算機的基 本設備,而終端是附加設備。 

當然,由於控制檯也有終端一樣的功能,控制檯有時候也被模糊的統稱爲終端。 

計算機操作系統中,與終端不相關的信息,比如內核消息,後臺服務消息,都可以顯示到控制檯上,但不會顯示到終端上。  

以上是控制檯和終端的歷史遺留區別。

現在由於計算機硬件越來越便宜,通常都是一個人獨佔一臺計算機超做,不再連接以前那種真正意義上的“終端設備了”,因此,終端和控制檯的概念也慢慢演化了。終端和控制檯由硬件的概念,演化成了軟件的概念。

現在說的終端,比如linux中的虛擬終端,都是軟件的概念,他用計算機的軟件來模擬以前硬件的方式。

比如在linux中,用 alt+f1~f6 可以切換六個虛擬終端,就好比是以前多人公用的計算機中的六個終端設備,這就是爲什麼這叫“虛擬終端”的原因。

當然,現在的linux也可以通過串口 線,連接一個真正的終端,現在這種終端設備已經非常罕見了,但是還存在,只是一般人很難見到。也有人利用以前的老電腦(386,486)裝上一個串口通信 軟件,連上一臺計算機,來模擬一個終端來用。這樣可以達到一臺電腦多人使用的目的。

簡單的說,能直接顯示系統消息的那個終端稱爲控制檯,其他的則稱爲終端。

但是在linux系統中,這個概念也已經模糊化了。

比如下面這條命令:echo "hello,world" > /dev/console  這條命令的目的是將"hello,world"顯示到控制檯上/dev/console是控制檯設備的設備名。

在linux中,在字符模式下,你無論在哪個虛擬終端下執行這條命令,字符hello,world都會顯示在當前的虛擬終端下。也就是說,linux把當前的終端當作控制檯來看待。

可見,linux中已經完全淡化了控制檯和終端的區別。

但是在其他的UNIX類系統中,卻很明顯的有虛擬終端和控制檯的區別。比如 freeBSD系統。

在freebsd中,只有第一個“終端”纔是真正的控制檯。(就是說按alt+f1得到的那個虛擬終端) ,你無論在哪個虛擬終端上執行上面的那條命令(哪怕是通過網絡連接的僞終端上執行這條命令)。hello,world字符總會顯示到第一個“終端”也就是 真正的控制檯上。

另外,其他的一些系統內部信息,比如哪個用戶在哪個終端登陸,系統有何嚴重錯誤警告等信息,全都顯示在這個真正的控制檯上。在這裏,就明顯的區分了終端和控制檯的概念。

其他UNIX中也是這樣的。比如Tru64 unix 在X下有一個控制檯模擬軟件,你無論在哪裏輸入echo "hello,world" > /dev/console命令,hello,world總會顯示在這個控制檯模擬器中。

我們在X界面下用的那些輸入命令的軟件,比如xterm ,rxvt, gnome-terminal等等,都應該被稱爲終端模擬軟件。請注意它和控制檯模擬軟件的區別。

linux中好象沒有控制檯模擬軟件。在X中的終端模擬軟件中輸入的echo "hello,world">/dev/console 命令的輸出信息,都會輸出到啓動該X服務器的虛擬終端上。比如,你用字符方式登陸系統。進入第一個虛擬終端,然後startx啓動X服務器。再打開 xterm 來輸入echo"hello,world">/dev/console 命令,那麼字符串hello,world就顯示在第一個虛擬終端上。你按ctrl+alt+f1,回到那個啓動X服務器的終端,就可以看到hello, world字符串。 

現在該明白終端和控制檯的區別了吧。

再簡單的說,控制檯是直接和計算機相連接的原生設備,終端是通過電纜、網絡等等和主機連接的設備。

在以前的硬件終端設備中,由於生產廠家不同,所遵循的標準不同,因此有不同的型號標準。比如vt100等。這裏的vt100就是一個標準,那麼現在我 們所說的終端,往往不是真正的硬件終端了,而是終端模擬軟件了,因此不同的終端模擬軟件可能符合不同的標準,還有一些終端模擬軟件符合很多種不同終端的標準。比如gnome的終端模擬軟件gnome-terminal,他提供好幾中標準可供用戶選擇。用戶只要設置一下就可以了。

現在,由於原先的這些設備在我們的視線中漸漸淡出,控制檯和終端的概念也慢慢談化。

普通用戶可以簡單的把終端和控制檯理解爲:可以輸入命令行並顯示程序運行過程中的信息以及程序運行結果的窗口。不必要嚴格區分這兩者的差別。

——by:http://blog.csdn.net/caomiao2006/article/details/8791775

******************************************************************華麗分割線********************************************************

從歷史角度看,終端剛開始就是終端機,配有打印機,鍵盤,帶有一個串口,通過串口傳送數據到主機端,然後主機處理完交給終端打印出來。
那麼現在終端也就是鍵盤+顯示器。但是不同的設備可能協議不同,要操作系統怎麼識別呢?簡單。就像linux 的虛擬文件系統一樣,抽象出一層就可以了。
tty層橫空出世,tty的一邊是操作系統,一邊是不同的設備驅動。大家知道,在linux下所有的設備都是文件,那麼假設我們要打印到顯示器,只要write到顯示器對應的tty層的文件,然後它自己去匹配合適的驅動,這部分就不是系統考慮的問題了。
現在的終端還是實體(也就是有實際的硬件),只不過由tty層做了邏輯抽象。
但是隨着互聯網的興起,人們有了遠程使用計算機的要求,於是終端仿真系統誕生了。把本地PC當成是一個終端,遠程的計算機當成是主機。由軟件模擬硬件終端的工作過程(無非就是編碼格式,電位等等,設計組成原理等)。比如現在嵌入式開發,不就是把個人PC當作輸出輸出工具,由開發板做主機麼?
現在的個人計算機常常被仿真成一個終端與主機相連(雖然沒讓我發現有什麼優點,也許是爲了本地用戶和遠程用戶的同等地位?)
人們用終端仿真技術開發了各種的虛擬終端,僞終端等等。相當於PC不在邏輯上處理數據,只是按照行業標準,進行數據傳輸(應該有編碼過程?)和接受顯示(解碼?)
此時此刻,終端已經不是狹義的硬件了,它更多的被理解爲模擬硬件的軟件。
現在說說tty。之前提到了,抽象爲了tty層。爲什麼叫tty呢?
Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱讀和發送信息的東西,和古老的電報機區別並不是很大。最終,電傳打字機被鍵盤和顯示器終端(這裏時硬件)所取代,但在終端或TTY接插的地方,操作系統仍然需要一個程序來監視串行窗口。一個getty“Get TTY”的處理過程是:一個程序監視物理的TTY/終端接口。

從上面百度百科的定義,可以知道,後來getty就是一個見識TTY/終端的接口,那麼這個將操作系統內核和終端連接的層叫什麼名字也就呼之欲出了。

——by:http://blog.chinaunix.net/uid-28596231-id-3516101.html




tty也是一個Unix命令,用來給出當前終端設備的名稱。
終端是一種字符型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。
在Linux系統的設備特殊文件目錄/dev/下,終端特殊設備文件一般有以下幾種:
1.串行端口終端(/dev/ttySn)
    串行端口終端(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)端口的設備上
2.僞終端(/dev/pty/)

僞終端(Pseudo Terminal)是成對的邏輯終端設備(即master和slave設備,對master的操作會反映到slave上)。
例如/dev/ptyp3和/dev/ttyp3(或者在設備文件系統中分別是/dev/pty /m3和 /dev/pty/s3)。它們與實際物理設備並不直接相關。如果一個程序把ptyp3(master設備)看作是一個串行端口設備,則它對該端口的讀/ 寫操作會反映在該邏輯終端設備對應的另一個ttyp3(slave設備)上面。而ttyp3則是另一個程序用於讀寫操作的邏輯設備。telnet主機A就是通過“僞終端”與主機A的登錄程序進行通信。
3.控制終端(/dev/tty)
   如果當前進程有控制終端(Controlling Terminal)的話,那麼/dev/tty就是當前進程的控制終端的設備特殊文件。可以使用命令”ps –ax”來查看進程與哪個控制終端相連。對於你登錄的shell,/dev/tty就是你使用的終端,設備號是(5,0)。使用命令”tty”可以查看它具體對應哪個實際終端設備。/dev/tty有些類似於到實際所使用終端設備的一個聯接。

4.控制檯(/dev/ttyn, /dev/console)
   在Linux 系統中,計算機顯示器通常被稱爲控制檯終端(Console)。它仿真了類型爲Linux的一種終端(TERM=Linux),並且有一些設備特殊文件與之相關聯:tty0、tty1、tty2 等。當你在控制檯上登錄時,使用的是tty1。使用Alt+[F1—F6]組合鍵時,我們就可以切換到tty2、tty3等上面去。tty1–tty6等稱爲虛擬終端,而tty0則是當前所使用虛擬終端的一個別名,系統所產生的信息會發送到該終端上(這時也叫控制檯終端)。因此不管當前正在使用哪個虛擬終端,系統信息都會發送到控制檯終端上。/dev/console即控制檯,是與操作系統交互的設備,系統將一些信息直接輸出到控制檯上。只有在單用戶模式下,才允許用戶登錄控制檯。

5.虛擬終端
   在Xwindow模式下的僞終端.如在Kubuntu下用konsole,就是用的虛擬終端,用tty命令可看到/dev/pts/name, name爲當前用戶名。

6.其他類型

Linux系統中還針對很多不同的字符設備存在有很多其它種類的終端設備特殊文件。例如針對ISDN設備的/dev/ttyIn終端設備等。
tty設備包括虛擬控制檯,串口以及僞終端設備。
/dev/tty代表當前tty設備,在當前的終端中輸入 echo “hello” > /dev/tty ,都會直接顯示在當前的終端中。
Text Telephones (TTY)
聾啞人電話,在手機插入專用設備後支持收發文本,需網絡支持,中國網絡不支持TTY.
除聾啞模式外,還支持只聽不說(HCO)和只說不聽(VCO)兩種模式
——by:百度百科

**************************************************************華麗分割線************************************************************


shell   (計算機殼層)
在計算機科學中,Shell俗稱殼(用來區別於核),是指“提供使用者使用界面”的軟件(命令解析器)。它類似於DOS下的command和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。




同時它又是一種程序設計語言。作爲命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作爲程序設計語言,它定義了各種變量和參數,並提供了許多在高級語言中才具有的控制結構,包括循環和分支。
 PS:在排序算法中,Shell是希爾排序的名稱。
基本上shell分兩大類:
一:圖形界面shell(Graphical User Interface shell 即 GUI shell)
例如:應用最爲廣泛的 Windows Explorer (微軟的windows系列操作系統),還有也包括廣爲人知的 Linux shell,其中linuxshell 包括 X window manager (BlackBox和FluxBox),以及功能更強大的CDE、GNOME、KDE、 XFCE。
二:命令行式shell(Command Line Interface shell ,即CLI shell)
例如:
bash / sh / ksh / csh(Unix/linux 系統)
(MS-DOS系統)
cmd.exe/ 命令提示字符(Windows NT 系統)
Windows PowerShell(支援 .NET Framework 技術的 Windows NT 系統)
傳統意義上的shell指的是命令行式的shell,以後如果不特別註明,shell是指命令行式的shell。
文字操作系統與外部最主要的接口就叫做shell。shell是操作系統最外面的一層。shell管理你與操作系統之間的交互:等待你輸入,向操作系統解釋你的輸入,並且處理各種各樣的操作系統的輸出結果。
shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,並且可以立即得到響應),或者以shell script(非交互)方式執行。shell script是放在文件中的一串shell和操作系統命令,它們可以被重複使用。本質上,shell script是命令行命令簡單的組合到一個文件裏面。
Shell基本上是一個命令解釋器,類似於DOS下的command。它接收用戶命令(如ls等),然後調用相應的應用程序。較爲通用的shell有標準的Bourne shell (sh)和C shell (csh)。
交互式shell和非交互式shell
交互式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作交互式是因爲shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退。當你簽退後,shell也終止了。
shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,並且執行它們。當它讀到文件的結尾,shell也就終止了。
shell的類型
在UNIX中主要有:
Bourne shell (包括 sh,ksh,and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
Bourne Shell
首個重要的標準Unix Shell是1970年底在V7 Unix(AT&T第7版)中引入的,並且以它的創始科技部基礎條件平臺“國家氣象網絡計算應用節點建設”(2004DKA50730)資助者Stephen Bourne的名字命名。Bourne shell 是一個交換式的命令解釋器和命令編程語言。Bourne shell 可以運行爲login shell或者login shell的子shell(subshell)。只有login命令可以調用Bourne shell作爲一個login shell。此時,shell先讀取/etc/profile文件和$HOME/.profile文件。/etc/profile文件爲所有的用戶定製環境,$HOME/.profile文件爲本用戶定製環境。最後,shell會等待讀取你的輸入。
C Shell
Bill Joy於20世紀80年代早期,在伯克利的加利福尼亞大學開發了C shell。它主要是爲了讓用戶更容易的使用交互式功能,並把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、文件名替換、作業控制等功能。
Korn Shell
有很長一段時間,只有兩類shell供人們選擇,Bourne shell用來編程,C shell用來交互。爲了改變這種狀況,AT&T的bell實驗室David Korn開發了Korn shell。ksh結合了所有的C shell的交互式特性,並融入了Bourne shell的語法。因此,Korn shell廣受用戶的歡迎。它還新增了數學計算,進程協作(coprocess)、行內編輯(inline editing)等功能。Korn Shell 是一個交互式的命令解釋器和命令編程語言.它符合POSIX——一個操作系統的國際標準.POSIX不是一個操作系統,而是一個目標在於應用程序的移植性的標準——在源程序一級跨越多種平臺。
Bourne Again Shell (bash)
bash是GNU計劃的一部分,用來替代Bourne shell。它用於基於GNU的系統如Linux.大多數的Linux(Red Hat,Slackware,Caldera)都以bash作爲缺省的shell,並且運行sh時,其實調用的是bash。
POSIX Shell
POSIX shell 是Korn shell的一個變種. 當前提供POSIX shell的最大賣主是Hewlett-Packard。在HP-UX 11.0,POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.
各主要操作系統下缺省的shell:
AIX下是Korn Shell.
Solaris缺省的是Bourne shell.
FreeBSD缺省的是C shell
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.(即bash)
Windows PowerShell是一種新的交互式的命令行和基於任務腳本編寫技術,它使信息技術(IT) 管理員能夠全面地自動操作和控制系統管理任務,從而提高了管理員的生產力。Windows PowerShell 包括多個系統管理實用工具、一致的語法和命名慣例、及對普通管理數據更好地導航,如登記、證書存儲 或 Windows Management Instrumentation (WMI)。Windows PowerShell 還專門針對 IT 管理,提供直觀的腳本編寫語言。
Shell也是一個VB函數,它的作用是運行程序,語法是Shell(命令字符串[,窗口類型])            ——by:百度百科
++++++++++++++++++++++++++++++++++++++++++++++++++++華麗分割線++++++++++++++++++++++++++++++++++++++++++++++++++++++
我們在終端模擬器中輸入命令時,終端模擬器本身並不解釋執行這些命令,它只負責輸入輸出,真正解釋執行這些命令的,是shell。

=================

那麼到底爲什麼叫啞終端:

This article seems to be about computer terminals, not the subclass of computer terminals that are dumb.

I've always understood "dumb terminal" to mean a terminal without "intelligent" capabilities like cursor addressing, bolding, etc. A quick google search confirmed references consistent with my understanding. For example:

"A display monitor that has no processing capabilities. A dumb terminal is simply an output device that accepts data from the CPU. In contrast, a smart terminal is a monitor that has its own processor for special features, such as bold and blinking characters. Dumb terminals are not as fast as smart terminals, and they do not support as many display features, but they are adequate for most applications." webopedia.

This is also covered in the computer terminal article.

I'm also unfamiliar with the definition of a "smart terminal" to be a PC or a "network computer". Any type of computer is not a terminal, by definition. Therefore a smart terminal cannot be a personal or network computer.

On any Unix-like computer you can define a terminal type to be any number of "smart" terminal types, including vt100. But you also have a choice of setting it to dumb, which means the terminal has very limited capabilities.

At most, I think the usage of dumb terminal to mean any computer terminal should be a foot note.

--Serge 06:30, 12 December 2005 (UTC)

The term "Dumb Terminal" or "Dumb Device" Could also mean that it has very little access or can do very little and is therefore limited in its abilities to process jobs whereas a "intelligent Device" can do far more and sometimes far quicker. — Preceding unsigned comment added by 194.83.71.166 (talk) 12:37, 22 September 2006 (UTC)

As long as the portion of the article that this article is merged with can be found by searching WikiPedia using the phrase 'dumb terminal' it should be no problem. --mlewis000 11:11, 9 December 2006 (UTC)

以上是維基百科的說法。


計算機科學中,啞終端表示一個相對於其他種類比較“聰明”的計算機終端來說,功能較爲有限的計算機終端。其具體的含義根據不同的語境(場合)而變化。

在老式的採用RS-232串行口連接的計算機終端裏,啞終端指不能執行諸如“刪行”(clearing a line)、“清屏”(clearing a screen)或“控制光標位置”(control cursor position)的一些特殊亂序操作(escape sequences 如 en:ANSI escape code)的計算機終端。在此意義上,啞終端還被稱作透明電傳打字機glass teletypes),因爲它與電傳打字機有着類似的有限功能。這類啞終端仍然被現代的類Unix操作系統所支持。可以將系統的環境變量TERM設置爲dumbsmartintelligent是指那些能執行亂序操作(escape sequences)的終端。(This type of dumb terminal is still supported on modern Unix-like systems by setting the environment variable TERM to dumbSmart or intelligent terminals are those that have the ability to process the special escape sequences. )

在更寬的意義上,啞終端包括了所有形式的包含鍵盤和屏幕的計算機通信設備。包括個人電腦(personal computers)、無盤工作站(diskless workstations)、網絡電腦(network computers)、瘦客戶端(thin clients)和X終端(X Terminals)。

啞終端有時候也指任何類型的採用RS-232串行通信方式連接的老式計算機終端

=====

發展史

計算機終端伴隨計算機系統的集中處理模式而產生,並隨着計算機技術的發展而不斷髮展。迄今爲止,計算技術經歷了大型機、中型機、小型機、微型機、個人電腦(PC機)、網絡計算等發展時期,終端與計算技術發展相適應,也經歷了字符啞終端、圖形終端、網絡終端等形態。
在老式的採用RS-232串行通信接口連接的計算機終端裏,啞終端從狹義來說,指不能執行諸如“刪行(clearing a line)”、“清屏(clearing a screen)”或“控制光標位置(control cursor position)”等特殊換碼順序(escape sequences)操作的計算機終端。在此意義上,啞終端也被稱作透明的電傳打字機(Telegraphic type-writer,即TTY),因爲它與電傳打字機有着類似的有限的功能。這種啞終端功能仍然被現代的類Unix操作系統所支持,比如可以將Unix系統的環境變量TERM設置爲dumb、smart或intelligent來確定是否支持某些特殊的換碼順序(escape sequences)操作。
啞終端的“啞”,是因爲它只能用來發送、接收和顯示字符,不能在它上面運行任何程序、進行任何計算或複雜的交互操作。啞終端沒有內部處理器、硬盤或軟盤,只有鍵盤、顯示器和連接到主機的通信線路(通常通過串口控制器)。所以啞終端也表述爲任何類型的採用RS-232串行通信方式連接的老式計算機終端,其既不處理本地數據,也不運行用戶程序,只能通過鍵盤輸入字符、通過顯示器屏幕輸出字符結果的計算機終端。
在更寬的意義上,啞終端包括了所有形式的包含鍵盤和屏幕的計算機通信或外部設備,包括個人電腦(Personal Computers)、無盤工作站(Diskless Workstations)、網絡電腦(Network Computers)、瘦客戶端(Thin Clients)和X終端(X Terminals)。

=============

本章內容

  • 訪問命令行

  • 通過Linux控制檯終端訪問CLI

  • 通過圖形化終端仿真器訪問CLI

  • 使用GNOME終端仿真器

  • 使用Konsole終端仿真器

  • 使用xterm終端仿真器

在Linux早期,可以用來工作的只有shell。那時,系統管理員、程序員和系統用戶都端坐在Linux控制檯終端前,輸入shell命令,查看文本輸出。如今,伴隨着圖形化桌面環境的應用,想在系統中找到shell提示符來輸入命令都變得困難起來。本章討論瞭如何進入命令行環境,帶你逐步瞭解可能會在各種Linux發行版中碰到的終端仿真軟件包。

2.1 進入命令行

在圖形化桌面出現之前,與Unix系統進行交互的唯一方式就是藉助由shell所提供的文本命令行界面(command line interface,CLI)。CLI只能接受文本輸入,也只能顯示出文本和基本的圖形輸出。

由於這些限制,輸出設備並不需要多華麗。通常只需要一個簡單的啞終端就可以使用Unix系統。所謂的啞終端無非就是利用通信電纜(一般是一條多線束的串行電纜)連接到Unix系統上的一臺顯示器和一個鍵盤。這種簡單的組合可以輕鬆地向Unix系統中輸入文本數據,並查看文本輸出結果。

如你所知,如今的Linux環境相較以前已經發生了巨大變化。所有的Linux發行版都配備了某種類型的圖形化桌面環境。但是,如果想輸入shell命令,仍舊需要使用文本顯示來訪問shell的CLI。於是現在的問題就歸結爲一點:有時還真是不容易在Linux發行版上找到進入CLI的方法。

2.1.1 控制檯終端

進入CLI的一種方法是讓Linux系統退出圖形化桌面模式,進入文本模式。這樣在顯示器上就只有一個簡單的shell CLI,跟圖形化桌面出現以前一樣。這種模式稱作Linux控制檯,因爲它仿真了早期的硬接線控制檯終端,而且是一種同Linux系統交互的直接接口。

Linux系統啓動後,它會自動創建出一些虛擬控制檯。虛擬控制檯是運行在Linux系統內存中的終端會話。無需在計算機上連接多個啞終端,大多數Linux發行版會啓動5~6個(有時會更多)虛擬控制檯,你在一臺計算機的顯示器和鍵盤上就可以訪問它們。

2.1.2 圖形化終端

除了虛擬化終端控制檯,還可以使用Linux圖形化桌面環境中的終端仿真包。終端仿真包會在一個桌面圖形化窗口中模擬控制檯終端的使用。圖2-1展示了一個運行在Linux圖形化桌面環境中的終端仿真器。

{%}

圖 2-1 運行在Linux桌面上的終端仿真器

圖形化終端仿真只負責Linux圖形化體驗的一部分。完整的體驗效果需要藉助多個組件來實現,其中就包括圖形化終端仿真軟件(稱爲客戶端)。表2-1展示了Linux圖形化桌面環境的不同組成部分。

表 2-1 圖形界面的組成

名稱

例子

描述

客戶端

圖形化終端仿真器,桌面環境,網絡瀏覽器

請求圖形化服務的應用

顯示服務器

Mir,Wayland Compositor,Xserver

負責管理顯示(屏幕)和輸入設備(鍵盤、鼠標、觸摸屏)

窗口管理器

Compiz,Metacity,Kwin

爲窗口加入邊框,提供窗口移動和管理功能

部件庫

Athenal(Xaw),X Intrinsics

爲桌面環境中的客戶端添加菜單以及外觀項

要想在桌面中使用命令行,關鍵在於圖形化終端仿真器。可以把圖形化終端仿真器看作GUI中(in the GUI)的CLI終端,將虛擬控制檯終端看作GUI以外(outside the GUI)的CLI終端。理解各種終端及其特性能夠提高你的命令行體驗。

2.2 通過Linux控制檯終端訪問CLI

在Linux的早期,在啓動系統時你只會在顯示器上看到一個登錄提示符,除此之外就沒別的了。之前說過,這就是Linux控制檯。它是唯一可以爲系統輸入命令的地方。

儘管在啓動時會創建多個虛擬控制檯,但很多Linux發行版在完成啓動過程之後會切換到圖形化環境。這爲用戶提供了圖形化登錄以及桌面體驗。這樣一來,就只能通過手動方式來訪問虛擬控制檯了。

在大多數Linux發行版中,你可以使用簡單的按鍵組合來訪問某個Linux虛擬控制檯。通常必須按下Ctrl+Alt組合鍵,然後按功能鍵(F1~F7)進入要使用的虛擬控制檯。功能鍵F1生成虛擬控制檯1,F2鍵生成虛擬控制檯2,F3鍵生成虛擬控制檯3,F4鍵生成虛擬控制檯4,依次類推。

說明 Linux發行版通常使用Ctrl+Alt組合鍵配合F1或F7來進入虛擬控制檯。Ubuntu使用F7,而RHEL則使用F1。最好還是測試一下自己所使用的發行版是如何進入虛擬控制檯的。

文本模式的虛擬控制檯採用全屏的方式顯示文本登錄界面。圖2-2展示了一個虛擬控制檯的文本登錄界面。

{%}

圖 2-2 Linux虛擬控制檯登錄界面

注意,在圖2-2中第一行文本的最後有一個詞tty2。這個詞中的2表明這是虛擬控制檯2,可以通過Ctrl+Alt+F2組合鍵進入。tty代表電傳打字機(teletypewriter)。這是一個古老的名詞,指的是一臺用於發送消息的機器。

說明 不是所有的Linux發行版都會在登錄界面上顯示虛擬控制檯的tty號。

login:提示符後輸入用戶ID,然後再在Password:提示符後輸入密碼,就可以進入控制檯終端了。如果你之前從來沒有用過這種方式登錄,那要注意在這裏輸入密碼和在圖形環境中輸入不太一樣。在圖形環境中,輸入密碼的時候會看到點號或星號,但是在虛擬控制檯中,輸入密碼的時候什麼都不會顯示。

登入虛擬控制檯之後,你就進入了Linux CLI。記住,在Linux虛擬控制檯中是無法運行任何圖形化程序的。

一旦登錄完成,你可以保持此次登錄的活動狀態,然後在不中斷活動會話的同時切換到另一個虛擬控制檯。你可以在所有虛擬控制檯之間切換,擁有多個活動會話。在使用CLI時,這個特性爲你提供了巨大的靈活性。

還有一些靈活性涉及虛擬控制檯的外觀。儘管虛擬控制檯只是文本模式的控制檯終端,但你可以修改文字和背景色。

比如可將終端的背景色設置成白色、文本設置成黑色,這樣可讓眼睛輕鬆些。登錄之後,有好幾種方法可實現這樣的修改。其中一種方法是輸入命令setterm -inversescreen on,然後按回車鍵,如圖2-3所示。注意,在途中我們使用選項on啓用了inversescreen特性。也可以使用選項off關閉該特性。

{%}

圖 2-3 啓用了inversescreen的Linux虛擬控制檯

另一種方法是連着輸入兩條命令。輸入setterm -background white,然後按回車鍵,接着輸入setterm -foreground black,再按回車鍵。要注意,因爲先修改的是終端的背景色,所以可能會很難看清接下來輸入的命令。

在上面的命令中,你不用像inversescreen那樣去啓用或關閉什麼特性。共有8種顏色可供選擇,分別是blackredgreenyellowbluemagentacyanwhite(這種顏色在有些發行版中看起來像灰色)。你可以賦予純文本模式的控制檯終端富有創意的外觀效果。表2-2展示了setterm命令的一些選項,可以用於增進控制檯終端的可讀性,或改善外觀。

表 2-2 用於設置前景色和背景色的setterm選項

選項

參數

描述

-background

blackredgreenyellow
bluemagentacyanwhite

將終端的背景色改爲指定顏色

-foreground

blackredgreenyellow
bluemagentacyanwhite

將終端的前景色改爲指定顏色

-inversescreen

onoff

交換背景色和前景色

-reset

將終端外觀恢復成默認設置並清屏

-store

將終端當前的前景色和背景色設置成-reset選項的值

如果不涉及GUI,虛擬控制檯終端訪問CLI自然是不錯的選擇。但有時候需要一邊訪問CLI,一邊運行圖形化程序。使用終端仿真軟件包可以解決這個問題,這也是在GUI中訪問shell CLI的一種流行的方式。接下來的部分將介紹能夠提供圖形化終端仿真的常見軟件包。

2.3 通過圖形化終端仿真訪問CLI

相較於虛擬化控制檯終端,圖形化桌面環境提供了更多訪問CLI的方式。在圖形化環境下,有大量可用的圖形化終端仿真器。每個軟件包都有各自獨特的特性及選項。表2-3列舉出了一些流行的圖形化終端仿真器軟件包及其網址。

表 2-3 流行的圖形化終端仿真器軟件包

名稱

網址

Eterm

http://www.eterm.org

Final Term

http://finalterm.org

GNOME Terminal

https://help.gnome.org/users/gnome-terminal/stable

Guake

https://github.com/Guake/guake

Konsole Terminal

http://konsole.kde.org

LillyTerm

http://lilyterm.luna.com.tw/index.html

LXTerminal

http://wiki.lxde.org/en/LXTerminal

mrxvt

https://code.google.com/p/mrxvt

ROXTerm

http://roxterm.sourceforge.net

rxvt

http://sourceforge.net/projects/rxvt

rxvt-unicode

http://software.schmorp.de/pkg/rxvt-unicode

Sakura

https://launchpad.net/sakura

st

http://st.suckless.org

Terminator

https://launchpad.net/terminator

Terminology

http://www.enlightenment.org/p.php?p=about/terminology

tilda

http://tilda.sourceforge.net/tildaabout.php

UXterm

http://manpages.ubuntu.com/manpages/gutsy/man1/uxterm.1.html

Wterm

http://sourceforge.net/projects/wterm

xterm

http://invisible-island.net/xterm

Xfce4 Terminal

http://docs.xfce.org/apps/terminal/start

Yakuake

http://extragear.kde.org/apps/yakuake

儘管可用的圖形化終端仿真器軟件包不少,但本章只重點關注其中常用的三個。它們分別是GNOME Terminal、Konsole Terminal和xterm,通常都會默認安裝在Linux發行版中。

2.4 使用GNOME Terminal仿真器

GNOME Terminal是GNOME桌面環境的默認終端仿真器。很多發行版,如RHEL、Fedora和CentOS,默認採用的都是GNOME桌面環境,因此GNOME Terminal自然也就是默認配備了。不過其他一些桌面環境,比如Ubuntu Unity,也採用GNOME Terminal作爲默認的終端仿真軟件包。它使用起來非常簡單,是Linux新手的不錯選擇。這部分將帶你學習如何訪問、配置和使用GNOME終端仿真器。

2.4.1 訪問GNOME Terminal

每個圖形化桌面環境都有不同的方式訪問GNOME終端仿真器。本節講述瞭如何在GNOME、Unity和KDE桌面環境中訪問GNOME Terminal。

說明 如果你使用的桌面環境並沒有在表2-3中列出,那你就得逐個查看桌面環境中的各種菜單來找到GNOME終端仿真器。它在菜單中通常叫作Terminal。

在GNOME桌面環境中,訪問GNOME Terminal非常直截了當。找到左上角的菜單,點擊Applications,從下拉菜單中選擇System Tools,點擊Terminal。如果寫成簡寫法的話,這一系列操作就像這樣:Applications ➪ System Tools ➪ Terminal。

圖2-1就是一張GNOME Terminal的圖片。它展示了在CentOS發行版的GNOME桌面環境中訪問GNOME Terminal。

在Unity桌面環境中,訪問GNOME終端得費點事。最簡單的方法是Dash ➪ Search,然後輸入Terminal。GNOME終端會作爲一個名爲Terminal的應用程序顯示在Dash區域。點擊對應的圖標就可以打開GNOME終端仿真器了。

竅門 在一些Linux發行版的桌面環境中,例如Ubuntu的Unity,可以使用快捷鍵Ctrl+Alt+T快速訪問GNOME終端。

在KDE桌面環境中,默認的仿真器是Konsole終端仿真器。必須通過菜單才能訪問。找到屏幕左下角名爲Kickoff Application Launcher的圖標,然後依次點擊Application ➪ Utilities ➪ Terminal。

在大多數桌面環境中,可以創建一個啓動器(launcher)訪問GNOME Terminal。啓動器是桌面上的一個圖標,可以利用它啓動一個選定的應用程序。這是個很棒的特性,可以讓你在桌面環境中快速訪問終端仿真器。如果不想使用快捷鍵或是你的桌面環境中無法使用快捷鍵,這個特性就尤爲有用。

例如,在GNOME桌面環境中,要創建一個啓動器的話,可以在桌面中間單擊右鍵,在出現的下拉菜單中選擇Select Create Launcher...,然後會打開一個名爲Create Launcher的窗口。在Type字段中選擇Application。在Name字段中輸入圖標的名稱。在Command字段中輸入gnome-terminal。點擊Ok,保存爲新的啓動器。一個帶有指定名稱圖標的啓動器就出現在了桌面上。雙擊就可以打開GNOME終端仿真器了。

說明 在Command字段中輸入gnome-terminal時,輸入的實際上是用來啓動GNOME終端仿真器的shell命令。在第3章中會學到如何爲gnome-terminal這類命令加入特定的命令行選項來獲得特殊的配置,以及如何查看可用的選項。

在GNOME終端仿真器應用中,菜單提供了多種配置選項,應用本身也包含了很多可用的快捷鍵。瞭解這些選項能夠增進GNOME Terminal CLI的使用體驗。

2.4.2 菜單欄

GNOME Terminal的菜單欄包含了配置選項和定製選項,可以通過它們使你的GNOME Terminal符合自己的使用習慣。接下來的幾張表格簡要地描述了菜單欄中各種配置選項以及對應的快捷鍵。

說明 在閱讀書中所描述的這些GNOME Terminal菜單選項時,要注意的是,這和你所使用的Linux發行版的GNOME Terminal的菜單選項可能會略有不同。因爲一些Linux發行版採用的GNOME Terminal的版本比較舊。

表2-4展示了GNOME Terminal的File菜單下的配置選項。File菜單中包含了可用於創建和管理所有CLI終端會話的菜單項。

表 2-4 File菜單

名稱

快捷鍵

描述

Open Terminal

Shift+Ctrl+N

在新的GNOME Terminal窗口中啓動一個新的shell會話

Open Tab

Shift+Ctrl+T

在現有的GNOME Terminal窗口的新標籤中啓動一個新的shell會話

New Profile

定製會話並將其保存爲配置文件(profile),以備隨後再次使用

Save Contents

將回滾緩衝區(scrollback buffer)中的內容保存到文本文件中

Close Tab

Shift+Ctrl+W

關閉當前標籤中的會話

Close Window

Shift+Ctrl+Q

關閉當前的GNOME Terminal會話

注意,和在網絡瀏覽器中一樣,你可以在GNOME Terminal會話中打開新的標籤來啓動一個全新的CLI會話。每個標籤中的會話均被視爲獨立的CLI會話。

竅門 並不是非得點擊菜單項才能進入File菜單中的選項。大多數選項可以通過在會話區域中點擊右鍵找到。

表2-5所展示的Edit菜單中的菜單項用於處理標籤內的文本內容。可以使用鼠標在會話窗口中的任意位置複製、粘貼文本。

表 2-5 Edit菜單

名稱

快捷鍵

描述

Copy

Shift+Ctrl+C

將所選的文本複製到GNOME的剪貼板中

Paste

Shift+Ctrl+V

將GNOME剪貼板中的文本粘貼到會話中

Paste Filenames

 

粘貼已複製的文件名和對應的路徑

Select All

選中回滾緩衝區中的全部輸出

Profiles

添加、刪除或修改GNOME Terminal的配置文件

Keyboard Shortcuts

創建快捷鍵來快速訪問GNOME Terminal的各種特性

Profile Preferences

編輯當前會話的配置文件

Paste Filenames菜單項只有在最新版的GNOME Terminal中才能找到,因此在你的系統中可能會看不到。

表2-6所展示的View菜單中包含用於控制CLI會話窗口外觀的菜單項。這些選項能夠爲視力有缺陷的用戶帶來幫助。

表 2-6 View菜單

名稱

快捷鍵

描述

Show Menubar

打開/關閉菜單欄

Full Screen

F11

打開/關閉終端窗口全桌面顯示模式

Zoom In

Ctrl++

逐步增大窗口顯示字號

Zoom Out

Ctrl+-

逐步減小窗口顯示字號

Normal Size

Ctrl+0

恢復默認字號

要注意的是,如果關閉了菜單欄顯示,會話的菜單欄就會消失。不過你可以在任何一個終端會話窗口中點擊右鍵,然後選擇Show Menubar,輕而易舉地找回菜單欄。

表2-7所展示的Search菜單中的菜單項用於在終端會話中進行簡單的搜索。這些搜索類似於在網絡瀏覽器或字處理軟件中進行的操作。

表 2-7 Search菜單

名稱

快捷鍵

描述

Find

Shift+Ctrl+F

打開Find窗口,提供待搜索文本的搜索選項

Find Next

Shift+Ctrl+H

從終端會話的當前位置開始向前搜索指定文本

Find Previous

Shift+Ctrl+G

從終端會話的當前位置開始向後搜索指定文本

表2-8所展示的Terminal菜單中的菜單項用於控制終端仿真會話的特性。這些菜單項並沒有對應的快捷鍵。

表 2-8 Terminal菜單

名稱

描述

Change Profile

切換到新的配置文件

Set Title

修改標籤會話的標題

Set Character Encoding

選擇用於發送和顯示字符的字符集

Reset

發送終端會話重置控制碼

Reset and Clear

發送終端會話重置控制碼並清除終端會話顯示

Window Size List

列出可用於調整當前終端窗口大小的列表

Reset選項非常有用。某天,你可能不小心讓終端會話顯示了一堆雜亂無章的字符和符號。這時候根本識別不出什麼文本信息。這通常是因爲在屏幕上顯示了非文本文件。可以通過選擇Reset或Reset and Clear讓屏幕恢復正常。

表2-9所展示的Tabs菜單中的菜單項用於控制標籤的位置以及活動標籤的選擇。這個菜單只有在打開多個標籤會話時纔會出現。

表 2-9 Tabs菜單

名稱

快捷鍵

描述

Next Tab

Ctrl+PageDown

使下一個標籤成爲活動標籤

Previous Tab

Ctrl+PageUp

使上一個標籤成爲活動標籤

Move Tab Left

Shift+Ctrl+PageUp

將當前標籤移動到前一個標籤的前面

Move Tab Right

Shift+Ctrl+PageDown

將當前標籤移動到下一個標籤的後面

Detach Tab

刪除該標籤並使用該標籤會話啓動一個新的GNOME Terminal窗口

Tab List

列出當前正在運行的標籤(選擇一個標籤,轉入對應的會話)

Terminal List

列出當前正在運行的終端(選擇一個終端,轉入對應的會話。當打開多個窗口會話的時候纔會出現該菜單項)

最後,Help菜單包含了兩個菜單項。Contents提供了一份完整的GNOME Terminal手冊,可供你研究GNOME Terminal的各個菜單項和特性。About菜單項可以告訴你當前運行的GNOME Terminal的版本。

除了GNOME終端仿真軟件包,另一個常用的軟件包是Konsole Terminal。兩者在很多方面類似。不過兩者間存在的差異還是讓我們很有必要單獨開闢一節來講解的。

2.5 使用Konsole Terminal仿真器

KDE桌面項目擁有自己的終端仿真軟件包:Konsole Terminal。Konsole軟件包具備基本的終端仿真特性,另外還包含了一些更高級的圖形應用程序功能。本節描述了Konsole Terminal的特性及其用法。

2.5.1 訪問Konsole Terminal

Konsole Terminal是KDE桌面環境的默認終端仿真器,可以通過KDE環境的菜單系統輕而易舉地訪問到。在其他桌面環境中,訪問Konsole Terminal就要麻煩一點了。

在KDE桌面環境中,可以通過點擊屏幕左下角名爲Kickoff Application Launcher的圖標來訪問Konsole Terminal。然後點擊Applications ➪ System ➪ Terminal (Konsole)。

說明 你可能會在KDE菜單環境中看到兩個終端菜單項。如果是這樣的話,下方包含文字Konsole的Terminal菜單項就是Konsole終端。

在GNOME桌面環境中,通常並沒有默認安裝Konsole終端。如果已經安裝過的話,你可以通過GNOME的菜單系統進行訪問。在屏幕左上角點擊Applications ➪ System Tools ➪ Konsole。

說明 你的系統中可能並沒有安裝Konsole終端仿真軟件包。如果想安裝的話,請閱讀第9章來學習如何在命令行中安裝軟件。

如果在Unity桌面環境中安裝了Konsole,可以通過Dash ➪ Search,然後輸入Konsole進行訪問。Konsole Terminal會作爲一個名爲Konsole的應用程序顯示在Dash區域。點擊對應的圖標打開Konsole終端仿真器。

圖2-4展示了在CentOS Linux發行版的KDE桌面環境中訪問Konsole Terminal。

{%}

圖 2-4 Konsole Terminal

記住,在大多數桌面環境中,可以創建一個啓動器來訪問如Konsole Terminal這樣的應用程序。需要用於啓動器啓動Konsole終端仿真器的命令是konsole。另外,如果已經安裝過Konsole Terminal的話,可以在其他的終端模擬器中輸入konsole,然後按回車鍵來啓動。

和GNOME Terminal類似,Konsole Terminal也通過菜單提供了一些配置選項和快捷鍵。接下來將會逐一講述這些選項。

2.5.2 菜單欄

Konsole Terminal的菜單欄包含了查看和更改終端仿真會話特性所需的配置及定製化選項。下面的幾張表格簡要描述了菜單選項及其快捷鍵。

竅門 在活動會話區域中點擊右鍵時,Konsole Terminal會彈出一個簡單的菜單。一些菜單項可以在這個非常方便的菜單中找到。

表2-10中所展示的File菜單提供了可用於在當前窗口或新窗口中打開新標籤的選項。

表 2-10 File菜單

名稱

快捷鍵

描述

New Tab

Ctrl+Shift+N

在現有的Konsole Terminal窗口的新標籤中啓動一個新的shell會話

New Window

Ctrl+Shift+M

在新的Konsole Terminal窗口中啓動一個新的shell會話

shell

打開採用默認配置文件的shell

Open Browser Here

打開默認的文件瀏覽器應用

Close Tab

Ctrl+Shift+W

關閉當前標籤中的會話

Quit

Ctrl+Shift+Q

退出Konsole Terminal仿真應用

在首次啓動Konsole Terminal時,菜單中唯一列出的配置文件就是shell。隨着越來越多的配置文件被創建及保存,它們的名字都會出現在菜單中。

說明 在閱讀書中所描述的Konsole Terminal菜單項時,要注意的是,這可能會和你使用的Linux發行版中的Konsole Terminal有所不同。因爲一些Linux發行版中採用的Konsole Terminal仿真軟件包的版本比較舊。

表2-11中所展示的Edit菜單提供了可用於處理會話中的文本內容的選項。除此之外,可以管理標籤名稱的選項也在此列。

表 2-11 Edit菜單

名稱

快捷鍵

描述

Copy

Ctrl+Shift+C

將選擇的文本複製到Konsole的剪貼板中

Paste

Ctrl+Shift+V

將Konsole剪貼板中的文本粘貼到會話中

Rename Tab

Ctrl+Alt+S

修改標籤會話的標題

Copy Input To

開始/停止將會話輸入複製到所選的其他會話中

Clear Display

清除終端會話中的內容

Clear & Reset

清除終端會話中的內容併發送終端會話重置控制碼

Konsole有一種很好的方法來跟蹤每個標籤會話中正在進行的活動。你可以使用Rename Tab菜單項對標籤進行命名,使其符合當前執行的任務。這可以幫助我們知道那些打開的標籤究竟是幹什麼的。

表2-12所展示的View菜單中的菜單項用於控制Konsole Terminal窗口中單個會話的視圖。除此之外,可監視終端會話活動的選項也在此列。

表 2-12 View菜單

名稱

快捷鍵

描述

Split View

控制顯示在Konsole Terminal窗口中的多個標籤會話

Detach View

Ctrl+Shift+H

刪除一個標籤會話並使用該標籤中的會話啓動一個新的Konsole Terminal窗口

Show Menu Bar

打開/關閉菜單欄

Full Screen Mode

Ctrl+Shift+F11

打開/關閉終端窗口的全屏模式

Monitor for Silence

Ctrl+Shift+I

打開/關閉無活動標籤(tab silence)的特殊消息

Monitor for Activity

Ctrl+Shift+A

打開/關閉活動標籤(tab activity)的特殊消息

Character Encoding

選擇用於發送和顯示字符的字符集

Increase Text Size

Ctrl++

逐步增大窗口顯示字號

Decrease Text Size

Ctrl+-

逐步減小窗口顯示字號

菜單項Monitor for Silence用於指明無活動標籤。如果在當前標籤會話內超過10秒鐘沒有出現新的文本內容,那該標籤就成了無活動標籤。這允許你在等待應用程序輸出時切換到另一個標籤。

由菜單項Monitor for Activity所打開的活動標籤功能會在標籤會話中出現新的文本內容時發出一條消息。這一選項能讓你注意到應用程序產生了新的輸出。

Konsole爲每個標籤保存了一個叫作回滾緩衝區的歷史記錄。這個歷史記錄中包含了已經不在當前終端可視區域中的文本內容。默認的是在回滾緩衝區內保存最近的1000行文本。表2-13所展示的Scrollback菜單中的菜單項可用於查看該緩衝區。

表 2-13 Scrollback菜單

名稱

快捷鍵

描述

Search Output

Ctrl+Shift+F

打開Konsole Terminal窗口底部的Find窗口,提供回滾文本搜索選項

Find Next

F3

在回滾緩衝區歷史記錄中查找下一個匹配的文本

Find Previous

Shift+F3

在回滾緩衝區歷史記錄中查找上一個匹配的文本

Save Output

將回滾緩衝區中的內容保存在一個文本文件或HTML文件中

Scrollback Options

打開Scrollback Options窗口來配置回滾緩衝區選項

Clear Scrollback

刪除回滾緩衝區中的內容

Clear Scrollback & Reset

Ctrl+Shift+X

刪除回滾緩衝區中的內容並重置終端窗口

你也可以使用窗口可視區域中的滾動條向後翻看回滾緩衝區中的內容。另外,也可以使用Shift+UpArrow逐行向後翻看,或是使用Shift+PageUp逐頁(24行)向後翻看。

表2-14中所展示的Bookmarks菜單中的菜單項可用於管理Konsole Terminal窗口中的書籤。書籤能夠保存活動會話的目錄位置,讓你隨後可以在相同會話或新的會話中輕鬆返回之前的位置。

表 2-14 Bookmark菜單

名稱

快捷鍵

描述

Add Bookmark

Ctrl+Shift+B

在當前目錄位置上創建新的書籤

Bookmark Tabs as Folder

爲當前所有的終端標籤會話創建一個新的書籤

New Bookmark Folder

創建新的書籤文件夾

Edit Bookmarks

編輯已有的書籤

表2-15所展示的Settings菜單中的菜單項可用於定製和管理配置文件。另外,你還可以爲當前的標籤會話再添加些許功能。這些菜單項並沒有對應的快捷鍵。

表 2-15 Settings菜單

名稱

描述

Change Profile

將所選的配置文件應用於當前標籤

Edit Current Profile

打開Edit Profile窗口,提供配置文件配置選項

Manage Profiles

打開Manage Profile窗口,提供配置文件管理選項

Configure Shortcuts

創建Konsole Terminal命令快捷鍵

Configure Notifications

創建定製化的Konsole Terminal方案及會話

Configure Notifications項允許將會話中發生的特定事件與不同的行爲關聯起來。當出現某個事件時,就會觸發指定的行爲(或一系列行爲)。

表2-16中所展示的Help菜單中的菜單項給出了完整的Konsole手冊(如果你的Linux發行版中已經安裝了KDE手冊)以及標準的About Konsole對話框。

表 2-16 Help菜單

名稱

快捷鍵

描述

Konsole Handbook

包含了完整的Konsole手冊

What's This?

Shift+F1

包含了終端部件的幫助信息

Report Bug

打開Submit Bug Report(提交bug報告)表單

Switch Application Language

打開Switch Application's Language(切換應用程序語言)表單

About Konsole

顯示當前Konsole Terminal的版本

About KDE

 

顯示當前KDE桌面環境的版本

有一份相當全面的文檔可以幫助你使用Konsole終端仿真器軟件包。除此之外,在你碰到程序故障的時候,還可以使用Bug Report表單向Konsole Terminal開發人員提交問題。

相較於另一個流行的軟件包xterm,Konsole終端仿真器軟件包算是年輕一代了。在下一節中,我們將探望一下“老古董”xterm。

2.6 使用xterm終端仿真器

最古老也是最基礎的終端仿真軟件包是xterm。xterm軟件包在X Window出現之前就有了,通常默認包含在發行版中。

儘管xterm是功能完善的仿真軟件包,但是它並不需要太多的資源(如內存)來運行。正因爲如此,在專門爲老舊硬件設計的Linux發行版中,xterm非常流行。有些圖形化桌面環境就用它作爲默認終端仿真器軟件包。

xterm軟件包儘管沒有提供太多炫目的特性,但是卻把一件事做到了極致:它能夠仿真舊式終端,如DEC公司的VT102、VT220以及Tektronix 4014終端。對於VT102和VT220終端,xterm甚至能夠仿真VT序列色彩控制碼,讓你可以在腳本中使用色彩。

說明 DEC VT102及VT220盛行於20世紀80年代和90年代初期,用於連接Unix系統的啞文本終端。VT102/VT220不僅能顯示文本,還能夠使用塊模式圖形顯示基本的圖形結構。由於在很多商業環境中這種終端訪問方式仍在使用,因而使得VT102/VT220仿真依然流行。

圖2-5展示了運行在圖形化Linux桌面中的xterm。可以看出,它非常樸素。

{%}

圖 2-5 xterm終端

如今得花點心思才能把xterm終端仿真器找出來。它常常並沒有被包含在桌面環境的菜單中。

2.6.1 訪問xterm

在Ubuntu的Unity桌面中,xterm是默認安裝的。可以通過Dash ➪ Search,然後輸入xterm進行訪問。xterm會作爲一個名爲XTerm的應用出現在Dash區域。點擊對應的圖標就可以打開xterm終端仿真器。

說明 在Ubuntu中搜索xterm時,你可能會看到另一個叫作UXTerm的終端。這只不過是加入了Unicode支持的xterm仿真器軟件包而已。

GNOME和KDE桌面環境中並沒有默認安裝xterm。你得先安裝它(可以參閱第9章安裝軟件包)。安裝完成之後,你必須從另一個終端仿真器中啓動xterm。打開一個終端仿真器進入CLI,輸入xterm並按回車鍵。記住,也可以創建桌面啓動器來啓動xterm。

xterm包讓你可以使用命令行參數設置自己的特性。下面的內容將討論這些特性以及如何進行修改。

2.6.2 命令行參數

xterm的命令行參數非常多。你可以控制大量的特性來對終端仿真實施定製,例如允許或禁止某種VT仿真。

說明 xterm包含數量衆多的配置選項,在此無法一一列舉。在bash手冊中有大量的文檔可供參考。第3章中會講到如何閱讀bash手冊。另外,xterm開發團隊也在其網站上提供了很好的幫助:http://invisible-island.net/xterm/

可以通過向xterm命令加入參數來調用某些配置選項。例如,要想讓xterm仿真DEC VT100終端,可以輸入命令xterm -ti vt100,然後按回車鍵。表2-17給出了一些可以配合xterm終端仿真器使用的參數。

表 2-17 xterm命令行參數

參數

描述

-bg color

指定終端背景色

-fb font

指定粗體文本所使用的字體

-fg color

指定文本顏色

-fn font

指定文本字體

-fw font

指定寬文本字體

-lf filename

指定用於屏幕日誌的文件名

-ms color

指定文本光標顏色

-name name

指定標題欄中的應用程序名稱

-ti terminal

指定要仿真的終端類型

一些xterm命令行參數使用加號(+)或減號(-)來指明如何設置某種特性。加號表示啓用某種特性,減號表示關閉某種特性。不過反過來也行。加號可以表示禁止某種特性,減號可以表示允許某種特性,例如在使用bc參數的時候。表2-18中列出了可以使用+/-命令行參數設置的一些常用特性。

表 2-18 xterm +/-命令行參數

參數

描述

ah

啓用/禁止文本光標高亮

aw

啓用/禁止文本行自動環繞

bc

啓用/禁止文本光標閃爍

cm

啓用/禁止識別ANSI色彩更改控制碼

fullscreen

啓用/禁止全屏模式

j

啓用/禁止跳躍式滾動

l

啓用/禁止將屏幕數據記錄進日誌文件

mb

啓用/禁止邊緣響鈴

rv

啓用/禁止圖像反轉

t

啓用/禁止Tektronix模式

要注意,不是所有的xterm實現都支持這些命令行參數。你可以在xterm啓動後,使用-help參數來確定你所使用的xterm實現支持哪些參數。

現在你已經瞭解了三種終端仿真器軟件包,重要的問題是:哪個是最好的終端仿真器。對於這個問題,並沒有權威的答案。要使用哪個仿真器軟件包取決於你的個人需求。不過,能有這麼多選擇總是好事。

https://zh.wikipedia.org/wiki/Linux%E5%8E%86%E5%8F%B2




































發佈了89 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章