1. 程式人生 > >linux Vim編輯器、shell指令碼、流程控制語句和計劃任務

linux Vim編輯器、shell指令碼、流程控制語句和計劃任務

本章主要講解shell指令碼,vim編輯器

1. 強制儲存退出 wq!

2. 查詢主機名稱 hostname

3. 在vim中常用的命令 dd刪除游標所在行;5dd刪除自游標所在行開始往下數五行;yy複製游標所在行;5yy複製自游標所在行開始往下數5行內容;n顯示搜尋命令定位到下一個字串;N顯示搜素命令定位到上一個字串;u撤銷操作;p將之前dd或yy的資料貼上到當前游標所在行。

4. 重啟網絡卡服務:systemctl restart network

5. .repo表示軟體倉庫的配置檔案

6. 指令碼lwy.sh基本格式注意事項:   #!/bin/bash         //表示指令碼宣告,當前指令碼誰可以解讀

                                                        #指令碼功能介紹

                                                        echo $0               //指令碼名稱

                                                        echo $1,$3,$5     //執行指令碼時輸入的第1、3、5個引數

                                                        echo $#               //接收引數的個數

                                                         echo $*               //接收的全部引數

                                                         echo $?              //上一條指令是否成功

    ...>>bash lwy.sh aaa  bbb  ccc ddd eee fff ggg

7. 判斷語句[ 命令 ]。判斷一個路徑是否存在[ -d /etc ],語句執行完之後命令列沒有輸出提示,執行上一個語句執行是否成功命令:echo $? 如果輸出0則表示此路徑存在,輸出為1表示路徑並不存在。[]中-f表示判斷是否是一般檔案,比如txt格式檔案等;-r表示判斷是否有讀取許可權。注意:在[]的判斷語句中,命令的內容前後都有空格。

8. 輸出當前使用者echo $USER;舉個例子 [ $USER != root]

                                                                  echo $?    輸出為1,表示上一句執行失敗,說明當前使用者為root

9. 邏輯運算子。與&&,在前邊語句成功的情況下執行後邊語句;或||,在前邊語句執行失敗的情況下執行後邊語句。

10. 整數比較運算子。 -eq 是否等於;-ne是否不等於;-gt是否大於;-lt是否小於;-le是否小於或等於;-ge是否大於或等於。

11. [ `free -m | grep Mem: | awk '{print $4}'` -le 1024 ] && echo "小於1M" || echo "大於1M"  執行free -m命令的結果篩選Mem:行和第四列的資料,判斷此資料是否小於1024,如果小於1024則記憶體不足1M,否則輸出大於1M。

12. 在寫指令碼的時候往往需要使用一些變數,判斷此變數是否已經被使用:[ -z $HAHO ]

                                                                                                                      echo $?  如果輸出為0,則表示此變數未被使用

13. if語句之單分支。DIR = /etc/hoho

                                 if [ ! -e $DIR ];then

                                 mkdir -p $DIR

                                 fi

 例子2:                   ping -c 3 -i 0.2 -W 3 $1 &> /dev/null

                                 if [ $? -eq 0 ];then

                                 echo "$1 線上"

                                 else

                                 echo "$1 不線上"

                                 fi

14. if語句之多分支。

                                 read -p "Enter:" HAHO

                                 if [  ] && [  ];then

                                 echo "xxxxx"

                                 elif [  ] && [  ];then

                                 echo "xxxx"

                                 else

                                 echo "xxxx"

                                 fi

15. for迴圈。            read -p "Enter:" PASSWD

                                 for UNAME in `Cat.txt`

                                 do

                                 ///////

                                 done

16. `命令` = $(命令)

17. while迴圈。        while []

                                  do

                                  done

18. case語句。          read -p "Enter:" KEY

                                  case "$KEY" in

                                  [a-z] | [A-Z])

                                  echo "字母"

                                  ;;

                                  [0-9])

                                  echo "數字"

                                  ;;

                                  *)

                                  echo "其他"

                                  esac

19. 計劃任務。一次性任務at   週期性任務crond(其實crond是服務名稱,而crontab是配置此服務的工具命令,同樣的targetd是服務名稱)

      at 19:25 進入互動命令模式,reboot重啟計算機,然後ctrl+d儲存並退出,c只是退出並不儲存。此時制定計劃任務在19點25分重啟計算機。

      at -l檢視已制定的計劃任務。第一列為任務編號。at -c 編號 表示檢視具體編號任務資訊。

      atrm 編號  表示刪除具體編號任務計劃。

20. 週期任務計劃。基本格式為: 分 時 日 月 星期 命令。在設定時間時,不設定的地方用*佔位,命令是使用絕對路徑命令。檢視命令絕對路徑用whereis,例子:whereis reboot。日和星期不能同時設定。

      */2  表示每隔2(分鐘、小時、天)。

      crontab -e同vim一樣,編輯一個自己的計劃任務。寫個例子:  13 3 * * 3 /usr/bin/tar czvf xx.tar.gz 需打包的檔案路徑。  這個命令意思是每週三的3點13分,將某路徑下檔案打包成xx壓縮包。

      contab -l表示檢視已制定的週期任務。