歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> 深解Unix操作系統命令

深解Unix操作系統命令

日期:2017/3/6 11:42:27   编辑:Unix資訊

我們來學習命令導向讓Unix操作系統命令一氣呵成的知識。這部分是Unix操作系統命令基礎知識,希望大家可以好好的學習。

在Unix操作系統中有一個很實用的功能即命令導向功能。簡單的是說,命令導向就是可以把幾個單獨的命令通過導向符號把他們連接起來。現在用戶文件夾/mnt/share下總共有八十多個文件夾。但是現在系統工程師要確切知道這個share文件夾下文件夾與文件的確切數字,該怎麼辦呢?若要一個個去數,也可以。我們可以通過幾個相關的命令來實現。

第一個Unix操作系統命令:文件列表命令

在Window系統中,可以通過dir命令來顯示某個特定目錄下面的文件夾與文件信息。其實在Unix系統中也有類似的命令,如ls文件列表命令。不過這個命令要比dir命令功能上要強的多。如ls命令後面加入-l參數還可以顯示各個文件夾與文件的權限信息。而dir命令沒有這方面的功能。

利用ls命令可以列出某個特定目錄下的文件。如現在系統工程師想要查看文件嘉share下面的文件以及文件夾信息,可以先定位到這個文件夾下,然後使用ls命令來查看所有的文件夾與文件信息。通常情況下,此時文件夾或者文件顯示的順序是按ascll碼進行排序的。也就是說,按字母進行排序,並且大寫字母會排在小寫字母之前。

如果這個文件夾下的文件(文件夾)數據不多的話,那麼數數的話,也可以比較快的得到正確的結果。但是,若文件(文件夾)比較多的話,如一頁還顯示不完,此時若靠數的話,顯然不能夠很快得到正確的結果。此時,就需要通過其他命令來幫助系統工程師來完成這個任務。

第二個Unix操作系統命令:輸出重定向功能

在實際工作中,系統工程師除了可以在終端輸入ls命令的執行結果之外,還可以使用一個特殊的命令“>”(輸出重定向命令)把執行結果保存到一個文件夾裡。如可以通過ls > total 命令把ls命令顯示的結果保存在total文件中。當系統工程師執行完這個命令之後,系統除了在屏幕上出現一個提示符之外,將不會顯示任何相關的內容。

這就是Unix操作系統下shell外殼的重定向功能。這個重定向功能可以把本來應該在屏幕上顯示的內容重定向到一個用戶指定的文件中。Shell外殼程序會先對重定向符號前面的命令進行解釋並,注意此時只是解釋命令但是並不執行。然後shell程序會打開重定向符號後面的文件。第三步才是執行這個命令,並把搜索到的結果保存到用戶指定的文件中。

如果系統工程師要查看這個文件中的內容,則可以通過cat命令來查詢。如cat total就可以查看這個文件中的內容。

第三個Unix操作系統命令:統計文件的行數命令

雖然已經通過輸出重定向功能,把share文件夾下的所有文件(文件夾)信息保存到了一個特定的文件下。但是,此時系統工程師仍然不能夠一目了然的知道文件夾下文件與文件夾的總個數。雖然通過一個個數也可以達到預計的目的,但是這個太麻煩。雖然可以省去ls命令卷屏的麻煩,不過准確率仍然不是很高。此時,系統工程師就需要用到統計文件行數的命令wc。

當通過輸出重定向功能把ls的結果輸出到一個文件中後,在存儲的時候每個文件夾文件將會是獨立的一行。也就是說,如果能夠通過相關的命令統計出這個文件的行數字的話,那麼這個行數就是文件或者文件夾總的個數。為了達到這個目的,系統工程師就可以通過wc total命令來統計這個文件中的行數。執行這個命令後,系統會顯示如下一行內容。

  1. $ wc tota 85 85 356 total

可惜的是,Unix操作系統的界面不怎麼友好。在顯示的結果中,沒有標明各個字段所代表的含義,在輸出的結果中僅僅顯示文件的統計數字以及文件名字。這就考驗系統工程師的能力了。

有一定經驗的系統工程,看到這些數字就知道其代表的含義了。具體來說,這三個數字從坐到右分別表示這個total文件有85行、85個單詞以及356個字符。可見,這個share文件夾下總共有85個文件或者文件夾。為此不用系統工程師一個個去數,只需要憑借一個簡單的wc統計命令,就可以統計出行數,並由此判斷出特定文件夾下的文件總和。

但是,有人會提出疑問,若要統計一個文件夾下面文件以及文件夾的個數,如此勞師動眾要執行三個命令,那是否值得呢?確實,這雖然比一個個的去數要方便、准確一點,但是分別執行三個命令畢竟麻煩,而且還會產生中間文件(total)這個垃圾文件。得到結果後還要把這個文件刪除,可見確實蠻麻煩的。那麼能否采取比較方面的策略呢?

這就要回到本篇文章的主題,即通過命令導向功能組合系統的相關命令,讓各個命令能夠一氣呵成,直接達到系統工程師的目的。如本文一開始顯示的那張圖中,可以通過命令導向符號“|”把相關的命令連接起來。如要達到上面這個目的,系統工程師可以先定位到share文件夾下,然後通過ls | wc命令來統計結果。具體的輸出如下:

  1. $ ls | wc 85 85 356 No filename;&

可見,通過這個命令其達到的效果就是上面三個命令總和。在上面的例子中,筆者先利用文件列表命令ls列出share目錄下的文件信息;然後通過輸出重定向符號>把輸出結果保存到一個文件中;最後通過wc命令統計這個文件中的行數以得到share文件夾下的文件或者文件夾個數。而現在筆者則通過靈活的組合方式,直接求出某個特定文件夾下的文件個數,根本不需要通過中間文件。

在上面的輸出結果中,也可以看出這個這個命令執行過程中根本沒有產生不必要的垃圾文件。那麼系統是如何實現這個目的呢?

雖然以上的顯示結果跟利用三個命令的顯示結果具有同樣的效果。但是他們的內部處理還是有一點差異。利用$ ls | wc命令後,系統並沒有把ls命令顯示的結果輸出到一個臨時文件中。而是直接把命令執行的結果導向到wc命令的輸入。故在這個過程中就不會產生任何的中間文件。事後也不需要花時間去刪除它。

在這個命令中使用了“|”符號,用這個符號來連接兩個不同的命令,實現把一個命令的輸出通過管道導向另一個命令的輸入。故我們也把這個特殊的性能叫做命令的導向功能。利用“|” 導向符號可以把多個Unix操作系統命令組合起來,來實現一些復雜的管理任務。如果利用的好的話,其作用就不只是簡單的統計文件夾個數那麼簡單。

好了,關於Unix操作系統命令的知識我們就為大家介紹到這吧,希望大家可以好好學習。

Copyright © Linux教程網 All Rights Reserved