启发的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
➜ ~ 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