2021-05-12 14:32:11
RHCSA 系列(四): 編輯文字檔案及分析文字
作為系統管理員的日常職責的一部分,每個系統管理員都必須處理文字檔案,這包括編輯已有檔案(大多可能是組態檔),或建立新的檔案。有這樣一個說法,假如你想在 Linux 世界中挑起一場聖戰,你可以詢問系統管理員們,什麼是他們最喜愛的編輯器以及為什麼。在這篇文章中,我們並不打算那樣做,但我們將向你呈現一些技巧,這些技巧對使用兩款在 RHEL 7 中最為常用的文字編輯器: nano(由於其簡單和易用,特別是對於新手來說)和 vi/m(由於其自身的幾個特色使得它不僅僅是一個簡單的編輯器)來說都大有裨益。我確信你可以找到更多的理由來使用其中的一個或另一個,或許其他的一些編輯器如 emacs 或 pico。這完全取決於你自己。
RHCSA: 使用 Nano 和 Vim 編輯文字檔案 – Part 4
使用 Nano 編輯器來編輯檔案
要啟動 nano,你可以在命令提示字元下輸入 nano
,或可選地跟上一個檔名(在這種情況下,若檔案存在,它將在編輯模式中被開啟)。若檔案不存在,或我們省略了檔名, nano 也將在編輯模式下開啟,但將為我們開啟一個空白屏以便開始輸入:
Nano 編輯器
正如你在上一張圖片中所見的那樣, nano 在螢幕的底部呈現出一些可以通過指定的快捷鍵來觸發的功能(^,即插入記號,代指 Ctrl 鍵)。它們中的一些是:
- Ctrl + G: 觸發一個幫助選單,帶有一個關於功能和相應的描述的完整列表;
Nano 編輯器幫助選單
- Ctrl + O: 儲存更改到一個檔案。它可以讓你用一個與原始檔相同或不同的名稱來儲存該檔案,然後按 Enter 鍵來確認。
Nano 編輯器的儲存更改模式
- Ctrl + X: 離開當前檔案,假如更改沒有被儲存,則它們將被丟棄;
- Ctrl + R: 通過指定一個完整的檔案路徑,讓你選擇一個檔案來將該檔案的內容插入到當前檔案中;
Nano: 插入檔案內容到主檔案中
上圖的操作將把 /etc/passwd
的內容插入到當前檔案中。
- Ctrl + K: 剪下當前行;
- Ctrl + U: 貼上;
- Ctrl + C: 取消當前的操作並返回先前的螢幕;
為了輕鬆地在開啟的檔案中瀏覽, nano 提供了下面的功能:
- Ctrl + F 和 Ctrl + B 分別先前或向後移動游標;而 Ctrl + P 和 Ctrl + N 則分別向上或向下移動一行,功能與箭頭鍵相同;
- Ctrl + space 和 Alt + space 分別向前或向後移動一個單詞;
最後,
- 假如你想將游標移動到文件中的特定位置,使用 Ctrl + _ (下劃線) 並接著輸入 X,Y 將準確地帶你到 第 X 行,第 Y 列。
在 nano 中定位到具體的行和列
上面的例子將帶你到當前文件的第 15 行,第 14 列。
假如你可以回憶起你早期的 Linux 歲月,特別是當你剛從 Windows 遷移到 Linux 中,你就可能會同意:對於一個新手來說,使用 nano 來開始學習是最好的方式。
使用 Vim 編輯器來編輯檔案
Vim 是 vi 的加強版本,它是 Linux 中一個著名的文字編輯器,可在所有相容 POSIX 的 *nix 系統中獲取到,例如在 RHEL 7 中。假如你有機會並可以安裝 Vim,請繼續;假如不能,這篇文章中的大多數(若不是全部)的提示也應該可以正常工作。
Vim 的一個出眾的特點是可以在多個不同的模式中進行操作:
- 命令模式(Command Mode)將允許你在檔案中跳轉和輸入命令,這些命令是由一個或多個字母組成的簡潔且大小寫敏感的組合。假如你想重複執行某個命令特定次數,你可以在這個命令前加上需要重複的次數(這個規則只有極少數例外)。例如,
yy
(或Y
,yank 的縮寫)可以複製整個當前行,而4yy
(或4Y
)則複製整個從當前行到接下來的 3 行(總共 4 行)。 - 我們總是可以通過敲擊
Esc
鍵來進入命令模式(無論我們正工作在哪個模式下)。 - 在末行模式(Ex Mode)中,你可以操作檔案(包括儲存當前檔案和執行外部的程式或命令)。要進入末行模式,你必須從命令模式中(換言之,輸入
Esc
+:
)輸入一個冒號(:
),再直接跟上你想使用的末行模式命令的名稱。 - 對於插入模式(Insert Mode),可以輸入字母
i
進入,然後只需要輸入文字即可。大多數的擊鍵結果都將出現在螢幕中的文字中。
現在,讓我們看看如何在 vim 中執行在上一節列舉的針對 nano 的相同的操作。不要忘記敲擊 Enter 鍵來確認 vim 命令。
為了從命令列中獲取 vim 的完整手冊,在命令模式下鍵入 :help
並敲擊 Enter 鍵:
vim 編輯器幫助選單
上面的部分呈現出一個內容列表,這些定義的小節則描述了 Vim 的特定話題。要瀏覽某一個小節,可以將游標放到它的上面,然後按 Ctrl + ]
(閉方括號)。注意,底部的小節展示的是當前檔案的內容。
1、 要儲存更改到檔案,在命令模式中執行下面命令中的任意一個,就可以達到這個目的:
:wq!
:x!
ZZ (是的,兩個 ZZ,前面無需新增冒號)
2、 要離開並丟棄更改,使用 :q!
。這個命令也將允許你離開上面描述過的幫助選單,並返回到命令模式中的當前檔案。
3、 剪下 N 行:在命令模式中鍵入 Ndd
。
4、 複製 M 行:在命令模式中鍵入 Myy
。
5、 貼上先前剪貼或複製過的行:在命令模式中按 P
鍵。
6、 要插入另一個檔案的內容到當前檔案:
:r filename
例如,插入 /etc/fstab
的內容,可以這樣做:
在 vi 編輯器中插入檔案的內容
7、 插入一個命令的輸出到當前文件:
:r! command
例如,要在游標所在的當前位置後面插入日期和時間:
在 vi 編輯器中插入時間和日期
在另一篇我寫的文章中,(LFCS 系列(二)),我更加詳細地解釋了在 vim 中可用的鍵盤快捷鍵和功能。或許你可以參考那個教學來檢視如何使用這個強大的文字編輯器的更深入的例子。
使用 grep 和正規表示式來分析文字
到現在為止,你已經學習了如何使用 nano 或 vim 建立和編輯檔案。打個比方說,假如你成為了一個文字編輯器忍者 – 那又怎樣呢? 在其他事情上,你也需要知道如何在文字中搜尋正規表示式。
正規表示式(也稱為 "regex" 或 "regexp") 是一種識別一個特定文字字串或模式的方式,使得一個程式可以將這個模式和任意的文字字串相比較。儘管利用 grep 來使用正規表示式值得用一整篇文章來描述,這裡就讓我們複習一些基本的知識:
1、 最簡單的正規表示式是一個由數位和字母構成的字串(例如,單詞 "svm") ,或者兩個(在使用兩個字串時,你可以使用 |
(或) 操作符):
#grep-Ei'svm|vmx'/proc/cpuinfo
上面命令的輸出結果中若有這兩個字串之一的出現,則標誌著你的處理器支援虛擬化:
正規表示式範例
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-09/123130p2.htm
相關文章