一說到命令行,我們真正指的是 shell。shell 就是一個程序,它接受從鍵盤輸入的命令, 然后把命令傳遞給操作系統(tǒng)去執(zhí)行。幾乎所有的 Linux 發(fā)行版都提供一個名為 bash 的 來自 GNU 項目的 shell 程序?!癰ash” 是 “Bourne Again SHell” 的首字母縮寫, 所指的是這樣一個事實,bash 是最初 Unix 上由 Steve Bourne 寫成 shell 程序 sh 的增強版。
當使用圖形用戶界面時,我們需要另一個和 shell 交互的叫做終端仿真器的程序。 如果我們?yōu)g覽一下桌面菜單,可能會找到一個。雖然在菜單里它可能都 被簡單地稱為 “terminal”,但是 KDE 用的是 konsole , 而 GNOME 則使用 gnome-terminal。 還有其他一些終端仿真器可供 Linux 使用,但基本上,它們都完成同樣的事情, 讓我們能訪問 shell。也許,你可能會因為附加的一系列花俏功能而喜歡上某個終端。
好,開始吧。啟動終端仿真器!一旦它運行起來,我們應(yīng)該看到一行像這樣的文字:
[me@linuxbox ~]$
這叫做 shell 提示符,無論何時當 shell 準備好了去接受輸入時,它就會出現(xiàn)。然而, 它可能會以各種各樣的面孔顯示,這則取決于不同的 Linux 發(fā)行版, 它通常包括你的用戶名@主機名,緊接著當前工作目錄(稍后會有更多介紹)和一個美元符號。
如果提示符的最后一個字符是“#”, 而不是“$”, 那么這個終端會話就有超級用戶權(quán)限。 這意味著,我們或者是以 root 用戶的身份登錄,或者是我們選擇的終端仿真器提供超級用戶(管理員)權(quán)限。
假定到目前為止,所有事情都進行順利,那我們試著鍵入字符吧。在提示符下敲入 一些像下面一樣的亂七八糟的字符:
[me@linuxbox ~]$ kaekfjaeifj
因為這個命令沒有任何意義,所以 shell 會提示錯誤信息,并讓我們再試一下:
bash: kaekfjaeifj: command not found
[me@linuxbox ~]$
如果按下上箭頭按鍵,我們會看到剛才輸入的命令“kaekfjaeifj”重新出現(xiàn)在提示符之后。 這就叫做命令歷史。許多 Linux 發(fā)行版默認保存最后輸入的500個命令。 按下下箭頭按鍵,先前輸入的命令就消失了。
可借助上箭頭按鍵,來獲得上次輸入的命令?,F(xiàn)在試著使用左右箭頭按鍵。 看一下怎樣把光標定位到命令行的任意位置?通過使用箭頭按鍵,使編輯命令變得輕松些。
雖然,shell 是和鍵盤打交道的,但你也可以在終端仿真器里使用鼠標。X 窗口系統(tǒng) (使 GUI 工作的底層引擎)內(nèi)建了一種機制,支持快速拷貝和粘貼技巧。 如果你按下鼠標左鍵,沿著文本拖動鼠標(或者雙擊一個單詞)高亮了一些文本, 那么這些高亮的文本就被拷貝到了一個由 X 管理的緩沖區(qū)里面。然后按下鼠標中鍵, 這些文本就被粘貼到光標所在的位置。試試看。
注意: 不要在一個終端窗口里使用 Ctrl-c 和 Ctrl-v 快捷鍵來執(zhí)行拷貝和粘貼操作。 它們不起作用。對于 shell 來說,這兩個控制代碼有著不同的含義,它們在早于 Microsoft Windows (定義復(fù)制粘貼的含義)許多年之前就賦予了不同的意義。
你的圖形桌面環(huán)境(像 KDE 或 GNOME),努力想和 Windows 一樣,可能會把它的聚焦策略 設(shè)置成“單擊聚焦”。這意味著,為了讓窗口聚焦(變成活動窗口)你需要單擊它。 這與“聚焦跟隨著鼠標”的傳統(tǒng) X 行為不同,傳統(tǒng) X 行為是指只要把鼠標移動到一個窗口的上方。 它能接受輸入, 但是直到你單擊窗口之前它都不會成為前端窗口。 設(shè)置聚焦策略為“聚焦跟隨著鼠標”,可以使拷貝和粘貼更方便易用。嘗試一下。 我想如果你試了一下你會喜歡上它的。你能在窗口管理器的配置程序中找到這個設(shè)置。
現(xiàn)在,我們學(xué)習(xí)了怎樣輸入命令,那我們執(zhí)行一些簡單的命令吧。第一個命令是 date。 這個命令顯示系統(tǒng)當前時間和日期。
[me@linuxbox ~]$ date
Thu Oct 25 13:51:54 EDT 2007
一個相關(guān)聯(lián)的命令,cal,它默認顯示當前月份的日歷。
[me@linuxbox ~]$ cal
October 2007
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
查看磁盤剩余空間的數(shù)量,輸入 df:
[me@linuxbox ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 15115452 5012392 9949716 34% /
/dev/sda5 59631908 26545424 30008432 47% /home
/dev/sda1 147764 17370 122765 13% /boot
tmpfs 256856 0 256856 0% /dev/shm
同樣地,顯示空閑內(nèi)存的數(shù)量,輸入命令 free。
[me@linuxbox ~]$ free
total used free shared buffers cached
Mem: 2059676 846456 1213220 0
44028 360568
-/+ buffers/cache: 441860 1617816
Swap: 1042428 0 1042428
我們可以通過關(guān)閉終端仿真器窗口,或者是在 shell 提示符下輸入 exit 命令來終止一個終端會話:
[me@linuxbox ~]$ exit
即使終端仿真器沒有運行,在后臺仍然有幾個終端會話運行著。它們叫做虛擬終端 或者是虛擬控制臺。在大多數(shù) Linux 發(fā)行版中,這些終端會話都可以通過按下 Ctrl-Alt-F1 到 Ctrl-Alt-F6 訪問。當一個會話被訪問的時候, 它會顯示登錄提示框,我們需要輸入用戶名和密碼。要從一個虛擬控制臺轉(zhuǎn)換到另一個, 按下 Alt 和 F1-F6(中的一個)。返回圖形桌面,按下 Alt-F7。
想了解更多關(guān)于 Steve Bourne 的故事,Bourne Shell 之父,讀一下這篇文章:
這是一篇關(guān)于在計算機領(lǐng)域里,shells 概念的文章: