鍍金池/ 教程/ Linux/ 什么是 shell
網(wǎng)絡(luò)系統(tǒng)
打印
重定向
使用命令
位置參數(shù)
權(quán)限
文本處理
疑難排解
layout: book-zh title: 自定制 shell 提示符
查找文件
layout: book-zh title: vi 簡介
shell 環(huán)境
什么是 shell
編譯程序
鍵盤高級操作技巧
流程控制:case 分支
流程控制:if 分支結(jié)構(gòu)
layout: book-zh title: 軟件包管理
進程
存儲媒介
格式化輸出
編寫第一個 Shell 腳本
啟動一個項目
流程控制:while/until 循環(huán)
文件系統(tǒng)中跳轉(zhuǎn)
字符串和數(shù)字
讀取鍵盤輸入
歸檔和備份
探究操作系統(tǒng)
流程控制:for 循環(huán)
自頂向下設(shè)計
數(shù)組
操作文件和目錄
奇珍異寶
從 shell 眼中看世界
正則表達式

什么是 shell

一說到命令行,我們真正指的是 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)在試著使用左右箭頭按鍵。 看一下怎樣把光標定位到命令行的任意位置?通過使用箭頭按鍵,使編輯命令變得輕松些。

關(guā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

結(jié)束終端會話

我們可以通過關(guān)閉終端仿真器窗口,或者是在 shell 提示符下輸入 exit 命令來終止一個終端會話:

[me@linuxbox ~]$ exit

幕后控制臺

即使終端仿真器沒有運行,在后臺仍然有幾個終端會話運行著。它們叫做虛擬終端 或者是虛擬控制臺。在大多數(shù) Linux 發(fā)行版中,這些終端會話都可以通過按下 Ctrl-Alt-F1 到 Ctrl-Alt-F6 訪問。當一個會話被訪問的時候, 它會顯示登錄提示框,我們需要輸入用戶名和密碼。要從一個虛擬控制臺轉(zhuǎn)換到另一個, 按下 Alt 和 F1-F6(中的一個)。返回圖形桌面,按下 Alt-F7。

拓展閱讀