作為一名軟體工程師, 學習Linux是我所做的最好投資。 因為Linux是一個使用者必須理解和維護的系統, 所以日常體驗就像向水坑加水滴一樣。 時間一長, 水坑就會成為湖泊, 甚至是海洋。 所以我們必須杜微慎防。
今天, 我作為一名30多歲的工程師, 仍然受益於我幾年前機緣巧合學到的一大堆知識, 在我還是一個具有雄心壯志的初學者的時候。 在另一篇博客中, 我已經更詳細地解釋了為什麼Linux對於軟體發展人員來說是一個更加務實的選擇。
在這篇博文中, 我將分享一些不太受歡迎但非常有用的Linux命令, 我個人極力推薦。
10.file
返回給定檔的資訊。 例如, 你可以輸出圖像的尺寸資訊:
file logo.png
返回:
> PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced
9.iotop, powertop, nethogs
你怎麼監控Linux系統中正在發生的情況?這三個命令是你的救星:
iotop:通過磁片寫入對進程進行排序, 並顯示程式寫入磁片的次數和頻率。
powertop:通過能量消耗列出流程。 當你在外面, 在某個地方你不能為筆記型電腦充電的地方時, 這是一個至關重要的命令。
nethogs:通過網路流量列出進程。
8.tee
它會分割程式的輸出, 從而可以列印和保存。 例如, 添加一個新的條目到hosts檔;
echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts
7.pidof, kill和pkill
這三個重要的命令可以説明你控制系統中的運行程式。
pidof列印出正在運行的程式的進程ID。 例如, 以下命令將輸出nginx的進程ID:
pidof nginx
你可以通過kill命令殺死nginx:
kill -USR2 $(pidof nginx)'
pkill是一個快捷命令, 可以殺死進程匹配模式:
pkill -f nginx
6.tmux
如果還沒有安裝tmux的話, 那麼你必須安裝。 Tmux是終端的優秀視窗和會話管理器。
5.tree
以樹狀格式列出目錄的內容。 它有整潔的選項, 如只顯示目錄;
tree -d
4.find
當我們正在數十個檔中尋找特定檔時, 這個命令就是救星。 我將在這裡介紹幾個簡單的用例。
示例1:列出所有CSS檔(包括子目錄):
find . -type f -name "*.css"
示例2:列出所有CSS或HTML檔:
find . -type f ( -name "*.css" -or -name "*.html" )
3.htop
有名的過程監控。 它有一個漂亮又多彩的命令列介面。 一些有用的鍵綁定:
篩檢程式
/搜索
,選擇排序條件
k發送殺死信號
u使用者過濾結果
t打開/關閉樹模式
-和+ 折疊 / 展開選定的流程樹
H關閉顯示執行緒
2.chroot
很多人喜歡這個命令, 是因為它在給定的目錄中打開了一個新的TTY。 這意味著, 你可以創建一個資料夾,
是不是很強大?
1.dialog
在命令列上與用戶交互的一種非常簡單又良好的方式。 例如, 下面的命令展示了一個不錯的輸入框:
dialog --title "Oh hey" --inputbox "Howdy?" 8 55
它既存在於Linux, 也存在於OSX系統上, 並支援許多其他類型的對話方塊;訊息方塊, 功能表, 確認, 進度條…我為Happy Hacking Linux編寫的安裝嚮導就是用這個令人驚歎的命令製作的!