shell俗稱是「殼」,區別於「核」,它在linux的系統命令操作中扮演者非常重要的角色。達妹今天為大家系統整理下shell的技術要點。
1.學習shell主要在於用,關鍵要靠上機操作。
2. 單引號、雙引號、括號、花括號及反引號
單引號內所有元字元都失去特殊含義(包括\)雙引號內除了變數域($)和命令域(`)以外的元字元都失去特殊含義,所以一般使用雙引號引用
花括號{}被用來區分變數名和周圍的文字:echo $ and $file1 尋找變數file,file1
命令替代的格式:反引號來環繞乙個命令象` cmd `,它和$(command) 是等價的:ls -l `find . -type f`
3. 取行
sed -n "3"p file 取第3行
sed -n "1,3"p file 取第1到3行
sed -n "1,$"p file 取第1到最後一行
sed -n "1,$num"p file 取第1到num行
sed -n "\$p" file 取最後1行
sed -e '1!g;h;$!d' file倒過來顯示
4. sed 附加/替換:
sed "/xmdh/a\daoyou" file 把含有xmdh的行的結尾附加daoyou(有換行)
sed 's/$/ daoyou/' file把每行的結尾附加daoyou(在同一行)
sed '/test/s/$/ daoyou/' file把包含test行的結尾附加daoyou(在同一行)
sed '10s/$/ daoyou/' file把第10行的結尾附加daoyou(在同一行)
sed "s/xmdh/daoyou/g" file把xmdh替換成daoyou
sed "s/xmdh/daoyou/;g" file把xmdh替換成daoyou並增加乙個換行
cat userlog |sed -n '/xmdh/ w test.txt'檢視含有xmdh並寫入test.txt中
5. 搜尋:
vi file 後:/\/
6. 顯示行號:
awk '/dhshunde/' userlog或grep -n dhshunde userlog 顯示含有dhshunde的行號及內容
cat userlog |sed -n 『/erptest/=』 顯示含有erptest的行號
cat userlog |sed -n '/xmdh/p'|sed -n '$p' 顯示包含xmdh的最後一行
7. awk中使用變數
/bin/cat /etc/ppp/chap-secrets|grep $5|awk '' logouttime="`/bin/date`" datasize="$size" >>$pptplogdirectory/userlog(注:size前面已經有定義)
8. find的用法
注:f i n d命令將所有匹配到的檔案一起傳遞給e x e c執行,而x a rg s命令每次只獲取一部分檔案而不是全部,所以exec有長度限制,檔案不能太多,否則會產生溢位錯誤,而xargs則沒有
find . -mtime -1 –print 跟現在小於1天修改的檔案
find . -perm 755 –print 顯示具有755屬性的檔案
find . -size +1000000c –print 查詢大於1m的檔案
find . -type f -exec ls -l {} \; 查詢檔案並列表顯示(注:{}與\之間有空格,最後有;)
find . -type f -exec rm {} \;查詢檔案並刪除
find . -type f -print |xargs ls –l檢視檔案並列表顯示
find / −p
erm−
4000−o
−per
m−2000
-type f –print 查詢suid和sgid檔案
9. 向登入終端使用者傳送訊息
echo "hello i am jiangdaoyou"|tee /dev/pts/2 (tty可以檢視自已的終端號),等同於:write root pts/2然後輸入:hello i am jiangdaoyou然後ctrl+d結束
10. awk之begin和end
即在檔案頭增加列名:
cat userlog |awk 'begin;'
time username
------------------------------
15:19:28 username:xmdh
15:20:00 username:xmdh
將在上面的基礎上增加結尾說明「end of report!!!!」
cat userlog |awk 'beginend'
返回首頁
11. 擷取/轉化字元
echo "200604211031"|cut -c9-12 得到1031
cat test.ok |tr 'arp' 'rpm' 把arp轉為rpm
12. 求平均值
vmstat 1 4|awk ''|grep -o '[0-9]*'|sed 's/,//g' |awk '}'或如下方法:
vmstat 1 4|awk 'nr>2end'
13. 迴圈
ls |for file in *;do echo "rpm -ivh" $file;done
ls |for file in $(ls *.rpm);do echo "rpm -ivh" $file;done
Nginx技術要點總結
nginx engine x 是目前使用最廣泛的web伺服器,同時也是常用的反向 伺服器。本文對nginx基礎功能做一些總結,希望自己加深理解的同時,對需要的朋友有所幫助。二.nginx的工作模式 nginx是乙個多程序 多執行緒高效能web伺服器,在linux系統中,nginx啟動後會以後臺守護程...
mysql的技術要點 Mysql 鎖技術要點
myisam和innodb的區別 mysql預設採用的是myisam。myisam不支援事務,而innodb支援。innodb的autocommit預設是開啟的,即每條sql語句會預設被封裝成乙個事務,自動提交,這樣會影響速度,所以最好是把多條sql語句顯示放在begin和commit之間,組成乙個...
C 實現遠端注入DLL技術要點總結
現將遠端注入dll的實現方法總結如下 steps 2.為你要操作控制的proc 這裡成為目標proc new乙個執行緒,使用windows中的handle createremotethread 具體使用查閱msdn,有很好的說明 但是,在使用createremotethread時要注意對執行緒函式的...