SHELL中的部分命令---cut、sort、uniqtr、tr、test

    技术2022-07-13  77

    一、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. " }

     

    Processed: 0.008, SQL: 9