作為一個軟件工程師,學習Linux是我做過的最好的時間投資。因為它是一個用戶必須理解和維護的系統,每天的使用經驗就像在水坑中添加一滴水一樣。很長時間以后,水坑就變成了湖泊,甚至海洋。
今天,作為一名30歲的工程師,我仍然受益于多年前學到的知識,那時我是一個雄心勃勃的初學者。在另一篇博客文章中,我更詳細地解釋了為什么Linux更適合軟件開發人員。
在這篇文章中,我將分享我個人使用和推薦的一些不太流行但非常有用的Linux命令。如果你有一個蘋果筆記本,那很好,因為我提到的大部分命令也存在于OSX中。
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
tee 將程序的輸出結果重定向,使得我們可以同時顯示和保存結果,例如,添加一個新的條目到hosts文件中:
echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts
7. pidof, kill and pkill
這三個重要命令幫助你控制系統中運行的程序。
pidof 打印出正在運行程序的進程ID。例如,下面的命令將輸出nginx的進程ID:
pidof nginx
你可以把nginx的進程ID輸入到 kill 命令來終止它。
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 發送kill指令
- * u 按用戶過濾結果
- * t 打開/關閉 樹形(tree) 模式
- * -和+ 展開/關閉進程樹
- * H 關閉顯示進程
2.chroot
魔術師們喜歡這個命令,因為它在給定的目錄中打開了一個新的TTY。這意味著,你可以創建一個文件夾,在其中設置一個新的Linux系統,并隨時切換到該“子系統”。
是不是很強大?
1.dialog
在命令行上與用戶交互的一種非常簡單而且不錯的方式。例如,下面的命令顯示了一個不錯的輸入框:
dialog --title "Oh hey" --inputbox "Howdy?" 8 55
它存在于Linux和OSX系統上,并支持許多其他類型的對話框:消息框,菜單,確認框,進度條…我為Happy Hacking Linux編寫的安裝向導就是用這個神奇的命令制作的!
新聞熱點
疑難解答