最實用也最容易被遺忘的 Linux 命令行使用技巧

作爲一個日常在Linux環境下工作的工程師,每天都要大量使用Linux命令行。有時候我們會在網上翻查命令行的使用技巧,但是一旦未能及時進行練習,很快就會把這些小技巧給忘了。所以我決定把這些小東西整理一下,以防止以後再有遺忘的事情發生。


將輸出內容做一個清晰明瞭的表格


使用命令行的時候,經常可以看到輸出的內容一團糟:太多字符串擠在一起,根本沒法看到底輸出了什麼,不信你就試試 mount 命令。


爲了看清楚些,我們可以把輸出轉化爲一張表格,只需要加幾個字符就行了:


mount | column –t:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在這個小例子中,我們用空格把輸出結果隔成了一個表格,整個界面瞬間清楚美觀了很多。如果你不太喜歡空格作爲分隔符,你也可以換成其他的,比如換成冒號(:)。


依然非常簡單:只需要在末尾使用 -s 參數制定一下相應的分割符就可以了:


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



重複執行一個命令,直到它運行成功


在寫這篇文章之前,我特地搜索了一下。在 Google 上,很多人都在問如何實現命令重複執行直至成功這個操作。搜索結果裏提到了 ping 服務器,一直到它變得空閒位置,或者檢查是不是向某個目錄裏上傳過特定的文件,再有就是檢查某個指定的鏈接是否存在之類的方法。


不過你還是有其他選擇,比如使用 while true 循環來把事情搞定:



在上面這個示例中,>/dev/null 2>&1 會讓程序的輸出重定向到 /dev/ null。標準錯誤和標準輸出都會被包含進去。


這是我認爲最酷的Linux命令行技巧之一。


按內存資源的使用量對進程進行排序


ps aux | sort -rnk 4:



按 CPU 資源的使用量對進程進行排序


ps aux | sort -nk 3:



如果想要檢查你的機器架構,那就執行 getconf LONG_BIT。


可以同時查看多個日誌文件


大部分人查看日誌用什麼命令?回答可能是 tail 命令。不過如果要查看很多日誌文件的時候, tail 就顯得比較麻煩了。這個時候就輪到我們的 multi-tail 命令登場了!不僅支持文本高亮顯示,還支持內容過濾和更多的其他功能哦~



有時候你需要安裝一下才能運行這條命令,不過也非常簡單 apt-get install multitail 輕鬆搞定。


回到你操作過的上一個目錄去


返回上一個目錄的操作非常簡單, cd – 就可以了。


讓非交互式 Shell 會話可進行交互


想要這樣做,那就把設置從 ~/.bashrc 改成 ~/.bash_profile 吧。


定時的監視性命令輸出


使用 watch 命令(watch df -h),你就可以查看到任何命令的任何輸出。例如,你可以查看可用空間以及它的使用量增長情況。


通過利用 watch 命令來操作會變化的數據,你可以盡情想象自己能拿這個來做些什麼哦。


在會話關掉以後繼續運行程序


正常情況下,你運行了一個後臺程序,當你關閉shell會話的時候這個程序也會隨之被殺掉。有的情況下需要讓程序繼續運行應該怎麼做?


這個可以用 nohup 命令做到 – 該指令表示不做掛斷操作:


nohup wget site.com/file.zip


這個命令大部分人都不會用,這全拜 screen 環境所賜:



這樣會在同一個目錄下生成一個名稱爲 nohup.out 的文件,其中包含了正在運行的程序的輸出內容:



命令很酷,對吧?


自動對任何命令回答 Yes 或者 No


如果你想自動化需要向用戶說的 Yes 的過程,可以使用 yes 命令來實現:yes | apt-get update。


也許你想做的是自動地說“No”。這個可以使用 yes no | 命令來實現。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


創建具有指定大小的文件


可以使用 dd 命令來創建出具有指定大小的文件:dd if=/dev/zero of=out.txt bs=1M count=10。


這樣就會創建出一個 10 MB 的文件,填充零作爲內容:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


以根目錄用戶來運行最後一個命令


有時,你會忘記在需要 root 權限的命令之前敲入 sudo。這時候你沒必要去重寫命令; 只要輸入 sudo !! 就行了。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


對命令行會話進行記錄


如果想要把自己在 shell 屏幕上敲的內容記錄下來,可以使用 script 命令將所有敲寫的內容保存到一個名爲 typescriptscript 的文件中去。


等你敲入 exit 命令以後,所有命令就都會被寫入該文件,以便你事後再回過頭去查看。


用標籤符號替換空格符


可以使用 tr 命令替換任何字符,這個用起來非常方便:cat geeks.txt | tr ‘:[space]:’ ‘ ’ > out.txt.



將文件內容轉換爲大寫或者小寫


可以這樣實現:cat myfile | tr a-z A-Z> output.txt。


強大的 Xargs 命令


xargs 命令是最重要的 Linux 命令行技巧之一。你可以使用這個命令將命令的輸出作爲參數傳遞給另一個命令。例如,搜索 png 文件然後對其進行壓縮或者其它操作:


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


又或者你的文件中有一個 URL 的列表,而你想要做的是以不同的方式下載或者處理這些 URL,可以這樣做:


cat urls.txt | xargs wget



640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


請你要記得,第一個命令的輸出會在 xargs 命令結尾處傳遞。


那如果命令需要中間過程的輸出,該怎麼辦呢?這個簡單!


只需要使用 {} 並結合 -i 參數就行了。如下所示,替換在第一個命令的輸出應該去的地方的參數:


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


這只是 Linux 命令行技巧其中的幾個而已。你可以使用其他命令來做一些更 HAPPY 的事情,比如 awk 命令和 sed 命令!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章