玩Linux五年積累的技巧

1. bash中的$相關參數 
Shell代碼 
  1. $0 - 表示當前文件名  
  2. $* - 以空格分離所有參數,形成一個字符串  
  3. $@ - 以空格分離所有參數,形成一個字符串組合。與$*的不同表現在被""引用時,"$*"是一個字符串,而"$@"則包含多個字符串  
  4. $# - 傳遞給進程的參數數目  
  5. $? - 上一條命令的執行結果,沒有錯誤時爲0  
  6. $$ - 本條命令的PID  


2. bash技巧,由變量的內容來組合爲另一個變量的變量名 
EXAMPLE: 
Shell代碼 
  1. A_B_C_D="something"  
  2. t1="B"  
  3. t2="_D"  
  4. eval echo \$A_${t1}_C${t2};  


3.  Ubuntu(12.04, 12.10)下,ThinkPad X220指點杆設置,分別設置靈敏度和速度 
Shell代碼 
  1. echo -n 225 > /sys/devices/platform/i8042/serio1/serio2/sensitivity  
  2. echo -n 115 > /sys/devices/platform/i8042/serio1/serio2/speed  


4. 備份主引導扇區(bootsector) 
如果啓動文件隨壞,可以通過恢復主引導扇區來視圖修復: 
備份 
Shell代碼 
  1. dd if=/dev/hda of=bootsector.img bs=512 count=1  

恢復 
Shell代碼 
  1. dd if=bootsector.img of=/dev/hda  

上面兩步只是恢復了主引導扇區,很可能還需要把/boot裏面的內容全都恢復才能正常啓動,所以也可以備份一下/boot下面的文件。 

5. bash命令行輸入技巧: 
使用Ctrl+R來搜索以前用過的命令 
使用Ctrl+W刪除當前單次 
使用Ctrl+U刪除當前行 

6. xargs很強大,用 -l{} 可以指定參數的位置: 
EXAMPLE 
Shell代碼 
  1. cat hosts | xargs -I{} ssh root@{} hostname  


7. 寫安全的bash腳本: 
set -e,當有錯誤發生時,腳本會退出 
set -u,當bash發現有沒有初始化的變量時就退出 
更多可參考:《寫出健壯的Bash腳本》 

8. tar打包指定列表中列出的文件: 
Shell代碼 
  1. cat yourlist.lst  
  2. /etc/fstab  
  3. /home/admin/bin/somefile.sh  
  4. /home/mysql/somefile  
  5. ...  
  6.   
  7. tar cvzf xxx.tar.gz -T yourlist.lst  


9. 指定一個DNS服務器查詢域名記錄 
Shell代碼 
  1. dig @8.8.8.8 www.google.com  


10. sort命令最需要注意的參數是-k和-s: 
Shell代碼 
  1. -s, --stable  
  2.               stabilize sort by disabling last-resort comparison  
  3. stable表示最終的順序依賴於原來的順序。  

EXAMPLE 
Shell代碼 
  1. $ cat a.txt   
  2. a  
  3. A  
  4. B  
  5. b  
  6. $ sort -f a.txt   
  7. a  
  8. A  
  9. b  
  10. B  
  11. $ sort -f -s a.txt   
  12. a  
  13. A  
  14. B  
  15. b  

例子中,-f表示不區分大小寫,-s表示順序依賴於原來文件的順序 
Shell代碼 
  1. -k, --key=POS1[,POS2]  
  2.               start a key at POS1 (origin 1), end it at POS2 (default end of line).  

所以只以第二列來排序應該寫: 
Shell代碼 
  1. sort -k1,1  
發佈了51 篇原創文章 · 獲贊 14 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章