最實用的Linux命令行使用技巧匯總

  • 2019 年 12 月 13 日
  • 筆記

我們每天都會頻繁使用Linux命令行,雖然網上關於其使用技巧的資料多種多樣,但很多朋友應該並沒有進行過實際嘗試。因此,今天的文章將對此進行匯總,希望能為大家帶來一點幫助。

1.將輸出結果顯示為表

有時候,當我們查看命令的輸出結果時,大量擁護的字元串可能很難進行閱讀。如果將命令整理為表?其實非常簡單!只需要輸入:

mount | column –t:

在以上示例中,輸出結果因為被空格隔開而顯得非常清晰。那麼,如果分隔符是冒號或者其它符號(例如cat /etc/passwd)又該怎麼辦?

只需要調整一條–s參數即可。

cat /etc/passwd | column -t -s:

2.重複一條命令直到成功運行

很多朋友都在網上搜索過這個問題。相關建議包括ping伺服器直到生效、檢查某一包含特定擴展名的文件是否從特定目錄處上傳完成以及檢查特定URL是否已經存在等。

事實上,大家可以使用while true循環完成這項目標:

在本示例中,>/dev/null 2>&1會將程式的輸出結果重新定向至/dev/null。其中包括Standard Error與Standard Out。

這也是我個人最喜愛的Linux命令行使用技巧之一。

3.通過記憶體使用量對進程加以排序

ps aux | sort -rnk 4:

4.根據CPU使用量對進程加以排序

ps aux | sort -nk 3:

要檢查架構,可使用:

getconf LONG_BIT

5.同時查看多個日誌文件

大家當然可以使用tail命令查看日誌,但有時候您可能需要同時查看多個日誌文件。使用multi-tail命令即可輕鬆實現您所需要的文本高亮、過濾等各類需求:

如果系統中尚無此命令,您可以通過apt-get install multitail進行下載。

6.返回此前目錄

只需要輸入cd –即可返回此前目錄。

7.讓非交互Shell會話實現交互能力

將設置~/.bashrc變更為~/.bash_profile即可。

8.以常規間隔監控命令輸出結果

利用watch命令 (watch df –h),您將能夠查看到任何命令的輸出結果。例如,您可以查看剩餘空間及其增長情況。

而配合變數數據,watch命令還能發揮更多其它作用。

9.在會話關閉後運行程式

如果在後台運行某程式並將其關閉,shell即會將其徹底停用。我們該如何在關閉shell後繼續保證其運行?

大家可以使用nohup命令,其代表的是無掛斷:

nohup wget site.com/file.zip

此命令也是常被忽略的Linux命令之一,因為多數用戶會使用另一種命令式螢幕:

其會在同一目錄中生成名為nohup.out的文件,內里包含當前運行程式的內容:很酷,對吧?

10.自動對任意命令回復Yes或No

如果大家希望以自動方式對請求回復yes,則可使用:yes | apt-get update。

如果您希望自動回復no,則可使用yes no | command。

11.創建特定大小的文件

大家可以利用dd命令創建特定大小的文件:

dd if=/dev/zero of=out.txt bs=1M count=10. 

這時新生成的文件大小為10 MB,全部以0填充:

12.以Root方式運行上一條命令

有時候,大家可能在輸入某條需要root許可權的命令時忘了加上sudo。不用再輸入一遍,直接輸入sudo即可!

13.記錄命令行會話

如果大家希望在shell螢幕上記錄自己的輸入內容,則可使用script命令將輸入內容保存成名為typescript的文件: script。

在輸出exit後,全部命令都將被寫入該文件以備隨後審查。

14.將空格替換為Tab

大家可以利用tr命令將某種字元替換為另一種字元:

cat geeks.txt | tr ':[space]:' 't' > out.txt

15.將某一文件轉換為大寫或小寫形式

使用以下命令:

cat myfile | tr a-z A-Z > output.txt

16.強大的Xargs命令

xargs命令是Linux中最為重要的技巧之一。大家可以利用此命令將某一命令的輸出結果作為另一命令的參數。例如,大家可以搜索PNGpng文件並將其壓縮或者進行其它操作:

find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz

或者,也許您在文件中保存了一份URL列表,並希望對其進行下載或者處理:

cat urls.txt | xargs wget

請注意,命令的輸出結果會被傳遞至xargs命令末尾。

如果我們需要將命令輸出結果傳遞至中間,又該如何?只需要使用{}再加上–i參數,如下所示。這時替換參數將用於指定命令輸出結果的傳遞位置:

ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out

當然,這裡只是一部分Linux命令行使用技巧。如果大家有需要,也可以嘗試awk與sed等命令!另外,也期待您在評論中分享自己的實踐與體會。