我日常使用Linux shell(Bash),但是我經常忘記一些有用的命令或者shell技巧。是的,我能記住一些命令,但是肯定不會只在特定的任務上使用一次,所以我就開始在我的Dropbox賬號裡用文本文件寫下這些Linux shell的小技巧,現在我決定共享它給你。這個表我以後還會更新。記住,這裡的一些貼士需要在你的Linux發行版上安裝額外的軟件。
在bash中檢查遠程端口是否打開:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
將進程掛起:
Ctrl + z
將進程移到前台:
fg
(譯注,掛起的進程是不執行的,如果希望在後台執行,可以使用bg命令,並且指定通過jobs命令獲得的任務號。)
生成隨機16進制數字,n是字符的數量:
openssl rand -hex n
在當前shell中執行一個文件中的命令(譯注:這個文件不是一個bash腳本,比如.bashrc、bash_profile等):
source /home/user/file.name
提取字符串的前5個字符:
${variable:0:5}
打開SSH調試模式(譯注:當你遇到SSH連接問題時很有用):
ssh -vvv user@ip_address
使用pem key的進行SSH連接:
ssh user@ip_address -i key.pem
用wget獲取完整目錄列表到本地目錄:
wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
同時創建多個目錄:
mkdir -p /home/user/{test,test1,test2}
以樹狀列出進程及子進程:
ps axwef
創建war文件:
jar -cvf name.war file
測試磁盤寫速度:
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k conv=fdatasync; rm -rf /tmp/output.img
測試磁盤讀速度:
hdparm -Tt /dev/sda
獲取文本的md5值:
echo -n "text" | md5sum
檢測xml語法:
xmllint --noout file.xml
將tar.gz文件解壓到指定目錄:
tar zxvf package.tar.gz -C new_dir
用curl獲取HTTP頭:
curl -I http://www.example.com
修改一些文件或目錄的時間戳 (格式為:YYMMDDhhmm):
touch -t 0712250000 file
使用wget從ftp下載:
wget -m ftp://username:password@hostname
生成隨機密碼 (本例中16位字符長):
LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
快速創建一個文件的備份(擴展名是.bkp):
cp some_file_name{,.bkp}
訪問Windows共享:
smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
運行history中的命令 (這裡在history中的第100個):
!100