Linux就該這麼學【Part four:Vim編輯器與Shell命令腳本】

4.1 Vim文本編輯器

在這裏插入圖片描述

命令模式:控制光標移動,可對文本進行復制、粘貼、刪除和查找等工作。
刪除(剪切)光標所在整行 dd
刪除(剪切)從光標處開始的5行 5dd
複製光標所在整行 yy
複製從光標處開始的5行 5yy
顯示搜索命令定位到的下一個字符串 n
顯示搜索命令定位到的上一個字符串 N
撤銷上一步的操作 u
p 將之前刪除(dd)或複製(yy)過的數據粘貼到光標後面 p

輸入模式:正常的文本錄入。

末行模式:保存或退出文檔,以及設置編輯環境。
保存 :w
退出 :q
強制退出(放棄對文檔的修改內容) :q!
強制保存退出 :wq!
顯示行號 :set nu
不顯示行號 :set nonu
執行該命令 :命令
跳轉到該行 :整數
將當前光標所在行的第一個one替換成two :s/one/two
將當前光標所在行的所有one替換成two :s/one/two/g
將全文中的所有one替換成two :%s/one/two/g
字符串 在文本中從下至上搜索該字符串 ?
字符串 在文本中從上至下搜索該字符串 /

4.1.1 編寫簡單文檔

  1. 創建一個文檔 vim practice.txt
    在這裏插入圖片描述

  2. 打開practice.txt文檔後,默認進入的是Vim編輯器的命令模式。此時只能執行該模式下的命令,而不能隨意輸入文本內容,我們需要切換到輸入模式纔可以編寫文檔。

    a、i、o三個鍵從命令模式切換到輸入模式
    a鍵與i鍵分別是在光標後面一位和光標當前位置切換到輸入模式
    o鍵則是在光標的下面再創建一個空行

在這裏插入圖片描述

  1. 輸入內容
    在這裏插入圖片描述

  2. 在編寫完之後,想要保存並退出,必須先敲擊鍵盤Esc鍵從輸入模式返回命令模式
    在這裏插入圖片描述

  3. :wq!切換到末行模式才能完成保存退出操作,如圖4-6所示。:wq!切換到末行模式才能完成保存退出操作,如圖4-6所示。
    在這裏插入圖片描述

在這裏插入圖片描述

  1. 繼續編輯這個文檔。因爲要在原有文本內容的下面追加內容,所以在命令模式中敲擊o鍵進入輸入模式更會高效
    在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

因爲此時已經修改了文本內容,所以Vim編輯器在我們嘗試直接退出文檔而不保存的時候就會拒絕我們的操作了。此時只能強制退出纔可以結束本次輸入操作
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.1.2 配置主機名稱

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.1.3 配置網卡信息

網卡IP地址配置的是否正確是兩臺服務器是否可以相互通信的前提(編輯網卡配置文件)

RHEL 7中,網卡配置文件的前綴則以ifcfg開始,加上網卡名稱共同組成了網卡配置文件的名字
例如ifcfg-eno16777736

現在有一個名稱爲ifcfg-eno16777736的網卡設備,我們將其配置爲開機自啓動,並且IP地址、子網、網關等信息由人工指定

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

執行重啓網卡設備的命令(在正常情況下不會有提示信息),然後通過ping命令測試網絡能否聯通。由於在Linux系統中ping命令不會自動終止,因此需要手動按下Ctrl-c鍵來強行結束進程。

[root@linuxprobe network-scripts]# systemctl restart network
[root@linuxprobe network-scripts]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.081 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.083 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.059 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.097 ms
^C
— 192.168.10.10 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.059/0.080/0.097/0.013 ms

4.1.4 配置Yum倉庫

第1步:進入到/etc/yum.repos.d/目錄中(因爲該目錄存放着Yum軟件倉庫的配置文件)。
在這裏插入圖片描述
第2步:使用Vim編輯器創建一個名爲rhel7.repo的新配置文件(文件名稱可隨意,但後綴必須爲.repo),逐項寫入下面加粗的配置參數並保存退出(不要寫後面的中文註釋)。

[rhel-media] :Yum軟件倉庫唯一標識符,避免與其他倉庫衝突。
name=linuxprobe:Yum軟件倉庫的名稱描述,易於識別倉庫用處。
baseurl=file:///media/cdrom:提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)。
enabled=1:設置此源是否可用;1爲可用,0爲禁用。
gpgcheck=1:設置此源是否校驗文件;1爲校驗,0爲不校驗。
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release:若上面參數開啓校驗,那麼請指定公鑰文件地址。

在這裏插入圖片描述
第3步:按配置參數的路徑掛載光盤,並把光盤掛載信息寫入到/etc/fstab文件中。
在這裏插入圖片描述
第4步:使用“yum install httpd -y”命令檢查Yum軟件倉庫是否已經可用。
在這裏插入圖片描述
創建掛載點後進行掛載操作,並設置成開機自動掛載(詳見第6章)。嘗試使用Yum軟件倉庫來安裝Web服務,出現Complete!則代表配置正確:

4.2 編寫Shell腳本

交互式(Interactive):用戶每輸入一條命令就立即執行。
批處理(Batch):由用戶事先編寫好一個完整的Shell腳本,Shell會一次性執行腳本中諸多的命令。

查看SHELL變量可以發現當前系統已經默認使用Bash作爲命令行終端解釋器了:
在這裏插入圖片描述

4.2.1 編寫簡單的腳本

例如,如果想查看當前所在工作路徑並列出當前目錄下所有的文件及屬性信息,實現這個功能的腳本應該類似於下面這樣:
在這裏插入圖片描述

在這裏插入圖片描述
Shell腳本文件的名稱可以任意,但爲了避免被誤以爲是普通文件,建議將.sh後綴加上,以表示是一個腳本文件。在上面的這個example.sh腳本中實際上出現了三種不同的元素:第一行的腳本聲明(#!)用來告訴系統使用哪種Shell解釋器來執行該腳本;第二行的註釋信息(#)是對腳本功能和某些命令的介紹信息,使得自己或他人在日後看到這個腳本內容時,可以快速知道該腳本的作用或一些警告信息;第三、四行的可執行語句也就是我們平時執行的Linux命令了
在這裏插入圖片描述

除了上面用bash解釋器命令直接運行Shell腳本文件外,第二種運行腳本程序的方法是通過輸入完整路徑的方式來執行。但默認會因爲權限不足而提示報錯信息,此時只需要爲腳本文件增加執行權限即可
在這裏插入圖片描述

4.2.2 接收用戶的參數

Linux系統中的Shell腳本語言內設了用於接收參數的變量,變量之間可以使用空格間隔

$0對應的是當前Shell腳本程序的名稱
$#對應的是總共有幾個參數
$*對應的是所有位置的參數值
$?對應的是顯示上一次命令的執行返回值
而$1、$2、$3……則分別對應着第N個位置的參數值

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.2.3 判斷用戶的參數

系統在執行mkdir命令時會判斷用戶輸入的信息,即判斷用戶指定的文件夾名稱是否已經存在,如果存在則提示報錯;反之則自動創建。
Shell腳本中的條件測試語法可以判斷表達式是否成立,若條件成立則返回數字0,否則便返回其他隨機數值。條件表達式兩邊均應有一個空格

在這裏插入圖片描述

文件測試即使用指定條件來判斷文件是否存在或權限是否滿足等情況的運算符

測試文件是否爲目錄類型 -d
測試文件是否存在 -e
判斷是否爲一般文件 -f
測試當前用戶是否有權限讀取 -r
測試當前用戶是否有權限寫入 -w
測試當前用戶是否有權限執行 -x

下面使用文件測試語句來判斷/etc/fstab是否爲一個目錄類型的文件,然後通過Shell解釋器的內設$?變量顯示上一條命令執行後的返回值。如果返回值爲0,則目錄存在;如果返回值爲非零的值,則意味着目錄不存在:

在這裏插入圖片描述

再使用文件測試語句來判斷/etc/fstab是否爲一般文件,如果返回值爲0,則代表文件存在,且爲一般文件:
在這裏插入圖片描述

邏輯語句用於對測試結果進行邏輯分析 根據測試結果可實現不同的效果
例如在Shell終端中邏輯“與”的運算符號是&&,它表示當前面的命令執行成功後纔會執行它後面的命令,因此可以用來判斷/dev/cdrom文件是否存在,若存在則輸出Exist字樣。
在這裏插入圖片描述

除了邏輯“與”外,還有邏輯“或”,它在Linux系統中的運算符號爲||,表示當前面的命令執行失敗後纔會執行它後面的命令,因此可以用來結合系統環境變量USER來判斷當前登錄的用戶是否爲非管理員身份:
在這裏插入圖片描述

第三種邏輯語句是“非”,在Linux系統中的運算符號是一個歎號(!),它表示把條件測試中的判斷結果取相反值。也就是說,如果原本測試的結果是正確的,則將其變成錯誤的;原本測試錯誤的結果則將其變成正確的。

我們現在切換回到root管理員身份,再判斷當前用戶是否爲一個非管理員的用戶。由於判斷結果因爲兩次否定而變成正確,因此會正常地輸出預設信息:
在這裏插入圖片描述

當前我們正在登錄的即爲管理員用戶—root。下面這個示例的執行順序是,先判斷當前登錄用戶的USER變量名稱是否等於root,然後用邏輯運算符“非”進行取反操作,效果就變成了判斷當前登錄的用戶是否爲非管理員用戶了。最後若條件成立則會根據邏輯“與”運算符輸出user字樣;或條件不滿足則會通過邏輯“或”運算符輸出root字樣,而如果前面的&&不成立纔會執行後面的||符號。
在這裏插入圖片描述

整數比較運算符僅是對數字的操作,不能將數字與字符串、文件等內容一起操作,而且不能想當然地使用日常生活中的等號、大於號、小於號等來判斷。因爲等號與賦值命令符衝突,大於號和小於號分別與輸出重定向命令符和輸入重定向命令符衝突。因此一定要使用規範的整數比較運算符來進行操作

是否等於 -eq
是否不等於 -ne
是否大於 -gt
是否小於 -lt
是否等於或小於 -le
是否大於或等於 -ge
在這裏插入圖片描述

在2.4節曾經講過free命令,它可以用來獲取當前系統正在使用及可用的內存量信息。接下來先使用free -m命令查看內存使用量情況(單位爲MB),然後通過grep Mem:命令過濾出剩餘內存量的行,再用awk '{print $4}'命令只保留第四列,最後用FreeMem=語句的方式把語句內執行的結果賦值給變量。
在這裏插入圖片描述

上面用於獲取內存可用量的命令以及步驟可能有些“超綱”了,如果不能理解領會也不用擔心,接下來纔是重點。我們使用整數運算符來判斷內存可用量的值是否小於1024,若小於則會提示“Insufficient Memory”(內存不足)的字樣:
在這裏插入圖片描述

字符串比較語句用於判斷測試字符串是否爲空值,或兩個字符串是否相同。它經常用來判斷某個變量是否未被定義(即內容爲空值)

=	比較字符串內容是否相同
!=	比較字符串內容是否不同
-z	判斷字符串內容是否爲空

在這裏插入圖片描述

再嘗試引入邏輯運算符來試一下。當用於保存當前語系的環境變量值LANG不是英語(en.US)時,則會滿足邏輯測試條件並輸出“Not en.US”(非英語)的字樣:
在這裏插入圖片描述

4.3 流程控制語句

4.3.1 if條件測試語句

if條件測試語句可以讓腳本根據實際情況自動執行相應的命令
從技術角度來講,if語句分爲單分支結構、雙分支結構、多分支結構;其複雜度隨着靈活度一起逐級上升。

if條件語句的單分支結構由if、then、fi關鍵詞組成,而且只在條件成立後才執行預設的命令,相當於口語的“如果……那麼……”。單分支的if語句屬於最簡單的一種條件判斷結構

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

if條件語句的雙分支結構由if、then、else、fi關鍵詞組成,它進行一次條件匹配判斷,如果與條件匹配,則去執行相應的預設命令;反之則去執行不匹配時的預設命令

在這裏插入圖片描述

下面使用雙分支的if條件語句來驗證某臺主機是否在線,然後根據返回值的結果,要麼顯示主機在線信息,要麼顯示主機不在線信息。這裏的腳本主要使用ping命令來測試與對方主機的網絡聯通性,而Linux系統中的ping命令不像Windows一樣嘗試4次就結束,因此爲了避免用戶等待時間過長,需要通過-c參數來規定嘗試的次數,並使用-i參數定義每個數據包的發送間隔,以及使用-W參數定義等待超時時間。

在這裏插入圖片描述

我們在4.2.3小節中用過??變量,作用是顯示上一次命令的執行返回值。若前面的那條語句成功執行,則?變量會顯示數字0,反之則顯示一個非零的數字(可能爲1,也可能爲2,取決於系統版本)。因此可以使用整數比較運算符來判斷$?變量是否爲0,從而獲知那條語句的最終判斷情況。這裏的服務器IP地址爲192.168.10.10,我們來驗證一下腳本的效果:

在這裏插入圖片描述

if條件語句的多分支結構由if、then、else、elif、fi關鍵詞組成,它進行多次條件匹配判斷,這多次判斷中的任何一項在匹配成功後都會執行相應的預設命令,相當於口語的“如果……那麼……如果……那麼……”。

在這裏插入圖片描述

下面使用多分支的if條件語句來判斷用戶輸入的分數在哪個成績區間內,然後輸出如Excellent、Pass、Fail等提示信息。在Linux系統中,read是用來讀取用戶輸入信息的命令,能夠把接收到的用戶輸入信息賦值給後面的指定變量,-p參數用於向用戶顯示一定的提示信息。在下面的腳本示例中,只有當用戶輸入的分數大於等於85分且小於等於100分,才輸出Excellent字樣;若分數不滿足該條件(即匹配不成功),則繼續判斷分數是否大於等於70分且小於等於84分,如果是,則輸出Pass字樣;若兩次都落空(即兩次的匹配操作都失敗了),則輸出Fail字樣:

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

當用戶輸入的分數分別爲30和200時,其結果如下:
在這裏插入圖片描述
爲什麼輸入的分數爲200時,依然顯示Fail呢?原因很簡單—沒有成功匹配腳本中的兩個條件判斷語句,因此自動執行了最終的兜底策略。可見,這個腳本還不是很完美,建議讀者自行完善這個腳本,使得用戶在輸入大於100或小於0的分數時,給予Error報錯字樣的提示。

4.3.2 for條件循環語句

for循環語句允許腳本一次性讀取多個信息,然後逐一對信息進行操作處理,當要處理的數據有範圍時,使用for循環語句再適合不過了

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

接下來編寫Shell腳本Example.sh。在腳本中使用read命令讀取用戶輸入的密碼值,然後賦值給PASSWD變量,並通過-p參數向用戶顯示一段提示信息,告訴用戶正在輸入的內容即將作爲賬戶密碼。在執行該腳本後,會自動使用從列表文件users.txt中獲取到所有的用戶名稱,然後逐一使用“id 用戶名”命令查看用戶的信息,並使用$?判斷這條命令是否執行成功,也就是判斷該用戶是否已經存在。

需要多說一句,/dev/null是一個被稱作Linux黑洞的文件,把輸出信息重定向到這個文件等同於刪除數據(類似於沒有回收功能的垃圾箱),可以讓用戶的屏幕窗口保持簡潔。

在這裏插入圖片描述

在這裏插入圖片描述

執行批量創建用戶的Shell腳本Example.sh,在輸入爲賬戶設定的密碼後將由腳本自動檢查並創建這些賬戶。由於已經將多餘的信息通過輸出重定向符轉移到了/dev/null黑洞文件中,因此在正常情況下屏幕窗口除了“用戶賬戶創建成功”(Create success)的提示後不會有其他內容。
在這裏插入圖片描述
在Linux系統中,/etc/passwd是用來保存用戶賬戶信息的文件。如果想確認這個腳本是否成功創建了用戶賬戶,可以打開這個文件,看其中是否有這些新創建的用戶信息。
在這裏插入圖片描述

您還記得在學習雙分支if條件語句時,用到的那個測試主機是否在線的腳本麼?既然我們現在已經掌握了for循環語句,不妨做些更酷的事情,比如嘗試讓腳本從文本中自動讀取主機列表,然後自動逐個測試這些主機是否在線。

首先創建一個主機列表文件ipadds.txt:

在這裏插入圖片描述
然後前面的雙分支if條件語句與for循環語句相結合,讓腳本從主機列表文件ipadds.txt中自動讀取IP地址(用來表示主機)並將其賦值給HLIST變量,從而通過判斷ping命令執行後的返回值來逐個測試主機是否在線。腳本中出現的$(命令)是一種完全類似於第3章的轉義字符中反引號命令的Shell操作符,效果同樣是執行括號或雙引號括起來的字符串中的命令
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.3.3 while條件循環語句

while條件循環語句是一種讓腳本根據某些條件來重複執行命令的語句,它的循環結構往往在執行前並不確定最終執行的次數,完全不同於for循環語句中有目標、有範圍的使用場景。while循環語句通過判斷條件測試的真假來決定是否繼續執行命令,若條件爲真就繼續執行,爲假就結束循環。

在這裏插入圖片描述
接下來結合使用多分支的if條件測試語句與while條件循環語句,編寫一個用來猜測數值大小的腳本Guess.sh。該腳本使用$RANDOM變量來調取出一個隨機的數值(範圍爲0~32767),將這個隨機數對1000進行取餘操作,並使用expr命令取得其結果,再用這個數值與用戶通過read命令輸入的數值進行比較判斷。這個判斷語句分爲三種情況,分別是判斷用戶輸入的數值是等於、大於還是小於使用expr命令取得的數值。當前,現在這些內容不是重點,我們當前要關注的是while條件循環語句中的條件測試始終爲true,因此判斷語句會無限執行下去,直到用戶輸入的數值等於expr命令取得的數值後,這兩者相等之後才運行exit 0命令,終止腳本的執行。

在這裏插入圖片描述

在這裏插入圖片描述

在這個Guess.sh腳本中,我們添加了一些交互式的信息,從而使得用戶與系統的互動性得以增強。而且每當循環到let TIMES++命令時都會讓TIMES變量內的數值加1,用來統計循環總計執行了多少次。這可以讓用戶得知總共猜測了多少次之後,才猜對價格。

在這裏插入圖片描述

4.3.4 case條件測試語句

如果您之前學習過C語言,看到這一小節的標題肯定會會心一笑“這不就是switch語句嘛!”是的,case條件測試語句和switch語句的功能非常相似!case語句是在多個範圍內匹配數據,若匹配成功則執行相關命令並結束整個條件測試;而如果數據不在所列出的範圍內,則會去執行星號(*)中所定義的默認命令

在這裏插入圖片描述

在前文介紹的Guess.sh腳本中有一個致命的弱點—只能接受數字!您可以嘗試輸入一個字母,會發現腳本立即就崩潰了。原因是字母無法與數字進行大小比較,例如,“a是否大於等於3”這樣的命題是完全錯誤的。我們必須有一定的措施來判斷用戶的輸入內容,當用戶輸入的內容不是數字時,腳本能予以提示,從而免於崩潰。

通過在腳本中組合使用case條件測試語句和通配符(詳見第3章),完全可以滿足這裏的需求。接下來我們編寫腳本Checkkeys.sh,提示用戶輸入一個字符並將其賦值給變量KEY,然後根據變量KEY的值向用戶顯示其值是字母、數字還是其他字符。

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.4 計劃任務服務程序

經驗豐富的系統運維工程師可以使得Linux在無需人爲介入的情況下,在指定的時間段自動啓用或停止某些服務或命令,從而實現運維的自動化。儘管我們現在已經有了功能彪悍的腳本程序來執行一些批處理工作,但是,如果仍然需要在每天凌晨兩點敲擊鍵盤回車鍵來執行這個腳本程序,這簡直太痛苦了(當然,也可以訓練您的小貓在半夜按下回車鍵)。接下來,劉遄老師將向大家講解如何設置服務器的計劃任務服務,把週期性、規律性的工作交給系統自動完成。

計劃任務分爲一次性計劃任務與長期性計劃任務,大家可以按照如下方式理解。

一次性計劃任務:今晚11點30分開啓網站服務。

長期性計劃任務:每週一的凌晨3點25分把/home/wwwroot目錄打包備份爲backup.tar.gz。

顧名思義,一次性計劃任務只執行一次,一般用於滿足臨時的工作需求。我們可以用at命令實現這種功能,只需要寫成“at 時間”的形式就可以。如果想要查看已設置好但還未執行的一次性計劃任務,可以使用“at -l”命令;要想將其刪除,可以用“atrm 任務序號”。在使用at命令來設置一次性計劃任務時,默認採用的是交互式方法。例如,使用下述命令將系統設置爲在今晚23:30分自動重啓網站服務。

在這裏插入圖片描述

如果讀者想挑戰一下難度更大但簡捷性更高的方式,可以把前面學習的管道符(任意門)放到兩條命令之間,讓at命令接收前面echo命令的輸出信息,以達到通過非交互式的方式創建計劃一次性任務的目的。

在這裏插入圖片描述

如果我們不小心設置了兩個一次性計劃任務,可以使用下面的命令輕鬆刪除其中一個:

在這裏插入圖片描述

如果我們希望Linux系統能夠週期性地、有規律地執行某些具體的任務,那麼Linux系統中默認啓用的crond服務簡直再適合不過了。創建、編輯計劃任務的命令爲“crontab -e”,查看當前計劃任務的命令爲“crontab -l”,刪除某條計劃任務的命令爲“crontab -r”。另外,如果您是以管理員的身份登錄的系統,還可以在crontab命令中加上-u參數來編輯他人的計劃任務。

“分、時、日、月、星期 命令”
需要注意的是,如果有些字段沒有設置,則需要使用星號(*)佔位

在這裏插入圖片描述

分鐘	取值爲0~59的整數
小時	取值爲0~23的任意整數
日期	取值爲1~31的任意整數
月份	取值爲1~12的任意整數
星期	取值爲0~7的任意整數,其中0與7均爲星期日
命令	要執行的命令或程序腳本

假設在每週一、三、五的凌晨3點25分,都需要使用tar命令把某個網站的數據目錄進行打包處理,使其作爲一個備份文件。我們可以使用crontab -e命令來創建計劃任務。爲自己創建計劃任務無需使用-u參數,具體的實現效果的參數如crontab -l命令結果所示:

在這裏插入圖片描述

需要說明的是,除了用逗號(,)來分別表示多個時間段,例如“8,9,12”表示8月、9月和12月。還可以用減號(-)來表示一段連續的時間週期(例如字段“日”的取值爲“12-15”,則表示每月的12~15日)。以及用除號(/)表示執行任務的間隔時間(例如“*/2”表示每隔2分鐘執行一次任務)。

如果在crond服務中需要同時包含多條計劃任務的命令語句,應每行僅寫一條。例如我們再添加一條計劃任務,它的功能是每週一至週五的凌晨1點鐘自動清空/tmp目錄內的所有文件。尤其需要注意的是,在crond服務的計劃任務參數中,所有命令一定要用絕對路徑的方式來寫,如果不知道絕對路徑,請用whereis命令進行查詢,rm命令路徑爲下面輸出信息中加粗部分。

在這裏插入圖片描述

在crond服務的配置參數中,可以像Shell腳本那樣以#號開頭寫上註釋信息,這樣在日後回顧這段命令代碼時可以快速瞭解其功能、需求以及編寫人員等重要信息。

計劃任務中的“分”字段必須有數值,絕對不能爲空或是*號,而“日”和“星期”字段不能同時使用,否則就會發生衝突。

諸如crond在內的很多服務默認調用的是Vim編輯器,相信大家現在能進一步體會到在Linux系統中掌握Vim文本編輯器的好處了吧。所以請大家一定要在徹底掌握Vim編碼器之後再學習下一章。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章