shell技術要點總結!

2021-08-14 17:32:54 字數 2977 閱讀 6045

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時要注意對執行緒函式的...