- 对文件的操作
ls, cd,pwd, mkdir,rmdir, cp(复制文件与目录),rm(删除文件与目录),mv(移动文件与目录)
- 对网络的操作
ping:测试网络连接情况
ping ip
ping ip -c ping次数
ping ip -l 每次ping时间间隔
netstat:打印linux网络系统的状态信息
netstat -ntlp
- 对性能的操作
top:持续监控系统性能
ps:查看进程信息
ps -aux
linux三剑客grep/sed/awk
查找文件内容包含root的行数
grep –n “root” test.txt
查找文件内容不包含root的行
grep –nv “root” test.txt
在第2行后添加newline
sed -e '2a drink tea ' test.txt
在第2行前添加newline
sed -e '2i drink tea ' test.txt
全局替换,将文件中root替换成hello
Sed –e 's/root/hello/g' test.txt
直接修改文件内容,将文件中root修改成hello
Sed –I 's/root/hello/g' test.txt
搜索/etc/passwd有root关键字的所有行,并显示对应的shell
awk -F: '/root/{print $7}' /etc/passwd
打印/etc/passwd的第二行信息
awk -F: 'NR==2{print $0}' /etc/passwd
自定义分隔符:echo "111 222|333 444|555 666"|awk 'BEGIN{RS="|"}{print $0}'
取内存值:ps -aux |awk '{print $6}' |grep -v 'RSS'|head -5
单行拆分为多行:echo $PATH |awk 'BEGIN{RS=":"}{print NR,$0}'
Bash 脚本
比较大小:
if [ 2==2 ];then echo "true";else echo "false";fi
if [ $a -eq $b ];then echo "equal";elif [ $a -lt $b ];then echo "small";elif [ $a -gt $b ];then echo "big";fi
循环读取文件并输出:
for i in $(cat 728.txt);do echo $i;done
while read line;do echo $line;done<728.txt
日志数据检索
找出log中的400 500 的报错有多少条
grep -E '(" 400|" 500)' access.log|wc –l
awk '$9~ /400|500/' access.log |wc –c
统计访问量最高的ip
awk '{print $6}' 1.log |sort |uniq -c |sort -nr|head -3
取平均响应时间:
awk '{print $(NF-3)}' 1.log|awk '{sum +=$0;}END{print sum/NR}'
grep "keyword" access.log | awk '{print $NF}' | grep -P '\d{3}?$' | awk '{sum += $0;}END {if(sum==0)print 0;else print sum/NR}'
linux 使cpu使用率达到100%
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
说明:
cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.
seq 1 N 用来生成1到N之间的数字
for i in `seq 1 N`; 就是循环执行命令,从1到N
dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU, 没有IO操作.
由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每个dd命令在不同的CPU上处理.
最终就实现所有CPU占用率100%