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