Linux shell 中的那些小把戲

發表於2017-11-22

我日常使用Linux shell(Bash),但是我經常忘記一些有用的命令或者shell技巧。是的,我能記住一些命令,但是肯定不會只在特定的任務上使用一次,所以我就開始在我的Dropbox賬號裡用文字檔案寫下這些Linux shell的小技巧,現在我決定共享它給你。這個表我以後還會更新。記住,這裡的一些貼士需要在你的Linux發行版上安裝額外的軟體。

在bash中檢查遠端埠是否開啟:

將程式掛起:

將程式移到前臺:

(譯註,掛起的程式是不執行的,如果希望在後臺執行,可以使用bg命令,並且指定通過jobs命令獲得的任務號。)

生成隨機16進位制數字,n是字元的數量:

在當前shell中執行一個檔案中的命令(譯註:這個檔案不是一個bash指令碼,比如.bashrc、bash_profile等):

提取字串的前5個字元:

開啟SSH除錯模式(譯註:當你遇到SSH連線問題時很有用):

使用pem key的進行SSH連線:

用wget獲取完整目錄列表到本地目錄:

同時建立多個目錄:

以樹狀列出程式及子程式:

建立war檔案:

測試磁碟寫速度:

測試磁碟讀速度:

獲取文字的md5值:

檢測xml語法:

將tar.gz檔案解壓到指定目錄:

用curl獲取HTTP頭:

修改一些檔案或目錄的時間戳 (格式為:YYMMDDhhmm):

使用wget從ftp下載:

生成隨機密碼 (本例中16位字元長):

快速建立一個檔案的備份(副檔名是.bkp):

訪問Windows共享:

執行history中的命令 (這裡在history中的第100個):

unzip到目錄中:

輸入多行文字 (按 CTRL + d 退出):

建立空白的檔案或者清空已存在的檔案:

從Ubuntu NTP伺服器上更新日期:

netstat 顯示所有IPv4的TCP監聽的埠:

將qcow2的映象轉化成raw格式:

重複執行命令並顯示它的輸出 (預設2秒重複一次):

顯示所有使用者:

以讀寫模式掛載根檔案系統:

掛載目錄 (適合於符號連結不能工作的情況下):

傳送DNS動態更新給DNS:

遞迴grep所有目錄

列出10個最大的系統中已開啟的檔案:

以MB顯示空餘記憶體:

開啟vim並跳轉到檔案最後:

git clone特定branch (本例是master分支):

git切換到另外一個branch (本例是develop分支):

git刪除一個branch(本例是myfeature):

Git刪除一個遠端branch:

Git push 新的branch到遠端:

列印history中最後的cat命令

執行history中的最後的cat命令:

找出在/home/user中的所有空子目錄:

得到test.txt中50到60行的文字:

以sudo許可權重新執行上一個執行的命令 (如果是: mkdir /root/test, 下面會執行: sudo mkdir /root/test)(譯註:當你執行一個命令忘記sudo時,可以這樣重新執行,而不必再把完整命令敲一遍):

建立臨時RAM檔案系統 – ramdisk (請先建立 /tmpram 目錄):

Grep完整的單詞(譯註:而不是其它單詞的一部分):

提升許可權後在一個檔案後追加文字:

列出所有支援的kill訊號:

生成隨機密碼 (本例中16個字元長):

在bash歷史中不記錄最後的會話:

掃描網路來找出開放的埠:

設定git email:

如果你有未提交的commit,與master同步:

將檔名中含有txt的所有檔案移動到/home/user:

按行將兩個檔案中的對應行合併顯示:

shell中的進度條:

用netcat傳送資料給伺服器:

轉換tab為空格:

跳過bash歷史:

回到之前的工作目錄:

切割大的tar.gz檔案為幾個檔案 (每個100MB),並還原:

用curl獲取HTTP狀態值:

當 Ctrl + c 沒用時:

獲取檔案所有者:

列出塊裝置:

找出檔案中帶有末尾空格的檔案:

找出用tab縮排的檔案:

用”=”列印水平行

更新: 2013年11月25日

 

相關文章