Linux命令大家在工作中都会用到, 但命令很多, 参数也太复杂, 若专门化时间去学习, 往往效果欠佳. 唯有在工作实战中, 结合使用场景, 一边使用, 一边学习.
1.xargs 这是一个神奇的命令, 对于多行的处理, 都可以用到
-t 先打印, 后执行
-I 将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替
-n 限制执行的次数
find/var/log/ -type f -mtime +3|xargs-t -I{} rm {} //删除三天前的文件
find /var/log/ -type f -mtime +3 -exec rm {} \;//删除三天前的文件
ls -t -n +4| xargs -t -I rm {} //删除三天前的文件
ps -ef|grep java |grep -v grep |awk ‘{print $2}’|xargs -t -I {} kill -9 {} //杀死所有java进程
2. awk awk的用法很广, 这里罗列比较常用的几个
一般的格式:awk '/pattern/BEGIN{action} {action} END{action}' filename
-F 制定文字分隔符, 默认为空格
$n 表示文本中第n个数据字段
$NF 表示文本中最后一个字段
awk-F: 'BEGIN{sum=0}{if($NF>100)sum++} END{print sum}' log //统计日志中响应时间大于100ms的请 求数量
netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}' //统计并发请求数及tcp连接状态.
cat access_log |grep “connect cbp” |awk‘BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f\n”,sum,count,sum/count)}’ //计算平均连接时间
3. tail
-n 100 显示最后100行记录
n +100 显示从100行开始和之后的记录, ls命令也支持这种模式
4.sort
-k 3 按照第几个位置的值进行排序
-n 按照字符串数值顺序来排序
-u unique
-r 倒序
-t 分隔符
ps aux|sort -nk 3 -r | head -n 5 //查看最占用cpu时间的5个进程
ps aux|sort -nk 4 -r | head -n 5 //查看最占用内存的5个进程
du -sh * |sort -nr|head //查看最大的10个文件