1、awk

[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个字符结束[root@nginx ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg0 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)1 : CentOS Linux (0-rescue-caa6eb0d160246d39e7c615ab7f61304) 7 (Core)

2、getopts
getopts指定参数,获取值。同样还有一个作用类似的选项getopt,可以自行百度查看其区别。

[root@mysql nginx]# vim test.sh       #脚本内容如下#!/bin/bashwhile  getopts  “:h:p:”  optname;do        case “$optname”  in        “h”)        host_ip=$OPTARG        ;;        “p”)        host_port=$OPTARG        ;;        “?” )        echo “不知道此选项”        ;;        “:”)        echo “此选项没有值”        ;;        “*”)        echo “错误信息”        ;;        esacdoneecho "IP是${host_ip},端口是${host_port}"#执行效果如下[root@mysql nginx]# sh test.sh -h 192.168.20.2 -p 3306IP是192.168.20.2,端口是3306[root@mysql nginx]# sh a.sh -p 22 -h 192.168.20.3IP是192.168.20.3,端口是22

在上面的脚本中,while后面的getopts关键字是必须的,引号中的h、p是可选自定义的,对应的是命令行-h、-p等指定的选项,optname也是自定义的,只要和case语句后引用的变量名称对应即可。在case语句下,需要给哪些选项赋值,则写多少就行,一般和getopts后面指定的选项对应。
3、fgrep命令

[root@mysql ~]# fgrep -c "hello" test.txt    #显示hello字符在test.txt文件中匹配行的数目[root@mysql ~]# fgrep -l "hello" test.txt     #显示匹配hello的文件名

4、pkill

[root@mysql ~]# pkill -kill -t pts/1    #断掉连接当前终端的用户

5、脚本执行,获取脚本所在路径
大多数时候都是在脚本所在的目录下执行脚本,在脚本中使用pwd指令就可以获得所在路径,下面的语法是当没有在脚本所在路径执行脚本时,获取脚本所在路径的语法。

cur_dir=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)

6、echo输出颜色

# 字背景颜色范围: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 显示光标

7、sed获取域名解析的ip地址

nslookup www.baidu.com | sed -n -e '4,$p' | awk '/Address/{print $2}'

8、tr分隔符

testinfo="python,java,php"for i in $testinfo;do    echo $testinfo | tr ',' '\n'   #将逗号隔开,\n换行 done#结果输出:pythonjavaphp
# 使用-拼接 testinfo="python,java,php";for i in $testinfo;do echo $testinfo | tr ',' '-'; donepython-java-php

9、查看timewait的连接数

ss -tan state time-wait | wc -l

10、获取系统当前时间

[root@mysql ~]# date +%Y.%m.%d-%H:%M:%S2020.01.03-22:47:46[root@mysql ~]# date '+%F %T'2020-01-03 22:47:50

11、获取系统时间

[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

12、获取本机的内网IP

ip addr | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1

13、显示目录结构各级的权限

namei -om /var/log/messages
©著作权归作者所有:来自51CTO博客作者mb5c7bb57d7f7e8的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. 工具之_vim
  2. Linux运维入门教程05-02 (利用vi编辑器创建和编辑正文文件)
  3. Go进阶:如何开发多彩动感的终端UI应用
  4. iOS开发快捷键总览!
  5. linux终端命令
  6. 用查找替换命令删除文件中行首的空白字符
  7. 自学第七十九天
  8. Android——EditText金额输入控制位数(小数点前几位,小数点后几位)
  9. android存储本地数据大全

随机推荐

  1. Python 3.10 版本采纳了首个 PEP,中文翻译
  2. Python 为什么不用分号作终止符?
  3. 当我发现国际友人翻译了我的文章之后……
  4. 如何成为那一小部分优秀开发者?
  5. 我大学如何做到 “睡后收入”的?
  6. Excel公式太复杂?我花一晚上做了个格式化
  7. Python 3.10 的首个 PEP 诞生,内置类型 zi
  8. Python 为什么没有 main 函数?为什么我不
  9. Python 为什么要有 pass 语句?
  10. 送书 | 说三件小事情!