200 #查看訪問日志中,過濾非200狀態(tài)碼的日志請求 # substr($4,20) :表示從第四個字段?..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux高階命令使用

發(fā)布時間:2020-07-31 09:58:21 來源:網(wǎng)絡 閱讀:343 作者:warrent 欄目:系統(tǒng)運維

1、awk

[root@mysql nginx]# cat access.log | awk 'substr($9,1,3)>200'
#查看訪問日志中,過濾非200狀態(tài)碼的日志請求
# substr($4,20)  :表示從第四個字段里的第20個字符開始,一直到設定的分隔符 結束
# substr($4,1,3) :表示從第四個字段里的第1個字符開始,截取3個字符結束
# substr($4,3,6) : 表示從第四個字段里的第3個字符開始,截取6個字符結束

2、getopts

getopts指定參數(shù),獲取值。同樣還有一個作用類似的選項getopt,可以自行百度查看其區(qū)別。

[root@mysql nginx]# vim test.sh       #腳本內(nèi)容如下
#!/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}"

#執(zhí)行效果如下
[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后面指定的選項對應。

3、fgrep命令

[root@mysql ~]# fgrep -c "hello" test.txt    #顯示hello字符在test.txt文件中匹配行的數(shù)目
[root@mysql ~]# fgrep -l "hello" test.txt     #顯示匹配hello的文件名

4、pkill

[root@mysql ~]# pkill -kill -t pts/1    #斷掉連接當前終端的用戶

5、腳本執(zhí)行,獲取腳本所在路徑

大多數(shù)時候都是在腳本所在的目錄下執(zhí)行腳本,在腳本中使用pwd指令就可以獲得所在路徑,下面的語法是當沒有在腳本所在路徑執(zhí)行腳本時,獲取腳本所在路徑的語法。

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 清除從光標到行尾的內(nèi)容
  \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

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

9、查看timewait的連接數(shù)

ss -tan state time-wait | wc -l

10、獲取系統(tǒng)當前時間

[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、獲取系統(tǒng)時間

[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、獲取本機的內(nèi)網(wǎng)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

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI