1. bash中的$相關參數
復制代碼 代碼如下:
$0 - 表示當前文件名
$* - 以空格分離所有參數,形成一個字符串
$@ - 以空格分離所有參數,形成一個字符串組合。與$*的不同表現在被""引用時,"$*"是一個字符串,而"$@"則包含多個字符串
$# - 傳遞給進程的參數數目
$? - 上一條命令的執行結果,沒有錯誤時為0
$$ - 本條命令的PID
2. bash技巧,由變量的內容來組合為另一個變量的變量名
EXAMPLE:
復制代碼 代碼如下:
A_B_C_D="something"
t1="B"
t2="_D"
eval echo \$A_${t1}_C${t2};
3. Ubuntu(12.04, 12.10)下,ThinkPad X220指點桿設置,分別設置靈敏度和速度
復制代碼 代碼如下:
echo -n 225 > /sys/devices/platform/i8042/serio1/serio2/sensitivity
echo -n 115 > /sys/devices/platform/i8042/serio1/serio2/speed
4. 備份主引導扇區(bootsector)
如果啟動文件隨壞,可以通過恢復主引導扇區來視圖修復:
備份
復制代碼 代碼如下:
dd if=/dev/hda of=bootsector.img bs=512 count=1
恢復
復制代碼 代碼如下:
dd if=bootsector.img of=/dev/hda
上面兩步只是恢復了主引導扇區,很可能還需要把/boot裡面的內容全都恢復才能正常啟動,所以也可以備份一下/boot下面的文件。
5. bash命令行輸入技巧:
使用Ctrl+R來搜索以前用過的命令
使用Ctrl+W刪除當前單次
使用Ctrl+U刪除當前行
6. xargs很強大,用 -l{} 可以指定參數的位置:
EXAMPLE
復制代碼 代碼如下:
cat hosts | xargs -I{} ssh root@{} hostname
7. 寫安全的bash腳本:
set -e,當有錯誤發生時,腳本會退出
set -u,當bash發現有沒有初始化的變量時就退出
更多可參考:《寫出健壯的Bash腳本》
8. tar打包指定列表中列出的文件:
復制代碼 代碼如下:
cat yourlist.lst
/etc/fstab
/home/admin/bin/somefile.sh
/home/mysql/somefile
...
tar cvzf xxx.tar.gz -T yourlist.lst
9. 指定一個DNS服務器查詢域名記錄
復制代碼 代碼如下:
dig @8.8.8.8 www.google.com
10. sort命令最需要注意的參數是-k和-s:
復制代碼 代碼如下:
-s, --stable
stabilize sort by disabling last-resort comparison
stable表示最終的順序依賴於原來的順序。
EXAMPLE
復制代碼 代碼如下:
$ cat a.txt
a
A
b
$ sort -f a.txt
a
A
B
$ sort -f -s a.txt
a
A
b
例子中,-f表示不區分大小寫,-s表示順序依賴於原來文件的順序
復制代碼 代碼如下:
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line).
所以只以第二列來排序應該寫:
復制代碼 代碼如下:
sort -k1,1