一、cut命令
cut -b ##指定显示字节 -d : ##指定:为分隔符 -f ##指定显示的列 5 第五列 ##3,5 3和5列 ##3-5 3到5列 ##-5 到第5列 ##5- 第五列以后 -c ##指定截取的字符(数字用法同-f) --complement ##反选 --output-delimiter=分隔符 ##指定输出的分隔符
二、sort和uniq
sort -n ##纯数字排序 -r ##倒序 -u ##去掉重复 -o ##输出到指定文件 -t ##指定分隔符 -k ##指定排序的列 uniq -c ##合并重复并统计重复个数 -d ##显示重复的行 -n ##显示唯一的行
练习:ls -l 目录 可以显示目录中所有文件的属性
请按照文件大小进行排序并找出最大的两个文件并显示其名称
三种方法如下:
web流量分析
检测apache服务器被谁访问的次数最多,显示访问者ip并显示访问次数
cat /etc/httpd/logs/access_log | cut -d " " -f 1 | uniq -c | grep `cat /etc/httpd/logs/access_log | cut -d " " -f 1 | uniq -c | sort -nr | awk '{print $1}' | head -n 1`
三、tr
tr ##字母的大小写转换 || ##不符合条件做动作 && ##符合条件做动作
四、test
test = [] ##[] 相当于test命令 "test $a = $b" = [ "$a" = "$b" ] ------- test的数字对比 ------ test = != -eq [ "$a" -eq "$b" ] ##等于 -ne [ "$a" -ne "$b" ] ##不等于 -le [ "$a" -le "$b" ] ##小于等于 -lt [ "$a" -le "$b" ] ##小于 -ge [ "$a" -ge "$b" ] ##大于等于 -gt [ "$a" -gt "$b" ] ##大于 ------- test的条件关系 ------ test [ "$a" -ne "$b" -a "$a" -gt "$b" ] ##-a必须条件都满足 [ "$a" -ne "$b" -o "$a" -gt "$b" ] ##-a条件至少满足一个 -a ##并且 -o ##或者 ------- test对空的判定 ------ test -n ##nozero 判定内容不为空 -z ##zero 判定内容为空 ------- test对文件的判定 ----- test -ef ##文件节点号是否一致(硬连) -nt ##文件1比文件2新 -ot ##文件1比文件2旧 -d ##目录 -S ##套接字 -L ##软连接 -e ##存在 -f ##普通文件 -b ##块设备 -c ##字符设备
检测网络
ping -c1 -w1 172.25.254.$1 &> /dev/null && echo yes || echo no
编写监控脚本
当/使用量超过80%发送警告邮件到root用户的邮箱中
练习:
脚本 file_check.sh 内容如下:
#!/bin/bash read -p "input test file: " TEST_FILE [ -z "$TEST_FILE " ] && { echo "error: not find file , please input test file!" } || { [ -e "$TEST_FILE " ] && { file "$TEST_FILE" | cut -d " " -f 2 } || echo "error: the file not exits. " }