作為一名軟件工程師,學(xué)習(xí)Linux是我所做的投資。因?yàn)長(zhǎng)inux是一個(gè)用戶必須理解和維護(hù)的系統(tǒng),所以日常體驗(yàn)就像向水坑加水滴一樣。時(shí)間一長(zhǎng),水坑就會(huì)成為湖泊,甚至是海洋。所以我們必須杜微慎防。
今天,我作為一名30多歲的工程師,仍然受益于我?guī)啄昵皺C(jī)緣巧合在廣州達(dá)內(nèi)學(xué)到的一大堆知識(shí),在我還是一個(gè)具有雄心壯志的初學(xué)者的時(shí)候。在另一篇文章中,我已經(jīng)更詳細(xì)地解釋了為什么Linux對(duì)于軟件開發(fā)人員來說是一個(gè)更加務(wù)實(shí)的選擇。
在這篇文章中,我將分享一些不太受歡迎但非常有用的Linux命令,我個(gè)人極力推薦。如果你是在Macbook上工作,那也沒關(guān)系,因?yàn)槲姨岬降拇蟛糠置钜泊嬖谟贠SX系統(tǒng)中。
10、file
返回給定文件的信息。例如,你可以輸出圖像的尺寸信息:
file logo.png
返回:
> PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced
9、iotop,powertop,nethogs
你怎么監(jiān)控Linux系統(tǒng)中正在發(fā)生的情況?這三個(gè)命令是你的救星:
iotop:通過磁盤寫入對(duì)進(jìn)程進(jìn)行排序,并顯示程序?qū)懭氪疟P的次數(shù)和頻率。
powertop:通過能量消耗列出流程。當(dāng)你在外面,在某個(gè)地方你不能為筆記本電腦充電的地方時(shí),這是一個(gè)至關(guān)重要的命令。
nethogs:通過網(wǎng)絡(luò)流量列出進(jìn)程。
8、tee
它會(huì)分割程序的輸出,從而可以打印和保存。例如,添加一個(gè)新的條目到hosts文件:
echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts
7、pidof,kill和pkill
這三個(gè)重要的命令可以幫助你控制系統(tǒng)中的運(yùn)行程序。
pidof打印出正在運(yùn)行的程序的進(jìn)程ID。例如,以下命令將輸出nginx的進(jìn)程ID:
pidof nginx
你可以通過kill命令殺死nginx:
kill -USR2 $(pidof nginx)
pkill是一個(gè)快捷命令,可以殺死進(jìn)程匹配模式:
pkill -f nginx
6、tmux
如果還沒有安裝tmux的話,那么你必須安裝。Tmux是終端的窗口和會(huì)話管理器。
5、tree
以樹狀格式列出目錄的內(nèi)容。它有整潔的選項(xiàng),如只顯示目錄:
tree -d
4、find
當(dāng)我們正在數(shù)十個(gè)文件中尋找特定文件時(shí),這個(gè)命令就是救星。我將在這里介紹幾個(gè)簡(jiǎn)單的用例。
示例1:列出所有CSS文件(包括子目錄):
find . -type f -name "*.css"
示例2:列出所有CSS或HTML文件:
find . -type f ( -name "*.css" -or -name "*.html" )
3、htop
有名的過程監(jiān)控。它有一個(gè)漂亮又多彩的命令行界面。一些有用的鍵綁定:
過濾器
/搜索
,選擇排序條件
k發(fā)送殺死信號(hào)
u用戶過濾結(jié)果
t打開/關(guān)閉樹模式
-和+ 折疊 / 展開選定的流程樹
H關(guān)閉顯示線程
2、chroot
很多人喜歡這個(gè)命令,是因?yàn)樗诮o定的目錄中打開了一個(gè)新的TTY。這意味著,你可以創(chuàng)建一個(gè)文件夾,在其中設(shè)置一個(gè)新的Linux系統(tǒng),并隨時(shí)切換到該“子系統(tǒng)”。
是不是很強(qiáng)大?
1、dialog
在命令行上與用戶交互的一種非常簡(jiǎn)單又良好的方式。例如,下面的命令展示了一個(gè)不錯(cuò)的輸入框:
dialog --title "Oh hey" --inputbox "Howdy?" 8 55
它既存在于嵌入式Linux,也存在于OSX系統(tǒng)上,并支持許多其他類型的對(duì)話框;消息框,菜單,確認(rèn),進(jìn)度條…我為Happy Hacking Linux編寫的安裝向?qū)Ь褪怯眠@個(gè)令人驚嘆的命令制作的!