第一篇:超级工具/Terminals,xterms 和 Shells
?一、超級工具
您或許聽過這樣的論調:命令行(the mommand line)早就已經過時了,那東西神秘兮兮的,等等。有些人甚至覺得操作系統(tǒng)中應該沒有這些命令才好。
事實是上,您可以不懂任何 shell ,就能使用 Linux 。您啟動系統(tǒng)后可以直接進入 X Window ,最后在 X Window 下關機。
我堅信,用 Linux 而不懂 shell ,就象開車只會用頭檔(first gear)一樣。當然,最初看起來,直接而簡單,在大多數情況下都管用。但速度慢,而且無法真正體驗駕駛的樂趣。
對,命令行很有趣。就象用一大堆收集到的積木,竟可以完成許多意想不到的創(chuàng)舉,一些極其復雜的工作,只需幾行命令就可以解決。這是因為,在 Unix 中,shell 可不是簡單的命令解釋器(典型的有 Windows 中的 DOS ),而是一個全功能的編程環(huán)境。
這并不意味著 shell 非常容易學通,您知道,好事多磨,這還是要花點工夫的。;-) 但請相信我,這絕對值得。您在很短時間內,就能被一大幫門外漢吹捧為 Unix wizard(奇才) 。*grin*
二、為了說明 shell ,這里需要一些背景知識。
1、Terminals, xterms 與 Shells
追溯到 Unix 誕生的那個年代,當時還沒有現在流行的"個人計算機"。被稱為計算機的機器,還是吞吐磁帶與 magnetic memory (用術語'core'來表示系統(tǒng) memory)的龐然大物。DEC 公司(現在的 Compaq)推出的 PDP-11 ,體積小(被稱為 mini)而且價格底,在大學中引起了巨大的反響,很多學校直到那時才買得起一臺計算機(PDP-11 物美價廉,只有 10000$)。
這些機器的操作系統(tǒng)由匯編語言、機器語言寫成,所以運行起來效率很高,但都無法移植(unportable)。每家計算機公司都給自己的機器配上獨有的操作系統(tǒng),然后再銷售。
這種笨拙的作法很快就被人們意識到了,于是就開始興建一個可以在不同品牌機器上運行的操作系統(tǒng)。1969 年,Ken Thompson 開始寫后來成為 Unix 的第一行代碼。(Thompson 曾經參加了一個項目:MULTICS,Unix 是與這有關的一個玩笑詞) 其實,Dennis Ritchie 為這個新的操作系統(tǒng)設計了一種新的編程語言-- C 語言后,事情才真正開始。
雖然 Unix 的效率不及原來的操作系統(tǒng),但有三個突出的優(yōu)點:可以任意移植到其他機器,其中的 C 語言大大簡化了編程,而且這些都 free 。很快,全美國的大學都忙著開始為機器安裝 Unix 。
2、終端(Terminals)
Unix 是可以在許多種機器上運行的操作系統(tǒng),但人們又如何使用這些機器呢?他們是通過啞終端來連接到這些機器,也就是用鍵盤、顯示器及足夠的 electronics (電子元件)組成的機器與中央計算機(central computer)相連。在這些終端上,用戶可以敲字符(teletypy),這就是字符串'tty'表示終端設備文件,和'getty'命令的名稱來歷。
您可能會問,現在這些東西都在哪兒。 這些終端的廠家無法達成一項最終標準,這導致每種牌子的終端都有各自的鍵盤布局、各自的在屏幕上顯示字符的方法、發(fā)送或接收什么信號表示什么字符、控制代碼等等。
為了避免這些混亂,就創(chuàng)建了一個含有所有不同終端特性的(capability)文件,這就是'termcap'。用一個工具打開'/etc/termcap'瞧瞧,可別嚇著了 ;-) 。
Linux 終端大多數用'vt100'或'linux'作為終端類型。
3、xterms
在八十年代初期,產生了一個 Unix 的圖形子系統(tǒng)-- the X Window System 。九十年代早期,為了更好地實現基于 Intel 的 Unix 類系統(tǒng)上(如FreeBSD、NetBSD、Linux)的應用,產生了一個系統(tǒng)分支-- XFree86 。
X Window 中一個很大的好處是可以運行多個虛擬(virtual)終端。甚至在 X Window 下就有這么個應用程序--'xterm'。您將發(fā)現'xterm'和'virtual terminal'在很多情況下都是一樣的。有的地方說'打開一個 xterm',其實您不是非要用'xterm'程序,其他的終端模擬器(terminal emulator),如 rxvt、konsole、aterm、eterm、wterm 等等,一樣有效。
終端模擬器(又稱為虛擬終端)通過偽(pseudo) tty 設備-- pty 與系統(tǒng)相連,并且使用自己的顯示標準-- xterm 。這導致不同的終端模擬器可能在一些按鍵或程序上存在細小的差別,這取決于模擬器多大程度上遵守了'xterm'的顯示標準。
4、Shells
為了在終端中運行程序,需要 shell 。shell 是操作系統(tǒng)的一部分,用來與用戶打交道,并且可以用來協(xié)調各個命令。
第一個真正的 Unix shell -- 'sh',亦稱為'Bourne shell',誕生于 1975 年,作者是 Steve Bourne 。很快,出現了其他 shell ,如基于原始'Bourne shell'的'ksh'、'zsh',后者常用作專屬 Unixes 系統(tǒng)中的標準 shell ;也有一些從 C 語言中衍生出來的 shell ,如'csh'或'tcsh'。
在 Linux 中,標注的 shell 是'bash',即 the GNU Bourne-Again Shell (有點玩笑的味道……)。這個 shell 功能非常強大(甚至有人覺得太龐大了),壓縮的 man page 就有 50 KB 。
三、Shell 起步
首先,有一點小說明:在平常應用中,建議您不要用'root'帳號運行 shell ,如果您還是新手,這一點尤其要注意。作為普通用戶,不管您有意還是無意,都無法破壞系統(tǒng);但如果是'root',那就不同了,只要敲幾個字母,就可能導致災難性后果。
當您登入系統(tǒng)或打開一個 xterm 窗口,首先看到的是提示符(prompt)。Red Hat Linux 的標準提示符包括了您的用戶名、登入的主機名(沒有設置的話,是'localhost')、當前所在的目錄(working directory)、提示符號:
[tom@belbo tom]$
我以用戶名'tom'登入名為'belbo'的主機,當前在我的 home 目錄--'/home/tom'中。'root'的提示符:
除了不同的用戶名外,提示符號由'$'變成了'#'。根據 Bourne shell 的傳統(tǒng),普通用戶的提示符以'$'結尾,而超級用戶用'#'。
?
提示符的每個部分都可以定制,您在后面將有更深的了解。
要運行命令的話,您只要在提示符后敲進命令,然后在按?鍵。shell 將在其路徑中(詳情見后)搜索這個命令,找到以后就運行,并在終端里輸出相應的結果(如果有的話),命令結束后,再給出新的提示符:
tom
[tom@belbo tom]$
?
順帶指出,當您敲 ENTER 時,光標(cursor)在哪里并不要緊,因為 shell 總是會整行地讀取。
基本的命令有:'ls'(list directory ,列出目錄內容)、'cp'(copy ,復制)、'mv'(move / rename ,移動/重命名),'cd '(change directory ,改變目錄),這些命令后面都可以跟上一幫可選項,這方面 man page 有詳細的介紹(man ls, man mv 等等)。
在您動身前往 shell 領地前,這里有幾個術語(terminology)的簡短說明。命令可能帶一些可選項(options)、參數(arguments):
?
其中'-i'是命令'mv'的一個可選項,而'file'和'dir'則是參數。所有可選項在該命令的 man page 都中有詳細的介紹(此例中用 man mv),而參數則由您提供。可選項決定命令如何工作,而參數則用于確定命令作用的目標。
到目前為止,介紹得有點象許多人厭惡輕視的 DOS shell ,但伴隨著下面的介紹,您將會有新的體驗。
轉載于:https://blog.51cto.com/3579224/666284
總結
以上是生活随笔為你收集整理的第一篇:超级工具/Terminals,xterms 和 Shells的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华西村合作制及分配制度
- 下一篇: 网络推广人员需要掌握的九大查询工具