一說到命令行,我們真正指的是 shell。shell 就是一個(gè)程序,它接受從鍵盤輸入的命令, 然后把命令傳遞給操作系統(tǒng)去執(zhí)行。幾乎所有的 Linux 發(fā)行版都提供一個(gè)名為 bash 的 來自 GNU 項(xiàng)目的 shell 程序。“bash” 是 “Bourne Again SHell” 的首字母縮寫, 所指的是這樣一個(gè)事實(shí),bash 是最初 Unix 上由 Steve Bourne 寫成 shell 程序 sh 的增強(qiáng)版。
當(dāng)使用圖形用戶界面時(shí),我們需要另一個(gè)和 shell 交互的叫做終端仿真器的程序。 如果我們?yōu)g覽一下桌面菜單,可能會(huì)找到一個(gè)。雖然在菜單里它可能都 被簡單地稱為 “terminal”,但是 KDE 用的是 konsole , 而 GNOME 則使用 gnome-terminal。 還有其他一些終端仿真器可供 Linux 使用,但基本上,它們都完成同樣的事情, 讓我們能訪問 shell。也許,你可能會(huì)因?yàn)楦郊拥囊幌盗谢ㄇ喂δ芏矚g上某個(gè)終端。
好,開始吧。啟動(dòng)終端仿真器!一旦它運(yùn)行起來,我們應(yīng)該看到一行像這樣的文字:
[me@linuxbox ~]$
這叫做 shell 提示符,無論何時(shí)當(dāng) shell 準(zhǔn)備好了去接受輸入時(shí),它就會(huì)出現(xiàn)。然而, 它可能會(huì)以各種各樣的面孔顯示,這則取決于不同的 Linux 發(fā)行版, 它通常包括你的用戶名@主機(jī)名,緊接著當(dāng)前工作目錄(稍后會(huì)有更多介紹)和一個(gè)美元符號(hào)。
如果提示符的最后一個(gè)字符是“#”, 而不是“$”, 那么這個(gè)終端會(huì)話就有超級(jí)用戶權(quán)限。 這意味著,我們或者是以 root 用戶的身份登錄,或者是我們選擇的終端仿真器提供超級(jí)用戶(管理員)權(quán)限。
假定到目前為止,所有事情都進(jìn)行順利,那我們?cè)囍I入字符吧。在提示符下敲入 一些像下面一樣的亂七八糟的字符:
[me@linuxbox ~]$ kaekfjaeifj
因?yàn)檫@個(gè)命令沒有任何意義,所以 shell 會(huì)提示錯(cuò)誤信息,并讓我們?cè)僭囈幌拢?/p>
bash: kaekfjaeifj: command not found
[me@linuxbox ~]$
如果按下上箭頭按鍵,我們會(huì)看到剛才輸入的命令“kaekfjaeifj”重新出現(xiàn)在提示符之后。 這就叫做命令歷史。許多 Linux 發(fā)行版默認(rèn)保存最后輸入的500個(gè)命令。 按下下箭頭按鍵,先前輸入的命令就消失了。
可借助上箭頭按鍵,來獲得上次輸入的命令?,F(xiàn)在試著使用左右箭頭按鍵。 看一下怎樣把光標(biāo)定位到命令行的任意位置?通過使用箭頭按鍵,使編輯命令變得輕松些。
雖然,shell 是和鍵盤打交道的,但你也可以在終端仿真器里使用鼠標(biāo)。X 窗口系統(tǒng) (使 GUI 工作的底層引擎)內(nèi)建了一種機(jī)制,支持快速拷貝和粘貼技巧。 如果你按下鼠標(biāo)左鍵,沿著文本拖動(dòng)鼠標(biāo)(或者雙擊一個(gè)單詞)高亮了一些文本, 那么這些高亮的文本就被拷貝到了一個(gè)由 X 管理的緩沖區(qū)里面。然后按下鼠標(biāo)中鍵, 這些文本就被粘貼到光標(biāo)所在的位置。試試看。
注意: 不要在一個(gè)終端窗口里使用 Ctrl-c 和 Ctrl-v 快捷鍵來執(zhí)行拷貝和粘貼操作。 它們不起作用。對(duì)于 shell 來說,這兩個(gè)控制代碼有著不同的含義,它們?cè)谠缬?Microsoft Windows (定義復(fù)制粘貼的含義)許多年之前就賦予了不同的意義。
你的圖形桌面環(huán)境(像 KDE 或 GNOME),努力想和 Windows 一樣,可能會(huì)把它的聚焦策略 設(shè)置成“單擊聚焦”。這意味著,為了讓窗口聚焦(變成活動(dòng)窗口)你需要單擊它。 這與“聚焦跟隨著鼠標(biāo)”的傳統(tǒng) X 行為不同,傳統(tǒng) X 行為是指只要把鼠標(biāo)移動(dòng)到一個(gè)窗口的上方。 它能接受輸入, 但是直到你單擊窗口之前它都不會(huì)成為前端窗口。 設(shè)置聚焦策略為“聚焦跟隨著鼠標(biāo)”,可以使拷貝和粘貼更方便易用。嘗試一下。 我想如果你試了一下你會(huì)喜歡上它的。你能在窗口管理器的配置程序中找到這個(gè)設(shè)置。
現(xiàn)在,我們學(xué)習(xí)了怎樣輸入命令,那我們執(zhí)行一些簡單的命令吧。第一個(gè)命令是 date。 這個(gè)命令顯示系統(tǒng)當(dāng)前時(shí)間和日期。
[me@linuxbox ~]$ date
Thu Oct 25 13:51:54 EDT 2007
一個(gè)相關(guān)聯(lián)的命令,cal,它默認(rèn)顯示當(dāng)前月份的日歷。
[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 命令來終止一個(gè)終端會(huì)話:
[me@linuxbox ~]$ exit
即使終端仿真器沒有運(yùn)行,在后臺(tái)仍然有幾個(gè)終端會(huì)話運(yùn)行著。它們叫做虛擬終端 或者是虛擬控制臺(tái)。在大多數(shù) Linux 發(fā)行版中,這些終端會(huì)話都可以通過按下 Ctrl-Alt-F1 到 Ctrl-Alt-F6 訪問。當(dāng)一個(gè)會(huì)話被訪問的時(shí)候, 它會(huì)顯示登錄提示框,我們需要輸入用戶名和密碼。要從一個(gè)虛擬控制臺(tái)轉(zhuǎn)換到另一個(gè), 按下 Alt 和 F1-F6(中的一個(gè))。返回圖形桌面,按下 Alt-F7。
想了解更多關(guān)于 Steve Bourne 的故事,Bourne Shell 之父,讀一下這篇文章:
這是一篇關(guān)于在計(jì)算機(jī)領(lǐng)域里,shells 概念的文章: