1. 程式人生 > >Linux真小白入門教程第四集——Bash Shell命令學習(1)

Linux真小白入門教程第四集——Bash Shell命令學習(1)

大部分的Linux發行版的預設shell都是GNU預設的bash shell,而Ubuntu上大多數都是dash shell。

啟動shell,/etc/passwd 樣例條目下的最後一個欄位會顯示預設的shell版本,登陸後自動啟動。

在虛擬控制檯終端登入,CLI提示符會自動出現,即可輸入shell命令。而圖形化桌面環境登入Linux系統,就需要啟動一個圖形化終端模擬器來訪問shell的CLI

 

預設的bash shell提示符是美元符號$,表明shell在等待使用者輸入。可以在CLI中通過shell命令找到bash 手冊,瞭解各種命令及引數:man命令+想要查詢的工具的名稱,就可以找到那個工具相應的手冊條目

man xterm

查詢xterm命令的手冊頁面

 

當使用man命令檢視命令手冊頁的時候,這些手冊頁由分頁程式來顯示,分頁程式是一種實用工具,能夠逐頁顯示文字。可以點選空格鍵進行翻頁或者使用回車鍵逐行檢視。

讀完手冊,可以點選q鍵退出,退出後,會重新獲得shell CLI的輸入提示符,此時shell正在等待下一條命令。

(man man 命令可以檢視手冊本身的手冊頁)

(如果記不得具體的命令名字,可以通過 man -k 關鍵字 進行查詢

man -k terminal

查詢與終端相關的命令

(值得關注的是,手冊頁還分有特定的內容區域,不同的區域儲存不同的內容,也都分配了一個固定的數字

區域號 所涵蓋的內容

1 可執行程式或shell命令

2 系統呼叫

3 庫呼叫

4 特殊檔案

5 檔案格式與約定

6 遊戲

7 概覽、約定及雜項

8 超級使用者和系統管理員命令

9 核心例程

 

上圖的示例左上角就表明手冊內容來自於區域1(這是因為一個命令通常會在不同的區域都對應有一些內容,如果需要指定從那個區域獲取相關資訊,可以這麼寫:

man 7 hostname

 

man 命令調出的手冊頁並不是唯一的參考資料,另外還有兩種方式:info 和 help 可以替代man。

help 用法: hostname -help (命令 -help)

 

一般情況下,登入系統之後,獲取了shell的命令提示符,此時都是位於主目錄之下。

 

講一下Linux的檔案與目錄:

Linux在路徑名中不使用驅動器碟符表明儲存區域,也就是沒有C盤、D盤這樣的概念。Linux採用了一種不同的方式,將檔案儲存在單個目錄結構中,這個目錄被稱為虛擬目錄,虛擬目錄將安裝在PC上的所有儲存裝置的檔案路徑納入到單個目錄結構中。

Linux的虛擬目錄結構只包含一個稱為:根(root)目錄的基礎目錄,而根目錄下的目錄和檔案會按照訪問他們的目錄路徑一一列出,與Windows相似。Linux中使用“/” 來劃分目錄,而windows使用“\”在檔案路徑中劃分目錄,在Linux中,反斜線“\”被用來標示轉義字元

/home/Rich/Documents/test.doc (一個Linux路徑)

 

Linux虛擬目錄中比較複雜的部分是它如何協調管理各個儲存裝置。在Linux PC上安裝的第一塊硬碟被稱為“根驅動器”,它包含了虛擬目錄的核心,所有其他的目錄都是從那裡開始構建的。而Linux會在根驅動器上建立一些特別的目錄,稱之為“掛載點”,掛載點是虛擬目錄中用於分配額外儲存裝置的目錄,虛擬目錄會讓檔案和目錄出現在這些掛載點目錄中,然而實際上卻儲存在另一塊儲存驅動器中。(通常系統檔案會儲存在根驅動器中,而使用者檔案則儲存在另一個驅動器中)

下圖為Linux的目錄示意:

比較重要的一些目錄名稱:

常見的這些目錄名均來自於檔案系統層級標準(FHS filesystem hierarchy standard)

 

可以使用cd 命令來切換到另一個目錄下 (cd 目錄名)

cd destination

目錄名可以使用絕對檔案路徑,也可以使用相對檔案路徑

絕對檔案路徑定義了在虛擬目錄結構中該目錄的確切位置,從虛擬目錄的根目錄開始,相當於目錄的全名。

以正斜線“/” 開始,知名虛擬檔案系統的根目錄

/user/bin 指向user目錄下所包含的bin目錄下的使用者二進位制檔案。

cd /user/bin

($提示符前面的~波浪號表示的就是所在虛擬目錄結構的主目錄,切換出主目錄之後,提示符之前就會顯示當前的絕對路徑)(如果沒有顯示,後面會說到怎麼去設定)

 

可以使用pwd命令來檢視當前回話的目錄(如下圖所示,經常使用這個命令檢視自己是否在正確的目錄下)(直接cd 空 可以直接回到主目錄中)

然而,絕對路徑經常會出現路經過長的問題。

 

相對檔案路徑允許使用者指定一個基於當前位置的目標檔案路徑,可以不以代表根目錄的正斜線開頭“/”,而以目錄名或是一個特殊字元開始。比如現在位於home目錄,希望切換到Documents子目錄,就可以直接

cd Documents

即可。

可以再任何包含子目錄的目錄中使用帶有相對檔案路徑的cd命令,也可以使用特殊字元來表示相對檔案目錄(比如. 和..)

單點符號 . 表示當前目錄

雙點符號 .. 表示當前目錄的父目錄

下圖顯示:

而使用多個雙點符號可以持續向上切換目錄。

此時絕對路徑直接/etc 即可。

所以兩種方式要理智選取。

 

可以使用ls命令來檢視檔案,顯示當前目錄下的檔案以及目錄

ls的輸出按照字母順序,如果終端支援彩色顯示,還可以對不同的檔案加以顏色區分

-F引數可以將該目錄下的目錄和檔案區分開來

Linux上的隱藏檔案是檔名以 . 點號開始的檔案,ls不能讓它們現行

-a 引數可以一併顯示出隱藏的檔案

-R 遞迴選項,可以顯示出當前目錄下的子目錄中的檔案

值得注意的是,選項引數並不一定要分開輸入(當然分開輸入也是對的),還可以進行合併(ls -FR )(ls -F -R)

-l 引數會產生長列表格式的輸出,包含了目錄中每個檔案的更多相關詳細資訊