首先聲明,通常的命令就不入了。
1. $ ! (你沒看錯,就只是一個驚歎號)
它能夠這樣用"!!",這表示上一條命令,"!x",x爲一個數字,例如"!345",執行history表中第345條命令。
實用舉例:我執行某條好長的命令"ifconfig eth0 192.168.1.1",Enter後發現提示權限不夠要sudo,難道你會把光標移動到行首,而後加入sudo嗎?NO,你只須要輸入"sudo !!"即等於"sudo ifconfig eth0 192.168.1.1",就這樣神奇。
配合history來使用簡直就是逆天。例如你想輸入一條記不清的很長很長的命令,可是你記得以前用過,那就這樣吧,輸入"history | grep KEYWORD"這樣就會在檢索出該命令,而後你是否是考慮去用鼠標複製那條命令,而後粘貼執行?NO,你只須要輸入"!歷史編號",歷史編號就是那條命令左邊的序號。
2. $ mtr www.baidu.com
tracert + ping 命令的組合式
3. $ :w !sudo tee %
注意看這條命令是[:w !sudo tee %],w和!之間有個空格的!!!
想象一下這種場景,一個已經在vi中修改好了一個文件,可是$:w的時候卻發現沒有權限,或者readonly提示,此時難道放棄修改,退出去改完權限再回來?NO,請用上面這條命令。
在Vim中無需權限保存編輯的文件,輸入後會提示是否繼續,還會提示此文件已經更改,是否LOAD。
4. $ ^old^new
將上一條命令中的old改爲new,而後執行一次,這個簡直是神技。用熟了之後纔會感覺到,開始以爲變扭。
舉個例子吧,我想查找一個C標準函數在哪一個頭文件裏面聲明瞭,而後再include進來,解決個人報錯,因而我執行:$ grep KEYWORD /usr/include -R,而後又想換個關鍵詞再查找,通常的作法是按鍵盤上,而後將光標移動到KEYWORD處,而後刪除KEYWORD,改爲新的KEYWORD,再執行。有了這條命令後,只須要執行^old_KEYWORD^new_KEYWORD便可,至關實用。
5. $ cd -
返回上一次的pwd,用慣了之後你將會強迫本身一次性cd到位,不然這條命令的效果會減小90%以上。
6.$ ls -h
不得不說,加個-h好多了,human readable,因此日常能夠把ll映射成"ls -alh",即alias ll="ls -alh",在~/.bash_profile裏面增長這行,再重啓terminal
7.$ Ctrl + d
做用是exit當前的shell,假設你是用michael普通帳戶登錄,而後由於有點事情要root權限,你su成了root,用完root了又用su michael回到michael,而後按↑鍵,發如今michael時執行的命令記錄不見了,爲何呢?
實事是這樣的,你如今的shell是基於michael->root->michael,而不是michael,此時你須要Ctrl + d,退回到michael->root,再Ctrl + d,退回到michael,再按↑鍵,是否是看到以前的命令了。
8.$ \cp file1 file2
注意,cp前面加了一個反斜槓,它的做用就是不管cp命令被alias成了什麼,我老是調用/bin/cp。
它的好處在於,若是某個系統中cp被alias成了alias cp="/bin/cp -i",哪怕你用cp -f命令,也會被翻譯成/bin/cp -i -f,仍是會prompt你,那可真煩躁。可是有了反斜槓以後,一切迎刃而解!
9.$ Control + Insert 或者 Shift + Insert
和Control + C 或者 Control + V對應,也是複製,粘貼的意思。
可是前者不論是Linux的終端,串口,Windows文本框,都兼容!
從兼容性來看,使用前者較好,但因爲後者更方便,Only左手皆可完成,且右手可不離開鼠標。
10.$ readelf
能夠用這個命令來查看二進制文件的一些詳細內容,例如libxxx.a這個庫是哪一種架構CPU的目標代碼,readelf -a ./libxxx.a | grep machine -i。
更多的細節,應該親自嘗試比
11.$ fuser + dir or file
好比要umount某個設備,卻被提示the device is busy.沒法umount,那麼使用fuser來查看該device的目錄,便可找出是哪些服務或者進程在使用該目錄或者該目錄下的文件。例如:使用fuser /media會顯示涉及到該/media目錄的進程號,而後利用ps -ef | grep 進程號,來查看究竟是哪些進程在使用,加-k選項能夠殺掉那些進程fuser -k /media,以後便可umount該device。