리눅스 높은 수준의 명령을 사용하여

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个字符结束

2, getopts가

매개 변수를 지정 getopts가이 값을 얻는다. 역할 유사한 옵션 getopt는도 있습니다, 당신은 바이두가 차이를 볼 소유 할 수 있습니다.

[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

위의 스크립트에서, getopts가 잠시 후면 키가 필요하며, 따옴표 H, p는 선택 사항 정의, 해당 명령 줄 -h, -p 및 기타 특정 옵션이며, optname이 사용자 정의입니다, 사건 후 해당 문에 긴 변수 이름과 참조로. 옵션을 할당 할 필요가있는 경우 문에서, 얼마나 많은 라인에 기록되고, 일반 서신 다시 getopts가 옵션을 지정했습니다.

3 주 : fgrep 명령

[root@mysql ~]# grep -c "hello" test.txt    #显示hello字符在test.txt文件中匹配行的数目
[root@mysql ~]# grep -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 에코 출력 색상

# 字背景颜色范围: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 나오지 GET 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

#结果输出:
python
java
php
# 使用-拼接 
testinfo="python,java,php";for i in $testinfo;do echo $testinfo | tr ',' '-'; done
python-java-php

9, 접속 시간 대기 수를 볼

ss -tan state time-wait | wc -l

10, 금회 수집 시스템

[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

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

--------이 문서의 끝 지금까지 읽어 주셔서 감사합니다 --------

추천

출처blog.51cto.com/14154700/2464231