您的位置:首页 > 运维架构 > Linux

linux命令练习

2017-01-01 22:19 232 查看
启发的linux基础分享

练习一

➜ ~ ps -ef |grep Chrome|wc -l

注意大写

还会多算一个,因为会把grep也加进去,可以把grep -v

➜  ~ ps -ef |grep Chrome|wc -l
20
➜  ~ ps -ef |grep Chrome|grep -v grep|wc -l
19
➜  ~ ps -ef |grep Chrom[e]|wc -l
19


grep 支持正则

练习二

查看系统磁盘的用了%多少,先head,再tail,再用awk

➜  ~ df -h
Filesystem      Size   Used  Avail Capacity  iused   ifree %iused  Mounted on
/dev/disk1     112Gi   92Gi   20Gi    83% 24194088 5136310   82%   /
devfs          328Ki  328Ki    0Bi   100%     1134       0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0       0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0       0  100%   /home
a3cf
➜  ~ df -h |awk '{print $1}'
Filesystem
/dev/disk1
devfs
map
map
➜  ~ df -h |head -2|tail -1|awk '{print $1}'
/dev/disk1
➜  ~ df -h |head -2|tail -1|awk '{print $5}'
83%


练习三

CPU idle 系统CPU剩余空闲率

➜  ~ top -l 1 |head -10|grep "CPU usage"|awk "{print $7}"
CPU usage: 15.15% user, 25.75% sys, 59.9% idle
➜  ~ top -l 1 |head -10|grep "CPU usage"|awk "{print $7}"
CPU usage: 14.51% user, 25.80% sys, 59.67% idle


练习四 awk

➜  practice_awk awk -F ","  '{sum+=$1;print sum}' data |tail -1
368
➜  practice_awk awk -F ","  '{sum+=$2}END{print sum/NR}' data
7.73333
➜  practice_awk awk -F ","  '{if($1>10){sum+=$2}}END{print sum}' data
85


练习五 sed 修改

每一行的第一个匹配到的替换

➜ practice_sed sed -i -E ‘s/0/X/‘ data

全局替换

➜ practice_sed sed -i -E ‘s/0/X/g’ data

行筛选从1~10,不仅支持数字,还支持匹配到字符行

➜ practice_sed sed -i -E ‘1,10s/0/X/g’ data

还支持匹配到字符行

➜ practice_sed sed -i -E ‘1,/aa/s/0/X/g’ data

删除前10行

➜ practice_sed sed -i -E ‘1,10d’ data

练习6

➜ practice_statistic find . -name build.xml

过滤掉连续相同的行

➜ practice_statistic find . -name build.xml|xargs cat |grep mis|awk -F ‘[<>]’ ‘{print $3}’|uniq

uniq -c 多少个

awk -F 以什么分隔

➜ practice_statistic find . -name build.xml|xargs cat |grep mis|awk -F ‘[<>]’ ‘{print $3}’|sort|uniq -c|sort -k1,1 -r

-r 反向排序

sort -n 指定按数字排序,否则按字符串

wc -l XXX

查看文件多少行

suffix=$(date +%Y%m%d%H%M)
fn="date.$suffix"

if [ -f $fn ]; then
rm -f $fn
#statements
fi

for((i=0;i<30;i++))
do
a=$(($RANDOM%20))
b=$((19-$a))
echo $a,$b >> $fn.txt
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux