[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