Linux系統程式設計(14)——shell常用命令

尹成發表於2014-07-25

 

1. ls命令

 

ls命令是列出目錄內容(ListDirectory Contents)的意思。執行它就是列出資料夾裡的內容,可能是檔案也可能是資料夾。

 “ls -l”命令已詳情模式(longlisting fashion)列出資料夾的內容。

 “ls -a”命令會列出資料夾裡的所有內容,包括以”.”開頭的隱藏檔案。

注意:在Linux中,檔案以“.”開頭的就是隱藏檔案,並且每個檔案,資料夾,裝置或者命令都是以檔案對待。ls -l 命令輸出:

1、d (代表了是目錄).

2、rwxr-xr-x 是檔案或者目錄對所屬使用者,同一組使用者和其它使用者的許可權。

3、上面例子中第一個ravisaive 代表了檔案檔案屬於使用者ravisaive

4、上面例子中的第二個ravisaive代表了檔案檔案屬於使用者組ravisaive

5、4096 代表了檔案大小為4096位元組.

6、May 8 01:06 代表了檔案最後一次修改的日期和時間.

7、最後面的就是檔案/資料夾的名字

 

 

2. lsblk命令

 

“lsblk”就是列出塊裝置。除了RAM外,以標準的樹狀輸出格式,整齊地顯示塊裝置。

 “lsblk -l”命令以列表格式顯示塊裝置(而不是樹狀格式)。

注意:lsblk是最有用和最簡單的方式來了解新插入的USB裝置的名字,特別是當你在終端上處理磁碟/塊裝置時。

 

3. md5sum命令

 

“md5sum”就是計算和檢驗MD5資訊簽名。md5 checksum(通常叫做雜湊)使用匹配或者驗證檔案的檔案的完整性,因為檔案可能因為傳輸錯誤,磁碟錯誤或者無惡意的干擾等原因而發生改變。

注意:使用者可以使用官方提供的和md5sum生成簽名資訊匹對以此檢測檔案是否改變。Md5sum沒有sha1sum安全,這點我們稍後討論。

 

4. dd命令

 

“dd”命令代表了轉換和複製檔案。可以用來轉換和複製檔案,大多數時間是用來複制iso檔案(或任何其它檔案)到一個usb裝置(或任何其它地方)中去,所以可以用來製作USB啟動器。

注意:dd 命令在執行中會根據檔案的大小和型別以及 usb裝置的讀寫速度,消耗幾秒到幾分鐘不等。

 

 

5. uname命令

 

“uname”命令就是Unix Name的簡寫。顯示機器名,作業系統和核心的詳細資訊。

注意: uname顯示核心類別, uname -a顯示詳細資訊。

 

6. history命令

 

“history”命令就是歷史記錄。它顯示了在終端中所執行過的所有命令的歷史。

注意:按住“CTRL + R”就可以搜尋已經執行過的命令,它可以你寫命令時自動補全。

 

7. sudo命令

 

“sudo”(super user do)命令允許授權使用者執行超級使用者或者其它使用者的命令。通過在sudoers列表的安全策略來指定。

注意:sudo 允許使用者借用超級使用者的許可權,然而”su”命令實際上是允許使用者以超級使用者登入。所以sudo比su更安全。

並不建議使用sudo或者su來處理日常用途,因為它可能導致嚴重的錯誤如果你意外的做錯了事。”

 

8. mkdir命令

 

“mkdir”(Make directory)命令在命名路徑下建立新的目錄。然而如果目錄已經存在了,那麼它就會返回一個錯誤資訊”不能建立資料夾,資料夾已經存在了”(“cannot create folder, folder already exists”)

 

注意:目錄只能在使用者擁有寫許可權的目錄下才能建立。mkdir:不能建立目錄`tecmint`,因為檔案已經存在了。(上面的輸出中不要被檔案迷惑了,你應該記住我開頭所說的-在linux中,檔案,資料夾,驅動,命令,指令碼都視為檔案)

 

9. touch 命令

 

“touch”命令代表了將檔案的訪問和修改時間更新為當前時間。touch命令只會在檔案不存在的時候才會建立它。如果檔案已經存在了,它會更新時間戳,但是並不會改變檔案的內容。

 

注意:touch 可以用來在使用者擁有寫許可權的目錄下建立不存在的檔案。

 

10. chmod 命令

 

“chmod”命令就是改變檔案的模式位。chmod會根據要求的模式來改變每個所給的檔案,資料夾,指令碼等等的檔案模式(許可權)。

 

在檔案(資料夾或者其它,為了簡單起見,我們就使用檔案)中存在3中型別的許可權

 

Read (r)=4

Write(w)=2

Execute(x)=1

所以如果你想給檔案只讀許可權,就設定為’4′;只寫許可權,設定許可權為’2′;只執行許可權,設定為1; 讀寫許可權,就是4+2 = 6, 以此類推。

 

注意:對於系統管理員和使用者來說,這個命令是最有用的命令之一了。在多使用者環境或者伺服器上,對於某個使用者,如果設定了檔案不可訪問,那麼這個命令就可以解決,如果設定了錯誤的許可權,那麼也就提供了為授權的訪問。

 

11. chown命令

 

“chown”命令就是改變檔案擁有者和所在使用者組。每個檔案都屬於一個使用者組和一個使用者。在你的目錄下,使用”ls -l”,你就會看到像這樣的東西。

 

在這裡,目錄Binary屬於使用者”server”,和使用者組”root”,而目錄”Desktop”屬於使用者“server”和使用者組”server”

 

“chown”命令用來改變檔案的所有權,所以僅僅用來管理和提供檔案的使用者和使用者組授權。

 

注意:“chown”所給的檔案改變使用者和組的所有權到新的擁有者或者已經存在的使用者或者使用者組。

 

12. apt命令

 

Debian系列以“apt”命令為基礎,“apt”代表了AdvancedPackage Tool。APT是一個為Debian系列系統(Ubuntu,Kubuntu等等)開發的高階包管理器,在Gnu/Linux系統上,它會為包自動地,智慧地搜尋,安裝,升級以及解決依賴。

 

見名知義,apt-cache用來搜尋包中是否包含子包mplayer, apt-get用來安裝,升級所有的已安裝的包到最新版。

 

關於apt-get 和 apt-cache命令更多資訊,請檢視 25 APT-GET和APT-CACHE命令

 

13. tar命令

 

“tar”命令是磁帶歸檔(Tape Archive),對建立一些檔案的的歸檔和它們的解壓很有用。

注意:“tar.gz“代表了使用gzip歸檔,“bar.bz2”使用bzip壓縮的,它壓縮的更好但是也更慢。

 

瞭解更多”tar 命令”的例子,請檢視18 Tar命名例子

 

14. cal 命令

 

“cal”(Calender),它用來顯示當前月份或者未來或者過去任何年份中的月份。

注意:你不需要往回撥整日曆50年,既不用複雜的資料計算你出生那天,也不用計算你的生日在哪天到來,[因為它的最小單位是月,而不是日]。

 

15. date命令

 

“date”命令使用標準的輸出列印當前的日期和時間,也可以深入設定。

注意:這個命令在指令碼中十分有用,以及基於時間和日期的指令碼更完美。而且在終端中改變日期和時間,讓你更專業!!!(當然你需要root許可權才能操作這個,因為它是系統整體改變)

 

16. cat命令

 

“cat”代表了連結(Concatenation),連線兩個或者更多文字檔案或者以標準輸出形式列印檔案的內容。

注意:“>>”和“>”呼叫了追加符號。它們用來追加到檔案裡,而不是顯示在標準輸出上。“>”符號會刪除已存在的檔案,然後建立一個新的檔案。所以因為安全的原因,建議使用“>>”,它會寫入到檔案中,而不是覆蓋或者刪除。

 

17. cp 命令

 

“copy”就是複製。它會從一個地方複製一個檔案到另外一個地方。

注意: cp,在shell指令碼中是最常用的一個命令,而且它可以使用萬用字元(在前面一塊中有所描述),來定製所需的檔案的複製。

 

18. mv 命令

 

“mv”命令將一個地方的檔案移動到另外一個地方去。

注意:mv 命令可以使用萬用字元。mv需謹慎使用,因為易懂系統的或者未授權的檔案不但會導致安全性問題,而且可能系統崩潰。

 

19. pwd 命令

 

“pwd”(print working directory),在終端中顯示當前工作目錄的全路徑。

注意:這個命令並不會在指令碼中經常使用,但是對於新手,當從連線到nux很久後在終端中迷失了路徑,這絕對是救命稻草。

 

20. cd 命令

 

最後,經常使用的“cd”命令代表了改變目錄。它在終端中改變工作目錄來執行,複製,移動,讀,寫等等操作。

注意:在終端中切換目錄時,cd就大顯身手了。“cd ~”會改變工作目錄為使用者的家目錄,而且當使用者發現自己在終端中迷失了路徑時,非常有用。“cd ..”從當前工作目錄切換到(當前工作目錄的)父目錄。

 

 

 

 

21. 命令: Find

 

搜尋指定目錄下的檔案,從開始於父目錄,然後搜尋子目錄。

注意: `-name‘選項是搜尋大小寫敏感。可以使用`-iname‘選項,這樣在搜尋中可以忽略大小寫。(*是萬用字元,可以搜尋所有的檔案;‘.sh‘你可以使用檔名或者檔名的一部分來制定輸出結果)

 

22. 命令: grep

 

‘grep‘命令搜尋指定檔案中包含給定字串或者單詞的行。舉例搜尋‘/etc/passwd‘檔案中的‘tecmint’

 

可以使用以下選項:

 

1 -w搜尋單詞 (egrep -w ‘word1|word2‘/path/to/file).

 

2 -c用於統計滿足要求的行 (i.e.,total number of times the pattern matched) (grep -c ‘word‘/path/to/file).

 

3 –color彩色輸出 (grep –color server/etc/passwd).

 

 

 

23. 命令: man

 

‘man‘是系統幫助頁。Man提供命令所有選項及用法的線上文件。幾乎所有的命令都有它們的幫助頁

注意:系統幫助頁是為了命令的使用和學習而設計的。

 

 

 

24. 命令: ps

 

ps命令給出正在執行的某個程式的狀態,每個程式有特定的id成為PID。

使用‘-A‘選項可以列出所有的程式及其PID。

注意:當你要知道有哪些程式在執行或者需要知道想殺死的程式PID時ps命令很管用。你可以把它與‘grep‘合用來查詢指定的輸出結果。

 

25. 命令: kill

 

也許你從命令的名字已經猜出是做什麼的了,kill是用來殺死已經無關緊要或者沒有響應的程式.它是一個非常有用的命令,而不是非常非常有用.你可能很熟悉Windows下要殺死程式可能需要頻繁重啟機器因為一個在執行的程式大部分情況下不能夠殺死,即使殺死了程式也需要重新啟動作業系統才能生效.但在linux環境下,事情不是這樣的.你可以殺死一個程式並且重啟它而不是重啟整個作業系統.

 

殺死一個程式需要知道程式的PID.

 

注意:每次你重新執行一個程式或者啟動系統,每個程式都會生成一個新的PID.你可以使用ps命令獲得當前執行程式的PID.

 

27. 命令: service

 

‘service‘命令控制服務的啟動、停止和重啟,它讓你能夠不重啟整個系統就可以讓配置生效以開啟、停止或者重啟某個服務。

注意:要想使用service命令,程式的指令碼必須放在‘/etc/init.d‘,並且路徑必須在指定的位置。

 

如果要執行“service apache2 start”實際上實在執行“service /etc/init.d/apache2 start”.

 

 

28. 命令: alias

 

alias是一個系統自建的shell命令,允許你為名字比較長的或者經常使用的命令指定別名。

 

 

29.命令: df

 

報告系統的磁碟使用情況。在跟蹤磁碟使用情況方面對於普通使用者和系統管理員都很有用。‘df‘通過檢查目錄大小工作,但這一數值僅當檔案關閉時才得到更新。

 

 

30. 命令: du

 

估計檔案的空間佔用。逐層統計檔案(例如以遞迴方式)並輸出摘要。

 

注意: ‘df‘只顯示檔案系統的使用統計,但‘du‘統計目錄內容。

 

 

 

31. 命令: rm

 

‘rm’標準移除命令。 rm 可以用來刪除檔案和目錄。

 

警告: ”rm -rf”命令是一個破壞性的命令,假如你不小心刪除一個錯誤的目錄。一旦你使用’rm -rf’刪除一個目錄,在目錄中所有的檔案包括目錄本身會被永久的刪除,所以使用這個命令要非常小心。

 

32. 命令: echo

 

echo 的功能正如其名,就是基於標準輸出列印一段文字。它和shell無關,shell也不讀取通過echo命令列印出的內容。然而在一種互動式指令碼中,echo通過終端將資訊傳遞給使用者。它是在指令碼語言,互動式指令碼語言中經常用到的命令。

 

 

33. 命令: passwd

 

這是一個很重要的命令,在終端中用來改變自己密碼很有用。顯然的,因為安全的原因,你需要知道當前的密碼。

 

34. 命令: lpr

 

這個命令用來在命令列上將指定的檔案在指定的印表機上列印。

注意:”lpq”命令讓你檢視印表機的狀態(是開啟狀態還是關閉狀態)和等待列印中的工作(檔案)的狀態。

 

 

 

35. 命令: cmp

 

比較兩個任意型別的檔案並將結果輸出至標準輸出。如果兩個檔案相同,‘cmp‘預設返回0;如果不同,將顯示不同的位元組數和第一處不同的位置。

 

36. 命令: wget

 

Wget是用於非互動式(例如後臺)下載檔案的免費工具.支援HTTP, HTTPS, FTP協議和 HTTP 代理。

 

37 命令: mount

 

mount 是一個很重要的命令,用來掛載不能自動掛載的檔案系統。你需要root許可權掛載裝置。

相關文章