官术网_书友最值得收藏!

4.1 Linux命令行

通常說的Linux命令行是指運行在終端(terminal)的shell。Linux命令行是Linux系統的核心,往往也是初學者最大的瓶頸。有的讀者用了很長時間的Linux圖形界面,基本不使用在命令行中輸入命令這種方式,所安裝的Linux幾乎成了擺設。利用命令行可以對系統進行各種配置,要想熟練并成功地管理Linux操作系統,必須對Linux環境下的命令行有深入地理解。

4.1.1 命令行說明

在Linux操作系統中,用命令行進行操作是主要的操作方式。命令行是一種在字符模式下對系統操作的界面,與圖形界面相對。目前,在計算機操作系統中,圖形界面已成為主流。然而,以字符界面形式出現的命令行方式由于具有占用系統資源少、性能穩定并且非常安全等特點,使其仍發揮著重要作用。Linux命令行方式在服務器管理中一直有著廣泛的應用。利用命令行可以對系統進行各種操作,這些操作雖然沒有圖形化界面那樣直觀明了,但是卻快捷而順暢。

在Linux中,命令有大小寫的區分,且所有的Linux命令和選項都區分大小寫,例如-V和-v是兩個不同的命令,這與Windows操作系統有所區別。在Windows操作系統環境下,所有命令都沒有大小寫的區別。初學者應遵循所有Linux環境下控制臺命令的輸入均為小寫這一原則。

學習Linux環境下的命令行有助于初學者了解系統的運行情況和計算機的各種設備,如中央處理器、內存、磁盤驅動器、鍵盤、鼠標及其他輸入/輸出設備和用戶文件等。可以說,Linux的命令行對于整個系統的運行以及設備與文件之間的協調具有核心的作用。雖然近幾年來個人計算機的潮流已經從命令行的方式向圖形界面的方式轉換,用戶也熱衷于利用鼠標在圖形界面下對系統進行操作。但是命令行方式仍然有其強大的生命力,如系統管理員就必須經常和命令行打交道。與圖形界面相比,利用命令行對系統進行管理和操作顯得更為快捷和安全。特別是在服務器應用方面,Linux命令行更是處于一種核心的地位,這主要是因為在字符界面下的操作具有更大的穩定性和安全性能。

4.1.2 命令行分類

命令行有如下六種分類。

1.系統設置命令

系統設置命令主要用來完成對Linux操作系統進行各種配置,如安裝內核載入、啟動管理程序以及設置密碼和各種系統參數等,它主要是對系統的運行做初步的設置。部分系統設置的重要命令如表4-1所示,它們的使用方法將在后續章節中詳細介紹。

表4-1 系統設置的重要命令

2.系統管理命令

系統管理命令是對Linux操作系統進行綜合管理和維護的命令,對系統的順利運行及其功能的發揮有著重要的作用。在Linux環境下的系統管理就是對操作系統的有關資源進行有效的計劃、組織和控制。操作者合理地對Linux操作系統進行管理有助于加深對系統的了解并提高其運作的效率及安全性能。部分系統管理的重要命令如表4-2所示。

表4-2 系統管理的重要命令

3.文件管理命令

文件管理命令主要針對在文件系統下存儲于計算機系統中的文件和目錄進行操作。系統中的文件可以有不同的格式,這些格式決定了信息如何存儲為文件和目錄。在Linux系統環境下,每一個分區都是一個文件系統,都有各自的目錄和層次結構。文件管理命令正是在文件系統中對文件進行各種操作與管理。部分文件管理的重要命令如表4-3所示。

表4-3 文件管理的重要命令

4.磁盤管理命令

在Linux操作系統中,為了合理利用和劃分磁盤的空間,需要對磁盤各個分區的使用情況作整體性的了解。磁盤管理命令主要是對磁盤的分區空間及格式化分區進行綜合的管理,在Linux環境下有一套較為完善的磁盤管理命令。部分磁盤管理的重要命令如表4-4所示。

表4-4 磁盤管理的重要命令

5.網絡配置與管理命令

任何一種操作系統都離不開對網絡的支持,Linux系統提供了完善的網絡配置和各種操作功能。在Linux環境下對網絡的配置主要包括因特網的設置、收發電子郵件和設置局域網。網絡配置與管理的部分重要命令如表4-5所示。

表4-5 網絡配置與管理的重要命令

6.文本編輯命令

查看和瀏覽文檔是操作系統必備的功能,在Linux操作系統中附帶了現成的文本編輯器,用戶可以利用這些編輯器對文檔進行修改、存儲及其他管理操作。在目前的Linux環境中,VI是比較流行的編輯器之一。文本編輯的部分重要命令如表4-6所示。

表4-6 文本編輯的重要命令

4.1.3 shell與命令提示符

在登錄Linux系統后,會啟動一個和Linux內核交互界面的程序,這個程序就是shell,它將執行用戶在鍵盤上輸入的命令。當一個shell運行時,將出現命令提示符并等待用戶輸入命令。當用戶輸入一個命令并按回車鍵后,shell將解釋并執行該命令。如果輸入了一個不存在的命令,shell將給出提示,并重新出現命令提示符并等待下一個命令。因為shell的主要用途就是解釋命令,所以又稱為Linux命令解釋器。當從Linux系統獲得一個新賬號時,默認登錄shell是由系統管理員決定的,可以通過運行一個適當的命令來使用自己喜歡的shell方法。

shell命令可以是內部的或外部的。執行內部命令的代碼是shell進程的一部分,而處理外部命令的代碼是以二進制可執行程序文件或shell腳本的形式駐留在一個文件中。因為shell執行從鍵盤鍵入的命令,當它無法從鍵盤讀取任何內容時就會終止。所以可以在一個新行的開始按快捷鍵Ctrl+D來通知shell。當shell接收到快捷鍵Ctrl+D后,它將終止運行并讓用戶退出系統。然后系統重新顯示login命令提示符,表示要使用系統就得重新登錄。shell在解釋命令時,認為命令行的第一個單詞是要執行的命令。它把以連字符(-)開始的其他單詞作為選項,剩余的作為命令參數。在讀取命令行之后,shell將判斷這個命令是內部命令還是外部命令,它將使用內部代碼的相應程序段來執行所有內部命令。

目前在Linux環境下被廣泛支持的shell主要有3種:Bash、Tcsh和Pdksh。它們在對話模式下的表現非常相似,但是在語法和執行效率方面卻有所不同。

Bash

Bash是Linux下標準的shell,以前常被用于系統管理之中,大部分的系統管理文件都是命令文檔,并且在單一用戶模式下以root身份登錄時常被系統管理者使用。Bash以其簡潔、快速而聞名,其默認的提示符為$。

Tcsh

Tcsh中加入了一些新的特性,如別名、命令列歷程、內建算術和工作控制等。這些功能對于經常在對話模式下使用的用戶來說較為受歡迎,而對于系統管理者而言用Bash作為命令檔則顯得簡單而快速。Tcsh默認的提示符為%。

Pdksh

Pdksh是Bash的擴展,它增加了一些新的特性,比Tcsh更為先進,包括了可編輯歷程、正規表達式萬用字符、合作處理等特殊功能并具有向上兼容的能力,Pdksh默認的提示符為%。

RHEL 6系統中默認使用的shell稱為Bash。shell分為兩種模式:交互模式(等待用戶的輸入)和非交互模式(腳本形式)。shell字符界面有如下兩種進入方式。

(1)X-window界面虛擬字符終端

在X-window界面右擊鼠標,從菜單中選擇【在終端中打開(E)】命令,如圖4-1所示,之后出現字符界面,如圖4-2所示。

圖4-1 終端打開界面

圖4-2 字符終端界面

可使用如下快捷鍵對shell字符界面進行操作:

Shift+Ctrl+ + 放大字體。

Ctrl+- 縮小字體。

Shift+Ctrl +T 新建標簽。

Alt + 數字 標簽間切換。

Ctrl + L 清屏。

(2)通過putty、xshell、SecureCRT等工具鏈接

通過工具鏈接shell字符界面需要知道本機的IP地址:單擊桌面右上方電腦圖標選擇【system eth0】選項鏈接Internet,如圖4-3所示;然后右擊電腦圖標選擇【編輯鏈接】/【system eth0】/【編輯】選項,選擇【自動鏈接】,這樣重啟后網卡即自動啟動;通過終端查看IP地址為“10.15.72.194”,如圖4-4所示。

圖4-3 選擇【system eth0】

圖4-4 通過終端查看IP地址

這里使用x shell。在工具欄輸入“ssh ip”,跳出鏈接對話框,然后單擊【Accept & Save】按鈕,輸入用戶名和密碼即可,如圖4-5所示。

圖4-5 使用xshell

內部命令:指的是集成在shell里的命令,屬于shell的一部分。系統中沒有與命令單獨對應的程序文件,只要shell被執行,內部命令就自動載入內存,用戶可以直接使用,如cd命令等。

外部命令:考慮到運行效率等原因,不可能把所有的命令都集成在shell里,更多的Linux命令是獨立于shell之外的,這些稱為外部命令。每個外部命令都對應了系統中的一個文件,而Linux系統必須要知道外部命令對應的程序文件所在的位置,才能由shell加載并執行這些命令。如cp、ls等都屬于外部命令。

外部命令的程序文件大都存放在/bin、/sbin、/usr/bin等目錄里,Linux系統會默認將這些路徑添加到一個名為PATH的變量里,執行“echo $PATH”命令可以顯示出PATH變量里保存的目錄路徑(路徑之間用“:”間隔)。

每當要執行一個外部命令時,Linux系統就會先從PATH變量所保存的這些路徑里去尋找命令所對應的程序文件,只有找到了程序文件才能正確地去執行外部命令。這也就意味著,如果把一個外部命令所對應的程序文件刪了,或者是存放外部命令程序文件的目錄沒有添加到PATH變量里,都會導致外部命令無法正常執行。

  [root@localhost ~]# echo $PATH
  /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sb
  in:/
  usr/bin:/root/bin

4.1.4 命令行模式的啟動及退出

現在的Linux桌面發行版通常都提供了友好的圖形界面,使得習慣使用Windows操作模式的用戶不再像數年前那樣對Linux望而生畏。用戶登錄系統之后,即可通過鼠標、鍵盤直接對系統進行操作,就像在使用早已熟悉的Windows系統一樣。但是,在Linux中有很多操作命令在命令行模式下運行得更加快捷,而且,用作服務器的Linux系統出于穩定性及安全性方面的考慮是在命令行模式下運行的,這時就需要頻繁地使用命令對系統進行操作,而對Linux系統有一定使用經歷的用戶也都習慣于使用命令對系統進行操作。

1.字符界面下的命令行操作

啟動桌面發行版的Linux系統進入圖形界面后,可以通過同時按住Ctrl+Alt+Fn(n=1~6)鍵進入字符界面,例如同時按住Ctrl+Alt+F3鍵可進入虛擬控制臺tty3(tty7通常運行X Window圖形界面),此時輸入正確的用戶名及登錄密碼后即可進入字符界面進行命令行操作。若輸入的是一個錯誤的密碼,則系統提示登錄不正確并要求重新登錄,直到輸入了正確的用戶名和登錄密碼后,才能成功登錄。

注意 Linux系統不會顯示輸入的密碼,而且不論是輸入的用戶名錯誤還是輸入的密碼不正確,系統都將給出同樣的錯誤信息并提示重新輸入用戶名和密碼。

作為服務器的Linux系統是運行在命令行模式下的,用戶在輸入正確的用戶名及登錄密碼后即進入了字符界面的命令行操作環境。

2.圖形界面的命令行操作

在圖形界面下進行命令行的操作,可以通過應用【程序】/【系統工具】/【終端】選項,啟動命令行的圖像操作界面。某些Linux發行版有右鍵打開終端的選項。在桌面上單擊鼠標右鍵,在彈出的快捷菜單中選擇【打開終端】選項即可。

3.Linux遠程登錄命令行操作

如果沒有使用自己的終端、控制臺或者其他直接連接登錄到要登錄Linux系統的設備,那么可以利用一個終端模擬程序通過網絡連接到要登錄的Linux系統,這樣用戶就可以登錄到Linux系統了。通常需要使用telnet和ssh連接到遠程Linux系統。telnet是一種極不安全的服務,原因之一是它通過網絡以ASCII碼方式明文發送登錄時的用戶名和密碼認證,這使得登錄信息極易被黑客截獲。而ssh則將所有信息進行加密之后再通過網絡發送出去,在主機和客戶機兩端均使用認證密鑰,提供了很強的安全認證,可以在不安全的網絡環境中安全地通信。所以ssh是比telnet更好的選擇。ssh工具由兩部分組成,一部分是服務器端軟件包,另一部分是客戶端軟件包。以當前用戶root遠程登錄本機的tom用戶進行測試,在命令行中輸入命令:

  ssh tom@localhost

在登錄后命令提示符前面的用戶名已由root變成了tom,即已經成功地登錄了tom的系統。若要查看ssh服務器端是否已經正常啟動,可在命令行中輸入命令:

  Net
  stat –tl

如果看到結果中有“*: ssh”,就說明服務已經正常啟動了。若系統尚未啟動ssh服務,則在命令行輸入命令:

  /etc/init.d/sshd start

此命令需要管理員root權限才能運行。

Linux命令行下的提示符有兩種:“$”和“#”。通常登錄到命令行后看到的提示符為美元符號“$”,即為Linux的一種命令提示符(也稱shell提示符),代表當前用戶具有普通用戶權限;如果當前用戶是超級用戶root(即以用戶名root登錄系統),將會看到另一種命令行提示符“#”,表示用戶擁有最高權限,可對系統做任意的修改。

如要退出Linux命令行模式,可在命令提示符后面輸入命令exit或按Ctrl+D快捷鍵。例如,在命令提示符“#”后輸入“exit”,然后按Enter鍵或Ctrl+D快捷鍵,即可退出登錄的系統。

4.1.5 在Linux命令行下獲得幫助

Linux的發行版通常都提供了豐富的聯機幫助文檔,man和info命令是查看程序文檔的兩個基本命令。從Linux的早期版本開始,用戶就可以通過這兩個命令獲得man頁(用戶手冊)和info頁的內容。下面介紹如何在Linux命令行下獲取各種幫助信息。

1.幫助命令

(1)help,查看內部命令的幫助信息

例如,想要獲取命令cd的幫助信息,可以在命令提示符后面輸入:

  help cd

這樣就可以看到cd命令的幫助文檔了。

help命令也提供其自身的幫助,例如,在命令提示符后面輸入兩個help,即:

  help help

然后,就可以看到help命令自身的幫助信息了。

單獨使用help命令可以獲取它所提供的所有命令列表,如在命令行輸入:

  help

若help命令列表較長而不能在一屏內全部顯示,則用戶能看到的其實是help命令列表的最后一頁。要想看到該命令的所有幫助內容,需要在命令后添加一個選項參數,即在命令提示符下輸入:

  help |more

即可以顯示help命令列表的第一頁,再次按Enter鍵將一行行向后翻頁,按空格鍵將直接跳轉到最后一頁。

若想在中途退出幫助文檔,可以按Q鍵,之后將直接退出幫助文檔,返回到命令行提示符下。

help命令只能查看內部命令的幫助信息,對于外部命令,大都可以使用一個通用的命令選項“--help”,以查看外部命令的幫助信息。

(2)man,查看命令的幫助手冊

man命令用于顯示系統文檔中man頁的內容(man為manual的簡寫),單獨使用man命令不能獲得man所提供的幫助命令列表。若要了解某個工具較為詳細的信息,可以在man命令后接工具名來實現。與help命令一樣,man命令也可以查看命令信息,用法與help類似。例如,要查看命令clear的詳細信息,可以在命令提示符下輸入:

  man clear

man命令給出的信息往往非常詳細,所占頁面較多,通常需要分頁顯示。與help命令不同的是,man會自動分頁,用戶可以分頁瀏覽幫助信息,按空格鍵或PageDown鍵向后翻頁,按PageUp鍵向前翻頁,按Q鍵退出man信息查看并返回到命令行提示符下。

如果要搜索某個man信息頁,可以使用帶有-k選項的man命令。例如搜索與clear相關的man信息頁,可以在命令行輸入:

  man -k clear | more

由于與clear相關的命令可能有很多,這里加上了選項more以便分頁查看。

要找出關于man命令用法的更多信息,可以在命令行中輸入:

  man man

即可查看它自己的幫助信息。

man頁通常存放在/usr/share/man/目錄下,在命令行輸入:

  cd /usr/share/man/
  dir

即可查看該目錄下的內容。在Linux系統中,man分為10部分,放在不同的man文件夾下,每部分描述了相關工具的使用方法。最常用的是man1(用戶命令)、man5(文件格式)和man8(系統管理)。有些情況下,不同工具的手冊對應相同的名字,例如,在命令行輸入“man clear”可以查看clear程序的幫助信息,而輸入“man 3 clear”則可以查看clear子程序的幫助信息。

如果要查看更為詳盡的幫助信息,可以使用man命令查看指定命令的幫助手冊;閱讀下一行內容按Enter鍵,閱讀下一屏內容按空格鍵,退出輸入“q”。

(3)info,查看工具信息

info是另一種形式的在線文檔,可以顯示GNU工具更完整、最新的信息。若man信息頁中包含的某個概要信息在info中也有,那么,幫助信息中會有請用戶參考info頁更詳細內容的提示。info工具是GNU項目開發的基于菜單的超文本系統,并由Linux發布。

直接使用info命令可以獲得系統中info文檔的分類列表,在命令行中輸入:

  info

可以看到以超文本的形式列出info文檔的分類列表。

在上面的示例中可以按其他鍵進行進一步操作,其功能如表4-7所示。

表4-7 操作鍵

若要用info命令顯示工具信息,例如查看dir命令的信息,可在命令行輸入:

  dir

即可看到dir命令的詳細信息,以及與之相關的命令。

info命令還提供了大量的快捷鍵以便在頁面層次結構內移動,最常用的快捷鍵如表4-8所示。

表4-8 快捷鍵

(4)通過幫助選項獲得幫助

大多數命令均可以使用幫助選項來獲取幫助,shell命令使用--help選項來獲得幫助信息。例如,想獲取顯示文件命令dir的幫助信息,可在命令行下輸入:

  dir --help |more

2.命令行的歷史記錄和編輯

目前的Linux發行版默認使用bash shell,它已成為Linux系統的實際標準。bash shell命令行具有非常強大的功能。事實證明,從Windows操作系統轉向Linux操作系統的用戶,剛開始都習慣嘗試使用圖形界面進行操作,但他會逐漸意識到,命令行是執行許多任務的更加快捷、方便的方法。bash shell提供了一些特性使輸入命令行操作變得容易。

(1)命令行的歷史記錄

可以通過重復按向上方向鍵遍歷最近在控制臺下輸入的命令。按向下方向鍵可以向前遍歷,與Shift鍵聯用可以遍歷以往在該控制臺中的輸出。例如,要在命令行下輸入命令“dir --help |more”,可以在命令行下重復按向上方向鍵↑,直到出現“dir --help |more”為止,然后按Enter鍵即可執行這一命令,如圖4-6所示。

圖4-6 遍歷命令行的歷史記錄

(2)編輯命令行

在命令行下按Ctrl+R快捷鍵將進入向后增量搜索模式,命令行界面會出現“(reverse-i- search)`’:”,如圖4-7所示。

圖4-7 向后增量搜索模式

此時嘗試輸入以前輸入過的命令,每輸入一個字符時,命令行都會滾動顯示歷史命令,當顯示到想要查找的命令時,直接按Enter鍵就可以執行該命令。仍以“dir --help |more”命令為例,當輸入字符d時,搜索出來的命令是cd,這不是所需要的歷史命令,繼續輸入第二個字符i,這時就出現了所需要的歷史命令“dir --help |more”,然后按Enter鍵即可執行該命令,如圖4-8所示。

圖4-8 查找歷史命令

在命令行中按Ctrl+P或者Ctrl+N快捷鍵可以快速向前或向后滾動查找一個歷史命令,這可以快速提取剛剛執行過不久的命令。例如,在命令行輸入如下命令:

  echo "Hello,Linux world"

命令行下將出現字符“Hello,Linux world”,然后按Ctrl+P快捷鍵,命令行下將出現剛剛輸入過的命令,如圖4-9所示。

圖4-9 顯示上次輸入的命令

通過一些功能鍵可以快速瀏覽并編輯命令行,下面給出常用的用來完成一般編輯工作的鍵盤快捷鍵,如表4-9所示。

表4-9 鍵盤快捷方式

例如,用命令mkdir在/home/tom/tmp/目錄下新建一個目錄music,在命令行輸入:

  mkdir /home/tom/tmp/music

在命令行輸入如下命令進入music目錄:

  cd !$

之后可以在命令行下輸入pwd命令查看當前工作目錄,如圖4-10所示。

圖4-10 命令行編輯的快捷方式

3.從因特網獲得幫助

因特網上有許多Linux方面的站點以及相關文檔,除此以外,還可以利用搜索引擎如百度(www.baidu.com)、Google(www.google.com),輸入所遇到的錯誤信息進行搜索,通常可以找到問題的相關介紹和解決辦法。

(1)Linux文檔項目

Linux文檔項目(LDP,Linux Documentation Project)提供了大量關于Linux的免費發布的書籍,其歷史幾乎和Linux一樣長,內容有使用指南、FAQ、HOWTO、雜志、man幫助信息頁等。LDP的主頁是www.tldp.org,支持多種語言,可以進行本地搜索,簡單易用。LDP文檔除了提供多語言版本,還提供各種文檔格式,比如PDF(Adobe的文檔格式)、HTML、純文本、PostScript以及XML相關源碼。

(2)GNU

在GNU(GNU’s Not Unix)的主頁(www.gnu.org)上可以得到很多GNU的文檔以及其他資源。與LDP一樣,GNU的文檔也提供多語言版本,在www.gnu.org/manual站點可以獲得GNU的手冊頁。

(3)各Linux發行版官方網站及BBS論壇

大多數Linux發行版都有其主頁和BBS,上面提供許多文檔,若有問題也可以在BBS上留言尋求幫助。此外還可以在一些非常優秀的BBS上尋求幫助,例如紅聯(www.linux110.com)、中國Linux論壇(www.linuxforum.net)、ChinaUnix(www.chinaunix.net)和www.linuxsir.org等。

主站蜘蛛池模板: 马关县| 鄂尔多斯市| 成安县| 阿瓦提县| 崇义县| 青川县| 贡嘎县| 合阳县| 军事| 彩票| 太湖县| 台州市| 浙江省| 铁岭县| 巢湖市| 仪征市| 扎鲁特旗| 顺平县| 隆安县| 九台市| 泗阳县| 台东市| 凤冈县| 高唐县| 勃利县| 张掖市| 宝兴县| 襄汾县| 万州区| 建昌县| 元阳县| 信丰县| 大邑县| 永寿县| 兴隆县| 东方市| 固原市| 蒙城县| 中牟县| 灵宝市| 濮阳县|