linuxxargs
⑴ linux如何同時關閉多個進程的技巧
示例:在Linux平台上後台運行4個vim進程,使用如下命令即可同時結束掉4個vim進程
ps -efww|grep vim |grep -v grep|cut -c 9-15|xargs kill -9
說明:管道符「|」用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。
「ps-efww」是查看所有進程的命令。這時檢索出的進程將作為下一條命令「grep「的輸入,注意要結束其它程序時,請將上面命令中的vim替換成其它程序名。
「grep -v grep」是在列出的進程中去除含有關鍵字「grep」的進程。
「cut -c 9-15」是截取輸入行的第9個字元到第15個字元,而這正好是進程號PID。
「xargs kill -9」中的xargs命令是用來把前面命令的輸出結果(PID)作為「kill -9」命令的參數,並執行該命令。
「kill -9」會強行殺掉指定進程,這樣就成功清除了同名進程。
⑵ Linux xargs grep zgrep命令
xargs 是給命令返臘傳遞參數的一個過濾器,也是組合多個命令的一個工具,它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令。之所以會用到這個命令,關鍵是由於 很多命令不支持笑世纖管道來傳遞參數 ,而日常工作中就有這個需要,所以就有了 xargs 命令。
我們經常會用grep命令在文件中查找需要的內容,比如現在一個文件夾裡面有9個文件,有三種格式txt, csv和gz壓縮文件。
123裡面存的內容都一樣為
456裡面存的內容也一樣為
789裡面存的都是
如果我現在要從所有的文件裡面找「apple」
我會得到下面的結果,你會發現 grep不能從gz文件中查找內容
zgrep 這個命令可以解決這個問題,這樣就不需要先解壓然後再去查找了
會得到如下結果,顯示了所有文件格式中找到的「apple」,並且顯示了匹配的行號
如果只想在符合某種特徵的文件中找你感興趣的內容呢?比如在文件名中包含123的文件中查找「apple」。這時候就需要管道了,你需要先找到這樣的文件然後再從中找「apple」
第一步找到名字中包含123的文件
會得到文件名中包含123的所有文件
第二步查找「apple」
然後我們再來從中找「apple」,你會發現下面這條命令不work,你啥都得不到
這就是我們開篇提到的, 很多命令不支持管道來傳遞參數。 這個時候 xargs 就派上用場了
同時用上 zgrep ,這碰仿樣gz文件也一起找了
那麼,如果我們想從某一種特定格式的文件中(比如csv文件)找特定的內容該怎麼做呢?大家應該能觸類旁通,舉一反三了吧!
Linux xargs grep zgrep命令
⑶ linux殺死進程怎麼一下子全部殺死
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。
⑷ Linux涓嬩嬌鐢⊿hell鏂囨湰澶勭悊宸ュ叿闆嗛敠
Linux涓嬬殑鎿嶄綔涔犳儻涓嶅儚windows涓鏍峰彲浠ユ湁紿楀彛榪涜屾搷浣滐紝瀹冩槸鏈夊緢澶氫笉鍚岀殑鍛戒護緇勬垚鐨勶紝鏈鏂囧皢浠嬬粛Linux涓嬩嬌鐢⊿hell澶勭悊鏂囨湰鏃舵渶甯哥敤鐨勫伐鍏鳳細find銆乬rep銆亁args銆乻ort銆乽niq銆乼r銆乧ut銆乸aste銆亀c銆乻ed銆乤wk錛
鎻愪緵鐨勪緥瀛愬拰鍙傛暟閮芥槸鏈甯哥敤鍜屾渶涓哄疄鐢ㄧ殑錛
鎴戝箂hell鑴氭湰浣跨敤鐨勫師鍒欐槸鍛戒護鍗曡屼功鍐欙紝灝介噺涓嶈佽秴榪2琛岋紱濡傛灉鏈夋洿涓哄嶆潅鐨勪換鍔¢渶奼傦紝榪樻槸鑰冭檻python鍚э紱
find 鏂囦歡鏌ユ壘
鏌ユ壘txt鍜宲df鏂囦歡
find . /( -name "*.txt" -o -name "*.pdf" /) -print
姝e垯鏂瑰紡鏌ユ壘.txt鍜宲df
find . -regex ".*/(/.txt|/.pdf/)___FCKpd___1quot;
-iregex錛 蹇界暐澶у皬鍐欑殑姝e垯
鍚﹀畾鍙傛暟
鏌ユ壘鎵鏈夐潪txt鏂囨湰
find . ! -name "*.txt" -print
鎸囧畾鎼滅儲娣卞害
鎵撳嵃鍑哄綋鍓嶇洰褰曠殑鏂囦歡錛堟繁搴︿負1錛
find . -maxdepth 1 -type f
瀹氬埗鎼滅儲
鎸夌被鍨嬫悳緔錛
find . -type d -print //鍙鍒楀嚭鎵鏈夌洰褰
-type f 鏂囦歡 / l 絎﹀彿閾炬帴
鎸夋椂闂存悳緔錛
-atime 璁塊棶鏃墮棿 (鍗曚綅鏄澶╋紝鍒嗛挓鍗曚綅鍒欐槸-amin錛屼互涓嬬被浼礆級
-mtime 淇鏀規椂闂 錛堝唴瀹硅淇鏀癸級
-ctime 鍙樺寲鏃墮棿 錛堝厓鏁版嵁鎴栨潈闄愬彉鍖栵級
鏈榪7澶╄璁塊棶榪囩殑鎵鏈夋枃浠訛細
find . -atime 7 -type f -print
鎸夊ぇ灝忔悳緔錛
w瀛 k M G
瀵繪壘澶т簬2k鐨勬枃浠
find . -type f -size +2k
鎸夋潈闄愭煡鎵撅細
find . -type f -perm 644 -print //鎵懼叿鏈夊彲鎵ц屾潈闄愮殑鎵鏈夋枃浠
鎸夌敤鎴鋒煡鎵撅細
find . -type f -user weber -print// 鎵劇敤鎴穡eber鎵鎷ユ湁鐨勬枃浠
鎵懼埌鍚庣殑鍚庣畫鍔ㄤ綔
鍒犻櫎錛
鍒犻櫎褰撳墠鐩褰曚笅鎵鏈夌殑swp鏂囦歡錛
find . -type f -name "*.swp" -delete
鎵ц屽姩浣滐紙寮哄ぇ鐨別xec錛
find . -type f -user root -exec chown weber {} /; //灝嗗綋鍓嶇洰褰曚笅鐨勬墍鏈夋潈鍙樻洿涓簑eber
娉錛歿}鏄涓涓鐗規畩鐨勫瓧絎︿覆錛屽逛簬姣忎竴涓鍖歸厤鐨勬枃浠訛紝{}浼氳鏇挎崲鎴愮浉搴旂殑鏂囦歡鍚嶏紱
eg錛氬皢鎵懼埌鐨勬枃浠跺叏閮絚opy鍒板彟涓涓鐩褰曪細
find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD /;
緇撳悎澶氫釜鍛戒護
tips: 濡傛灉闇瑕佸悗緇鎵ц屽氫釜鍛戒護錛屽彲浠ュ皢澶氫釜鍛戒護鍐欐垚涓涓鑴氭湰銆傜劧鍚 -exec 璋冪敤鏃舵墽琛岃剼鏈鍗沖彲錛
-exec ./commands.sh {} /;
-print鐨勫畾鐣岀
榛樿や嬌鐢'/n'浣滀負鏂囦歡鐨勫畾鐣岀︼紱
-print0 浣跨敤'/0'浣滀負鏂囦歡鐨勫畾鐣岀︼紝榪欐牱灝卞彲浠ユ悳緔㈠寘鍚絀烘牸鐨勬枃浠訛紱
grep 鏂囨湰鎼滅儲
grep match_patten file // 榛樿よ塊棶鍖歸厤琛
甯哥敤鍙傛暟
-o 鍙杈撳嚭鍖歸厤鐨勬枃鏈琛 VS -v 鍙杈撳嚭娌℃湁鍖歸厤鐨勬枃鏈琛
-c 緇熻℃枃浠朵腑鍖呭惈鏂囨湰鐨勬℃暟
grep -c "text" filename
-n 鎵撳嵃鍖歸厤鐨勮屽彿
-i 鎼滅儲鏃跺拷鐣ュぇ灝忓啓
-l 鍙鎵撳嵃鏂囦歡鍚
鍦ㄥ氱駭鐩褰曚腑瀵規枃鏈閫掑綊鎼滅儲(紼嬪簭鍛樻悳浠g爜鐨勬渶鐖憋級錛
grep "class" . -R -n
鍖歸厤澶氫釜妯″紡
grep -e "class" -e "vitural" file
grep杈撳嚭浠/0浣滀負緇撳熬絎︾殑鏂囦歡鍚嶏細錛-z錛
grep "test" file* -lZ| xargs -0 rm
xargs 鍛戒護琛屽弬鏁拌漿鎹
xargs 鑳藉熷皢杈撳叆鏁版嵁杞鍖栦負鐗瑰畾鍛戒護鐨勫懡浠よ屽弬鏁幫紱榪欐牱錛屽彲浠ラ厤鍚堝緢澶氬懡浠ゆ潵緇勫悎浣跨敤銆傛瘮濡倈rep錛屾瘮濡俧ind錛
灝嗗氳岃緭鍑鴻漿鍖栦負鍗曡岃緭鍑
cat file.txt| xargs
/n 鏄澶氳屾枃鏈闂寸殑瀹氱晫絎
灝嗗崟琛岃漿鍖栦負澶氳岃緭鍑
cat single.txt | xargs -n 3
-n錛氭寚瀹氭瘡琛屾樉紺虹殑瀛楁墊暟
xargs鍙傛暟璇存槑
-d 瀹氫箟瀹氱晫絎 錛堥粯璁や負絀烘牸 澶氳岀殑瀹氱晫絎︿負 /n錛
-n 鎸囧畾杈撳嚭涓哄氳
-I {} 鎸囧畾鏇挎崲瀛楃︿覆錛岃繖涓瀛楃︿覆鍦▁args鎵╁睍鏃朵細琚鏇挎崲鎺,鐢ㄤ簬寰呮墽琛岀殑鍛戒護闇瑕佸氫釜鍙傛暟鏃
eg錛
cat file.txt | xargs -I {} ./command.sh -p {} -1
-0錛氭寚瀹/0涓鴻緭鍏ュ畾鐣岀
eg錛氱粺璁$▼搴忚屾暟
find source_dir/ -type f -name "*.cpp" -print0 |xargs -0 wc -l
sort 鎺掑簭
瀛楁佃存槑錛
-n 鎸夋暟瀛楄繘琛屾帓搴 VS -d 鎸夊瓧鍏稿簭榪涜屾帓搴
-r 閫嗗簭鎺掑簭
-k N 鎸囧畾鎸夌琋鍒楁帓搴
eg錛
sort -nrk 1 data.txtsort -bd data // 蹇界暐鍍忕┖鏍間箣綾葷殑鍓嶅肩┖鐧藉瓧絎
uniq 娑堥櫎閲嶅嶈
娑堥櫎閲嶅嶈
sort unsort.txt | uniq
緇熻″悇琛屽湪鏂囦歡涓鍑虹幇鐨勬℃暟
sort unsort.txt | uniq -c
鎵懼嚭閲嶅嶈
sort unsort.txt | uniq -d
鍙鎸囧畾姣忚屼腑闇瑕佹瘮杈冪殑閲嶅嶅唴瀹癸細-s 寮濮嬩綅緗 -w 姣旇緝瀛楃︽暟
鐢╰r榪涜岃漿鎹
閫氱敤鐢ㄦ硶
echo 12345 | tr '0-9' '9876543210' //鍔犺В瀵嗚漿鎹錛屾浛鎹㈠瑰簲瀛楃 cat text| tr '/t' ' ' //鍒惰〃絎﹁漿絀烘牸
tr鍒犻櫎瀛楃
cat file | tr -d '0-9' // 鍒犻櫎鎵鏈夋暟瀛
-c 奼傝ˉ闆
cat file | tr -c '0-9' //鑾峰彇鏂囦歡涓鎵鏈夋暟瀛 cat file | tr -d -c '0-9 /n' //鍒犻櫎闈炴暟瀛楁暟鎹
tr鍘嬬緝瀛楃
tr -s 鍘嬬緝鏂囨湰涓鍑虹幇鐨勯噸澶嶅瓧絎︼紱鏈甯哥敤浜庡帇緙╁氫綑鐨勭┖鏍
cat file | tr -s ' '
瀛楃︾被
tr涓鍙鐢ㄥ悇縐嶅瓧絎︾被錛
alnum錛氬瓧姣嶅拰鏁板瓧
alpha錛氬瓧姣
digit錛氭暟瀛
space錛氱┖鐧藉瓧絎
lower錛氬皬鍐
upper錛氬ぇ鍐
cntrl錛氭帶鍒訛紙闈炲彲鎵撳嵃錛夊瓧絎
print錛氬彲鎵撳嵃瀛楃
浣跨敤鏂規硶錛歵r [:class:] [:class:]
eg: tr '[:lower:]' '[:upper:]'
cut 鎸夊垪鍒囧垎鏂囨湰
鎴鍙栨枃浠剁殑絎2鍒楀拰絎4鍒楋細
cut -f2,4 filename
鍘繪枃浠墮櫎絎3鍒楃殑鎵鏈夊垪錛
cut -f3 --complement filename
-d 鎸囧畾瀹氱晫絎︼細
cat -f2 -d";" filename
cut 鍙栫殑鑼冨洿
N- 絎琋涓瀛楁靛埌緇撳熬
-M 絎1涓瀛楁典負M
N-M N鍒癕涓瀛楁
cut 鍙栫殑鍗曚綅
-b 浠ュ瓧鑺備負鍗曚綅
-c 浠ュ瓧絎︿負鍗曚綅
-f 浠ュ瓧孌典負鍗曚綅錛堜嬌鐢ㄥ畾鐣岀︼級
eg:
cut -c1-5 file //鎵撳嵃絎涓鍒5涓瀛楃 cut -c-2 file //鎵撳嵃鍓2涓瀛楃
paste 鎸夊垪鎷兼帴鏂囨湰
灝嗕袱涓鏂囨湰鎸夊垪鎷兼帴鍒頒竴璧;
cat file112cat file2colinbookpaste file1 file21 colin2 book
榛樿ょ殑瀹氱晫絎︽槸鍒惰〃絎︼紝鍙浠ョ敤-d鎸囨槑瀹氱晫絎
paste file1 file2 -d ","
1,colin
2,book
wc 緇熻¤屽拰瀛楃︾殑宸ュ叿
wc -l file // 緇熻¤屾暟
wc -w file // 緇熻″崟璇嶆暟
wc -c file // 緇熻″瓧絎︽暟
sed 鏂囨湰鏇挎崲鍒╁櫒
棣栧勬浛鎹
seg 's/text/replace_text/' file //鏇挎崲姣忎竴琛岀殑絎涓澶勫尮閰嶇殑text
鍏ㄥ矓鏇挎崲
seg 's/text/replace_text/g' file
榛樿ゆ浛鎹㈠悗錛岃緭鍑烘浛鎹㈠悗鐨勫唴瀹癸紝濡傛灉闇瑕佺洿鎺ユ浛鎹㈠師鏂囦歡,浣跨敤-i錛
seg -i 's/text/repalce_text/g' file
縐婚櫎絀虹櫧琛岋細
sed '/^$/d' file
鍙橀噺杞鎹
宸插尮閰嶇殑瀛楃︿覆閫氳繃鏍囪版潵寮曠敤.
echo this is en example | seg 's//w+/[]/g'___FCKpd___37gt;[this] [is] [en] [example]
瀛愪覆鍖歸厤鏍囪
絎涓涓鍖歸厤鐨勬嫭鍙峰唴瀹逛嬌鐢ㄦ爣璁 /1 鏉ュ紩鐢
sed 's/hello/([0-9]/)//1/'
鍙屽紩鍙鋒眰鍊
sed閫氬父鐢ㄥ崟寮曞彿鏉ュ紩鐢錛涗篃鍙浣跨敤鍙屽紩鍙鳳紝浣跨敤鍙屽紩鍙峰悗錛屽弻寮曞彿浼氬硅〃杈懼紡奼傚礆細
sed 's/$var/HLLOE/'
褰撲嬌鐢ㄥ弻寮曞彿鏃訛紝鎴戜滑鍙浠ュ湪sed鏍峰紡鍜屾浛鎹㈠瓧絎︿覆涓鎸囧畾鍙橀噺錛
eg:p=pattenr=replacedecho "line con a patten" | sed "s/$p/$r/g"___FCKpd___40gt;line con a replaced
鍏跺畠紺轟緥
瀛楃︿覆鎻掑叆瀛楃︼細灝嗘枃鏈涓姣忚屽唴瀹癸紙PEKSHA錛 杞鎹涓 PEK/SHA
sed 's/^./{3/}////g' file
awk 鏁版嵁嫻佸勭悊宸ュ叿
awk鑴氭湰緇撴瀯
awk ' BEGIN{ statements } statements2 END{ statements } '
宸ヤ綔鏂瑰紡
1.鎵ц宐egin涓璇鍙ュ潡錛
2.浠庢枃浠舵垨stdin涓璇誨叆涓琛岋紝鐒跺悗鎵ц宻tatements2錛岄噸澶嶈繖涓榪囩▼錛岀洿鍒版枃浠跺叏閮ㄨ璇誨彇瀹屾瘯錛
3.鎵ц宔nd璇鍙ュ潡錛
print 鎵撳嵃褰撳墠琛
浣跨敤涓嶅甫鍙傛暟鐨刾rint鏃訛紝浼氭墦鍗板綋鍓嶈;
echo -e "line1/nline2" | awk 'BEGIN{print "start"} {print } END{ print "End" }'
print 浠ラ楀彿鍒嗗壊鏃訛紝鍙傛暟浠ョ┖鏍煎畾鐣;
echo | awk ' {var1 = "v1" ; var2 = "V2"; var3="v3"; /print var1, var2 , var3; }'___FCKpd___43gt;v1 V2 v3
浣跨敤-鎷兼帴絎︾殑鏂瑰紡錛""浣滀負鎷兼帴絎︼級;
echo | awk ' {var1 = "v1" ; var2 = "V2"; var3="v3"; /print var1"-"var2"-"var3; }'___FCKpd___44gt;v1-V2-v3
鐗規畩鍙橀噺錛 NR NF $0 $1 $2
NR:琛ㄧず璁板綍鏁伴噺錛屽湪鎵ц岃繃紼嬩腑瀵瑰簲褰撳墠琛屽彿錛
NF:琛ㄧず瀛楁墊暟閲忥紝鍦ㄦ墽琛岃繃紼嬫誨瑰簲褰撳墠琛岀殑瀛楁墊暟錛
$0:榪欎釜鍙橀噺鍖呭惈鎵ц岃繃紼嬩腑褰撳墠琛岀殑鏂囨湰鍐呭癸紱
$1:絎涓涓瀛楁電殑鏂囨湰鍐呭癸紱
$2:絎浜屼釜瀛楁電殑鏂囨湰鍐呭癸紱
echo -e "line1 f2 f3/n line2 /n line 3" | awk '{print NR":"$0"-"$1"-"$2}'
鎵撳嵃姣忎竴琛岀殑絎浜屽拰絎涓変釜瀛楁碉細
awk '{print $2, $3}' file
緇熻℃枃浠剁殑琛屾暟錛
awk ' END {print NR}' file
緔鍔犳瘡涓琛岀殑絎涓涓瀛楁碉細
echo -e "1/n 2/n 3/n 4/n" | awk 'BEGIN{num = 0 ; print "begin";} {sum += $1;} END {print "=="; print sum }'
浼犻掑栭儴鍙橀噺
var=1000echo | awk '{print vara}' vara=$var # 杈撳叆鏉ヨ嚜stdinawk '{print vara}' vara=$var file # 杈撳叆鏉ヨ嚜鏂囦歡
鐢ㄦ牱寮忓筧wk澶勭悊鐨勮岃繘琛岃繃婊
awk 'NR 5' #琛屽彿灝忎簬5
awk 'NR==1,NR==4 {print}' file #琛屽彿絳変簬1鍜4鐨勬墦鍗板嚭鏉
awk '/linux/' #鍖呭惈linux鏂囨湰鐨勮岋紙鍙浠ョ敤姝e垯琛ㄨ揪寮忔潵鎸囧畾錛岃秴綰у己澶э級
awk '!/linux/' #涓嶅寘鍚玪inux鏂囨湰鐨勮
璁劇疆瀹氱晫絎
浣跨敤-F鏉ヨ劇疆瀹氱晫絎︼紙榛樿や負絀烘牸錛
awk -F: '{print $NF}' /etc/passwd
璇誨彇鍛戒護杈撳嚭
浣跨敤getline錛屽皢澶栭儴shell鍛戒護鐨勮緭鍑鴻誨叆鍒板彉閲廲mdout涓錛
echo | awk '{"grep root /etc/passwd" | getline cmdout; print cmdout }'
鍦╝wk涓浣跨敤寰鐜
for(i=0;i10;i++){print $i;}
for(i in array){print array[i];}
eg:
浠ラ嗗簭鐨勫艦寮忔墦鍗拌岋細(tac鍛戒護鐨勫疄鐜幫級
seq 9| /awk '{lifo[NR] = $0; lno=NR} /END{ for(;lno-1;lno--){print lifo[lno];}} '
awk瀹炵幇head銆乼ail鍛戒護
head:
awk 'NR=10{print}' filename
tail:
awk '{buffer[NR%10] = $0;} END{for(i=0;i11;i++){ / print buffer[i %10]} } ' filename
鎵撳嵃鎸囧畾鍒
awk鏂瑰紡瀹炵幇錛
ls -lrt | awk '{print $6}'
cut鏂瑰紡瀹炵幇
ls -lrt | cut -f6
鎵撳嵃鎸囧畾鏂囨湰鍖哄煙
紜瀹氳屽彿
seq 100| awk 'NR==4,NR==6{print}'
紜瀹氭枃鏈
鎵撳嵃澶勪簬start_pattern 鍜宔nd_pattern涔嬮棿鐨勬枃鏈錛
awk '/start_pattern/, /end_pattern/' filename
eg:
seq 100 | awk '/13/,/15/'cat /etc/passwd| awk '/mai.*mail/,/news.*news/'
awk甯哥敤鍐呭緩鍑芥暟
index(string,search_string):榪斿洖search_string鍦╯tring涓鍑虹幇鐨勪綅緗
sub(regex,replacement_str,string):灝嗘e垯鍖歸厤鍒扮殑絎涓澶勫唴瀹規浛鎹涓簉eplacement_str;
match(regex,string):媯鏌ユe垯琛ㄨ揪寮忔槸鍚﹁兘澶熷尮閰嶅瓧絎︿覆錛
length(string)錛氳繑鍥炲瓧絎︿覆闀垮害
echo | awk '{"grep root /etc/passwd" | getline cmdout; print length(cmdout) }'
printf 綾諱技c璇璦涓鐨刾rintf錛屽硅緭鍑鴻繘琛屾牸寮忓寲
eg錛
seq 10 | awk '{printf "-%4s/n", $1}'
榪浠f枃浠朵腑鐨勮屻佸崟璇嶅拰瀛楃
1. 榪浠f枃浠朵腑鐨勬瘡涓琛
while 寰鐜娉
while read line;doecho $line;done file.txt鏀規垚瀛恠hell:cat file.txt | (while read line;do echo $line;done)
awk娉曪細
cat file.txt| awk '{print}'
2.榪浠d竴琛屼腑鐨勬瘡涓涓鍗曡瘝
for word in $line;do echo $word;done
3. 榪浠f瘡涓涓瀛楃
${string:start_pos:num_of_chars}錛氫粠瀛楃︿覆涓鎻愬彇涓涓瀛楃︼紱(bash鏂囨湰鍒囩墖錛
${#word}:榪斿洖鍙橀噺word鐨勯暱搴
for((i=0;i${#word};i++))doecho ${word:i:1);done