最實用也最容易被遺忘的 Linux 命令列使用技巧
作為一個日常在Linux環境下工作的工程師,每天都要大量使用Linux命令列。有時候我們會在網上翻查命令列的使用技巧,但是一旦未能及時進行練習,很快就會把這些小技巧給忘了。所以我決定把這些小東西整理一下,以防止以後再有遺忘的事情發生。
將輸出內容做一個清晰明瞭的表格
使用命令列的時候,經常可以看到輸出的內容一團糟:太多字串擠在一起,根本沒法看到底輸出了什麼,不信你就試試 mount 命令。
為了看清楚些,我們可以把輸出轉化為一張表格,只需要加幾個字元就行了:
mount | column –t:
在這個小例子中,我們用空格把輸出結果隔成了一個表格,整個介面瞬間清楚美觀了很多。如果你不太喜歡空格作為分隔符,你也可以換成其他的,比如換成冒號(:)。
依然非常簡單:只需要在末尾使用 -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 | 命令來實現。
建立具有指定大小的檔案
可以使用 dd 命令來建立出具有指定大小的檔案:dd if=/dev/zero of=out.txt bs=1M count=10。
這樣就會建立出一個 10 MB 的檔案,填充零作為內容:
以根目錄使用者來執行最後一個命令
有時,你會忘記在需要 root 許可權的命令之前敲入 sudo。這時候你沒必要去重寫命令; 只要輸入 sudo !! 就行了。
對命令列會話進行記錄
如果想要把自己在 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
請你要記得,第一個命令的輸出會在 xargs 命令結尾處傳遞。
那如果命令需要中間過程的輸出,該怎麼辦呢?這個簡單!
只需要使用 {} 並結合 -i 引數就行了。如下所示,替換在第一個命令的輸出應該去的地方的引數:
ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out
這只是 Linux 命令列技巧其中的幾個而已。你可以使用其他命令來做一些更 HAPPY 的事情,比如 awk 命令和 sed 命令!
如果你知道一些我在這裡沒有提到的任何其它的命令,歡迎留言。
英文:Seco Max,翻譯:開源中國/leoxu
www.oschina.net/translate/most-useful-linux-command-line-tricks
雲端計算免費課程火熱開講中,5天運維經典課程免費學,會雲端計算的運維人才到底需要掌握哪些技術,未來前景發展怎麼樣?跟隨行業大咖一起剖根究底,點選文末“閱讀原文”或長按下方二維碼即可報名免費課程!抓住免費學習的機會,逆襲2019~~
PS:記得查收小編送你的免費大禮包呦~
福利 | 一萬多套PPT模板等你免費來拿!無條件領取!
免費送 | 1000多套簡歷模板免費拿,附贈簡歷製作教程!
免費領 | 《Shell指令碼 100例》電子書免費拿,運維必備乾貨~
▼▼點選【閱讀原文】,5天運維免費課程,開講在即!
相關文章
- 盤點最強最實用的Linux命令!Linux
- 學習Linux tar 命令:最簡單也最困難Linux
- 被遺忘的CSSCSS
- 容易被遺忘的前端基礎:JavaScript 記憶體詳解前端JavaScript記憶體
- 容易遺忘的知識點總結
- 「聊聊」被遺忘的時間
- Linux 命令列小技巧 – !歎號的用處Linux命令列
- 20個最糟糕、最容易被猜中的iPhone密碼iPhone密碼
- 那些被遺忘的Enix遊戲遊戲
- LINUX命令列終端提示符多種實用技巧!Linux命令列
- Go sync.Cond:最容易被忽視的同步機制Go
- 人工智慧也需要學會遺忘?聲音與影像哪個容易記憶?人工智慧
- 使用 Kubernetes 最容易犯的 10 個錯誤!
- 使用CSS最容易出錯的兩大地方!CSS
- Linux的10個最危險命令Linux
- 被遺忘的Java關鍵字:transientJava
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- Linux命令列中幾個使用history相關的技巧Linux命令列
- 那迷人的被遺忘的語言:Prolog
- 再談復現 Sora:被仰望與被遺忘的Sora
- Linux的10個最危險的命令Linux
- Stream -- Node.js中最好的卻最容易被誤解的部分Node.js
- Linux命令列六大技巧Linux命令列
- 應用機器學習時被遺忘的兩個步驟機器學習
- 600 條最強 Linux 命令總結Linux
- CTFshow愚人杯-被遺忘的反序列化
- 6個超實用的Sudo命令使用技巧
- App Store上架必看!最容易被App Store拒絕的10個原因!APP
- Linux中11個比較實用的命令列Linux命令列
- Oracle中最容易被忽略的那些實用特性Oracle
- 25 個 Linux 下最炫酷又強大的命令列神器,你用過其中哪幾個呢?Linux命令列
- 能用js實現的最終用js實現,Shell指令碼也不例外JS指令碼
- DDD值物件:被遺忘的價值 – SoftwareMill Tech Blog物件REM
- tk.mybatis中常用方法的使用(最實用)MyBatis
- 最強幹貨:資料庫設計的14 個實用技巧資料庫
- 你知道你自己最經常使用的是哪幾個Linux命令呢?Linux
- Top 5 榜單:最容易學習和最難掌握的程式語言
- 在 Linux中find命令使用技巧Linux