[root@mysql nginx]# cat access.log | awk 'substr($9,1,3)>200' #查看访问日志中,过滤非200状态码的日志请求 # substr($4,20) :表示从第四个字段里的第20个字符开始,一直到设定的分隔符 结束 # substr($4,1,3) :表示从第四个字段里的第1个字符开始,截取3个字符结束 # substr($4,3,6) : 表示从第四个字段里的第3个字符开始,截取6个字符结束
getopts指定参数,获取值。一样还有一个做用相似的选项getopt,能够自行百度查看其区别。php
[root@mysql nginx]# vim test.sh #脚本内容以下 #!/bin/bash while getopts “:h:p:” optname;do case “$optname” in “h”) host_ip=$OPTARG ;; “p”) host_port=$OPTARG ;; “?” ) echo “不知道此选项” ;; “:”) echo “此选项没有值” ;; “*”) echo “错误信息” ;; esac done echo "IP是${host_ip},端口是${host_port}" #执行效果以下 [root@mysql nginx]# sh test.sh -h 192.168.20.2 -p 3306 IP是192.168.20.2,端口是3306 [root@mysql nginx]# sh a.sh -p 22 -h 192.168.20.3 IP是192.168.20.3,端口是22
在上面的脚本中,while后面的getopts关键字是必须的,引号中的h、p是可选自定义的,对应的是命令行-h、-p等指定的选项,optname也是自定义的,只要和case语句后引用的变量名称对应便可。在case语句下,须要给哪些选项赋值,则写多少就行,通常和getopts后面指定的选项对应。java
[root@mysql ~]# grep -c "hello" test.txt #显示hello字符在test.txt文件中匹配行的数目 [root@mysql ~]# grep -l "hello" test.txt #显示匹配hello的文件名
[root@mysql ~]# pkill -kill -t pts/1 #断掉链接当前终端的用户
大多数时候都是在脚本所在的目录下执行脚本,在脚本中使用pwd指令就能够得到所在路径,下面的语法是当没有在脚本所在路径执行脚本时,获取脚本所在路径的语法。python
cur_dir=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
# 字背景颜色范围:30—–37 echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m" # 字背景颜色范围:40—–47 echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 红底白字 \033[0m" echo -e "\033[42;37m 绿底白字 \033[0m" echo -e "\033[43;37m 黄底白字 \033[0m" echo -e "\033[44;37m 蓝底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天蓝底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m" # 最后控制选项 \33[0m 关闭全部属性 \33[1m 设置高亮度 \33[4m 下划线 \33[5m 闪烁 \33[7m 反显 \33[8m 消隐 \33[30m — \33[37m 设置前景色 \33[40m — \33[47m 设置背景色 \33[nA 光标上移n行 \33[nB 光标下移n行 \33[nC 光标右移n行 \33[nD 光标左移n行 \33[y;xH设置光标位置 \33[2J 清屏 \33[K 清除从光标到行尾的内容 \33[s 保存光标位置 \33[u 恢复光标位置 \33[?25l 隐藏光标 \33[?25h 显示光标
nslookup www.baidu.com | sed -n -e '4,$p' | awk '/Address/{print $2}'
testinfo="python,java,php" for i in $testinfo;do echo $testinfo | tr ',' '\n' #将逗号隔开,\n换行 done #结果输出: python java php
# 使用-拼接 testinfo="python,java,php";for i in $testinfo;do echo $testinfo | tr ',' '-'; done python-java-php
ss -tan state time-wait | wc -l
[root@mysql ~]# date +%Y.%m.%d-%H:%M:%S 2020.01.03-22:47:46 [root@mysql ~]# date '+%F %T' 2020-01-03 22:47:50
[root@mysql ~]# date -d '-30 minutes' "+%F %T" #获取三十分钟前的时间 2020-01-03 22:20:56 [root@mysql ~]# date -d yesterday "+%F %T" #获取前一天的时间 2020-01-02 22:51:45
ip addr | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1
namei -om /var/log/messages
———————— 本文至此结束,感谢阅读 ————————mysql