1. 程式人生 > >Linux常見運維命令

Linux常見運維命令

最有效率的方式就是使用命令來操作和管理系統,那麼我們來介紹一些常用的運維命令

  • 過濾文字grep

    #在指定檔案中查詢特定字串
    [[email protected] ~] # grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    
    #結合管道使用
    [[email protected] ~] # cat /etc/passwd | grep root
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    
    #按正則表示式查詢
    [
    [email protected]
    ~] # grep -E "datadir | socket" my.cnf # -E 表示按指定的正則查詢 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock

    grep支援豐富的正則表示式,大家可以參考正則引數使用,這裡就不一一列舉了

  • 文字操作awk和sed
    awk和sed是Linux中強大的文字處理工具,使用簡單,處理效率非常高
    1 . awk命令用於文字處理,資料可以來自檔案或標準輸入,支援正則表示式等功能
     語法:awk  ‘{pattern + action}’  filename
        pattern表示awk在資料中查詢的內容,action指找到匹配內容時執行的一系列命令,{}用於將程式碼分塊

    [[email protected] ~] # awk '{print $0}' /etc/passwd | head     ## 與執行cat /etc/passwd結果相同
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    ................................
    ### awk命令內容很多,我們只舉幾個例子 ###
    ## 檢視file.text檔案(50行)內第10行到第15行的內容(企業面試)##
    [[email protected] ~] # awk '{if(NR>=10 && NR<15) print $1}' file.text
    10
    11
    12                         ## NR內建變量表示已經讀出的記錄數,就是行號,從1開始
    13
    14
    15
    ## 已知file.text檔案內容為:請從中過濾"luck"和字串"1234567",令輸出結果為:luck:1234567
    [
    [email protected]
    ~] # cat file.text i am luck,my qq is 1234567 [[email protected] ~] # awk -F '[ ,]+' '{print $3":"$7}' file.text luck:1234567 ## -F 指定分隔符,可指定一個或多個 ## '[ ,]+' 表示以空格或','分隔 ## $3":"$7 輸出第三、7欄位,中間以":"分隔 ######更多內容請參考https://www.cnblogs.com/ginvip/p/6352157.html######

    2 .sed命令是將編輯工作自動化的編輯器,使用sed可以完成資料行增刪改查並換等操作,sed命令可以列印指定的行至標準輸出或重定向至檔案,列印指定行使用p命令

    [[email protected] ~] # sed -n 2p /etc/passwd                   ## 列印第2行
    bin:x:1:1:bin:/bin:/sbin/nologin
    [[email protected] ~] # sed -n 2,5p /etc/passwd                 ## 列印第2~5行
    bin:x:1:1:bin:/bin:/sbin/nologin                             ## 我之前用的方式就很繁瑣,先head列印
    daemon:x:2:2:daemon:/sbin:/sbin/nologin                      ## 前5行,然後tail列印後4行才輸出2~5行
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    
  • 打包或解包檔案tar
    tar命令用於將檔案打包或解包,拓展名一般為.tar,指定特定引數可呼叫gzip或bzip2製作壓縮包或解開壓縮包,副檔名為.tar.gz或.tar.bz2

    #僅打包,不壓縮
    [[email protected] ~] # tar -cvf /tmp/etc.tar /etc              ## -c 打包
    #打包並使用gzip壓縮                                           ## -v 處理過程顯示相關資訊
    [[email protected] ~] # tar -zcvf /tmp/etc.tar.gz /etc          ## -f 指定的壓縮包名字,f後不能再加引數
    #打包並使用bzip2壓縮                                          ## -x 解壓壓縮包
    [[email protected] ~] # tar -jcvf /tmp/etc.tar.bz2 /etc         ## -j 壓縮或解壓bzip2包
    #解壓壓縮包到當前位置                                          ## -z 壓縮解壓gizp包
    [[email protected] ~] # tar -zxvf /tmp/etc.tar.gz .
    
  • 檢視系統負載uptime
    uptime命令主要用於獲取主機執行時間和查詢Linux系統負載等資訊,資訊顯示依次為:當前時間、系統已執行時間、當前連線使用者數、過去1/5/15分鐘內的平均負載,用法時分簡單,直接輸入uptime

    [[email protected] ~] # uptime
    08:41:21 up 1 min,  2 users,  load average: 0.70, 0.22, 0.08
      ## 2 users表示使用者連線數,是總連線數不是使用者數
    
  • 顯示系統記憶體狀態
    free命令顯示記憶體使用情況,包括實體記憶體,虛擬的交換檔案,共享記憶體區段,系統核心使用的緩衝區

    [[email protected] ~] # free -m                         ## 以M為單位檢視系統記憶體資源佔用情況
                  total        used        free      shared  buff/cache   available
    Mem:           1824         549         858          10         416        1082
    Swap:          2047           0        2047
    ########## free命令常用選項 ########
    free       -m                   # 以MB為單位顯示記憶體情況
               -s<間隔秒數>			# 持續觀察記憶體使用情況       
    
  • 單次任務at
    at可以設定在指定時間執行一個指定任務,可在與shell斷開的情況下執行,使用前確認系統開啟了atd服務

     systemctl status atd                              ## 檢視atd服務是否開啟
     # 明天17點鐘,輸出時間到指定檔案內
     [[email protected] ~] # at 17:20 tomorrow
     at> echo "hellooooo" >> /root/Desktop/file.txt    ## 這裡按ctrl+d,ctrl+d,ctrl+d
     at> <EOT>
     job 5 at Sat Oct 27 09:41:00 2018
     
     [[email protected] ~] # atq                          ## 檢視待執行的定時任務
     6	Sat Oct 27 09:49:00 2018 a root
     sf
     [[email protected] ~] # atrm 6                       ## atrm +工作號,刪除已設定的任務
     [[email protected] ~] # atq
     [[email protected] ~] # 
     [[email protected] ~] # at -c 6                      ## 顯示定時任務的內容,會顯示大量資訊,但內容在最下面