SHELL日常

 SHELL
 

Shell运维必备,用在mac和linux里面超级好用,提高了很多生产力,主要介绍下自己常用的一些。

统计各应用内存占用情况:

1
top -b -n 1 |tail -n +8 |awk '{a[$NF]+=$6}END{for(k in a)print a[k]/1024,k}'|sort -gr|head -10

统计各应用CPU使用情况:

1
top -b -n 1 | tail -n +8 |awk '{a[$NF]+=$9}END{for(k in a)print a[k],k}'|sort -gr|head -10

统计当前tcp连接状态

1
netstat -ant | tail -n +3 | awk '{ip[$NF]++} END {for(i in ip) print i,ip[i]}'

批量重命名文件:(默认从1000开始)

1
2
3
4
5
6
# 在图片目录下执行
#定义前缀
pre=test
#定义数字起头
num=1000
find . -type f -name "*" | while read file; do ext=`echo $file | awk -F. '{ print $NF }'`; newname="${pre}-${num}.${ext}";echo "$file" to $newname; mv "$file" $newname ; num=$((num+1)) ; done

对比文本找出或删除文件夹多余的文件

1
2
3
4
5
6
7
# 文件夹名称dirname指定,文件:test.txt,每一行为一个文件名

#定义文件名和目录名
textname=test.txt
dirname=样本

ls $dirname | while read filename; do grep -wq $filename $textname; if [ $? != 0 ] ; then ; echo $dirname/$filename ; fi ; done

对比文本找出文件夹中缺少的文件

1
2
3
4
5
#定义文件名和目录名
textname=test.txt
dirname=样本

cat $textname | while read line; do if [ ! -e $dirname/$line ]; then echo $line; fi; done

 评论