對于初學者來說,Linux指令的學習沒有那麼簡單,很多初學者很少使用指令或不知道如何使用指令,其實Linux指令是很重要的,下面小編就給大家詳細介紹下Linux指令。

有朋友用了很長時間的Linux圖形界面,基本不使用指令行輸入指令執行,是以裝的Linux最終成了擺設。這裡總結一些指令行下常使用的指令,希望能有用。
什麼是指令
我們通常所說的Linux指令行是運作在終端(terminal)的shell (閱讀Linux架構以了解什麼是shell以及它在Linux系統中的位置)
所謂的指令,是我們在指令行輸入的一串字元。shell負責了解并執行這些字元串。shell指令可以分為如下幾類 1)可執行檔案(executable file) 2)shell内建函數(built-in function) 3) 别名(alias)。可執行檔案為經過編譯的程式檔案,我們輸入這些檔案的路徑來讓shell運作,比如$/bin/ls。有些可執行檔案被放在特殊的目錄(預設路徑)下面,進而使得作業系統可以通過檔案名找到,而不用總是輸入該檔案的絕對路徑(absolute path)。比如說$ls(實際上,shell自動幫我們補齊ls的路徑)。随後,這些可執行檔案中包含的程式運作,并成為程序。shell的内建函數與上面類似,隻是其對應的程式被儲存在shell的内部。别名是指我們給以上兩種指令起一個簡稱,以便減少輸入的工作量。
我們可以通過type指令來了解指令的類型:
代碼如下:
$type ls《/p》 《p》$type cd
指令的構成
當我們在指令行輸入指令的時候,往往由一下方式構成:
代碼如下:
$ls -l /home
整個一行指令由空格分為三個部分(注意, $是自動出現的提示符,有時還會在此之前出現計算機名)。第一個為指令的名字ls,這個指令ls的功能是列出目錄中所有檔案,第二個-l是關鍵字,它告訴ls要列出每個檔案的詳細資訊,第三個/home為參數,表示我所要列出的目錄是/home。實際上關鍵字是一種特殊的參數,大部分情況下用來開關程式的某些特殊功能 (用來選擇做出的是拿鐵咖啡還是黑咖啡)。而參數是用來傳遞給程式的一般的變量。ls經過處理之後,将在終端輸出/home下面包含的各個檔案名 (該檔案系統見:http://www.jb51.net/LINUXjishu/214042.html):
代碼如下:
vamei another
關鍵字和參數可以不止有一個,比如:
代碼如下:
$ls -l -a /home /bin《/p》 《p》$ls -la /home /bin
(上面兩個指令等價)
列出/home和/bin目錄下的檔案,-a表示列出全部檔案(即使是隐藏檔案也要列出), -l表示列出每個檔案的詳細資訊。
(如果指令沒有被放在預設路徑中,你也可以輸入絕對路徑來執行)
回憶Linux檔案管理背景知識 ,我們知道,每個檔案能否被執行要根據使用者所擁有的權限。指令實際上是可執行檔案,也是如此。系統相關的指令,或者某個指令中的定義的操作,往往會要求超級使用者root的身份才能使用。如果你是使用者vamei,那麼你就無法使用這些指令。但以root的身份登入是個糟糕的想法。為了解決這一沖突,你可以以vamei的身份登入,但在執行指令之前加上sudo, 以便臨時以root的身份執行某條指令。比如$sudo ls 。
對于大多數的shell來說,都有指令補齊的功能。當你在的後面輸入指令的一部分時,比如rmdir的rmd的時候,按Tab鍵,Linux會幫你打剩下的字元,補充成為rmdir。不止是指令,如果你輸入的是檔案名,Linux也可以幫你補齊。比如說,ls a.txt。當你輸入到lsa.t的時候,按Tab鍵,Linux會幫你補齊該檔案名,成為ls a.txt。當然,這樣做的前提是你輸入到rmd的時候,預設路徑下能和它相符的指令隻有一個rmdir了。如果有多個相符的指令,連按兩下Tab,Linux會顯示所有的相符的指令。
多使用指令的好處
實際上,許多指令的功能都可以通過圖形化界面來實作,學習這些指令的意義在哪裡呢?
在UNIX發育的大部分曆史上,使用者都是通過shell來工作的。大部分指令都已經經過了幾十年的發展和改良,功能強大,性能穩定。Linux繼承自UNIX,自然也是如此。此外Linux的圖形化界面并不好,并不是所有的指令都有對應的圖形按鈕。更别說在圖形化界面崩潰的情況下,你就要靠shell輸入指令來恢複計算機了。
指令本身是一個函數 (function),是一個小的功能子產品。當我們想要讓計算機做很複雜的事情 (比如說: 在晚上12:00下載下傳某個頁面的所有連結,然後複制到移動硬碟)的時候,不斷地去按各個圖形化按鈕并不是個很聰明的事情 (1. 要點很多下,2. 必須等到12:00)。我們通常是通過shell程式設計來實作這樣一些複雜任務,這時,就可以把指令作為函數,嵌入到我們的shell程式中, 進而讓不同指令協同工作 (比如使用date來查詢時間,再根據時間來使用wget下載下傳等等)。
如何了解一個陌生的指令?
有一些指令可以用來了解某個指令本身的情況,比如這個指令的絕對路徑。
代碼如下:
$which ls
which 在預設路徑中搜尋指令,傳回該指令的絕對路徑。
代碼如下:
$whereis ls
whereis 在相對比較大的範圍搜尋指令,傳回該指令的絕對路徑。
代碼如下:
$whatis ls
whatis 用很簡短的一句話來介紹指令。
代碼如下:
$man ls
man 查詢簡明的幫助手冊。對于大部分的Linux自帶的指令來說,當作者編寫它的時候,都會帶有一個幫助文檔,告訴使用者怎麼使用這個指令。
(man可以說是我們了解Linux最好的百科全書,它不但可以告訴你Linux自帶的指令的功能,還可以查詢Linux的系統檔案和系統調用。如果想要深入學習Linux,就必須要懂得如何用man來查詢相關文檔。)
代碼如下:
$info ls
info 查詢更詳細的幫助資訊
此外,在shell中,你還可以用向上箭頭來檢視之前輸入運作的指令。
你也可以用
代碼如下:
$history
來查詢之前在指令行的操作。
當一個指令運作時,你中途想要停止它時,可以用Ctrl + c。如果你隻是想暫時停止,使用Ctrl + z。具體機制與信号(signal)有關,我們将在以後介紹。
總結
指令行: 使用shell解釋輸入的字元串,以運作程式
type
sudo
which, whereis, whatis, man, info
使用Tab自動補齊,向上箭頭查詢曆史,history
Ctrl + c, Ctrl + z
上面就是Linux指令的相關介紹了,沒使用過Linux指令就不知道Linux指令的好處,Linux指令能夠解決系統中的一些常見問題,初學者掌握Linux指令是很重要的。