配置文件是Linux操作系统的显著特征之一,其作用有点类似于Windows操作系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。
vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器,vim是vi文本编辑器(简称vi编辑器)的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称为vi,为了使用方便,可以设置一个命令别名,将vi指向vim程序(本文中以vim程序为例)具体操作如下:
[root@localhost ~]# alias vi='/usr/bin/vim'
[root@localhost ~]# which -a vi vim
vi编辑器是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对比较简单,没有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能,在v编辑界面中可以使用三种不同的工作模式,即命令模式,输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同。
命令模式:启动vi编辑器后默认进入命令模式。在该模式下,你可以执行光标移动、字符串查找、删除、复制、粘贴文件内容等相关操作。主要操作为录入文件内容的输入模式,可对文本文件正文进行修改或添加新内容。在 vi 编辑器的输入模式下,最后一行会显示状态提示信息“--INSERT--”。在末行模式下,可以配置vi编辑器的环境、保存文件、退出编辑器,并进行文件内容的查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号”:”提示符。
在vi编辑环境中,有三种状态,分别是命令模式、输入模式和末行模式。通过按下不同的键可以在这些状态之间进行切换。例如,从命令模式按:(冒号)键可以进入末行模式,按a,i,o等键可以进入输入模式:在输入模式、末行模式均可按Esc键返回命令模式,如图所示。
认识了vi编辑器的不同编辑模式(状态)以后,下面分别介绍在命令模式、末行模式中的常见操作方法(输入模式用于录入文本内容,不做特别介绍)。
通过执行单独的“vi”命令,您可以进入v编辑器的命令模式,并查看相关版本信息,如下图所示。但更常见的使用方法是指定要编辑的文件名作为参数,若该文件不存在,则vi根据该文件名称打开一个新的空文件。
在学习vi编辑器的基本操作时,建议复制一个内容较多的系统配置文件进行练习,而不要直接去修改系统文件,以免发生失误造成系统故障。
例如以下操作把系统配置文件/etc/yum.conf复制为当前目录下的vitest.file文件,然后用vi编辑器打开vitest.file文件进行编辑。
[root@localhost ~]# cp /etc/yum.conf ./vitest.file [root@localhost ~]# vi vitest.file
在vi编辑器的命令模式中,可以输入特定的按键(称为vi操作命令注意区别于Linux操作系统命令)进行操作,主要包括模式切换、光标移动、复制、删除、粘贴、文件内容查找及保存和退出等操作,这里只介绍一些最基本且常用的按键命令。
在命令模式中,按a.i.o等键可以快速切换至输入模式,同时确定插入点的方式和位置,以便录入文件内容,需要返回命令模式时,按Esc键即可。常见的几个模式切换键及其作用如下。
a:在当前光标位置之后插入内容。A:在光标所在行的末尾(行尾)插入内容。i:在当前光标位置之前插入内容。I:在光标所在行的开头(行首)插入内容。o:在光标所在行的后面插入一个新行。O:在光标所在行的前面插入一个新行。
光标方向的移动,直接按↑,↓,←,→一西个方向键完成相应的光标移动。
题页移动
按Page Dewn键或Crl F组合键向下期动一整页内容。
技Pagt lip或Cr1 8组合键向上翻动一整页内容。
行内快速跳转
按Horme键成“键,散字0键将元标快速鹏转到本行的行首。接End键或1键将光标快速跳转到本行的行尾。在上述按键操作中,PageDown,Pagn Up,homm,End及方向键同样也可在w的输入模式中使用。
入行间快速跳转
使用按鍵指令1G或0可跳到檔案內容的第1行。使用按鍵指令G可跳到檔案的最後一行。按下鍵盤上的特定按鍵,可以將遊標移到所選檔案的某一行(將「二」以數字取代)。
為了方便查看行間期轉效果,這裡先學習如何在v編輯器中是示行號,只要切換到末行模式並
執行如下的”set cu」指令即可顯示行號,執行"set nonu"指令可以取消量示行號.
# 顯示行號後的vi編輯器介面顯示格式如下(每行開頭的數字即行號):
#刪除動作。
您可以按下「乘」鍵或「刪除」鍵來刪除遊標所在位置的單一字元。使用按鍵指令dd刪除目前遊標所在行,使用#dd的形式也可以刪除從遊標處開始的#行內容(其中「#」號以具體數字取代)。使用按鍵指令d刪除目前遊標之前到行首的所有字元。使用按鍵指令ds刪除目前遊標處到行尾的所有字元。
複製操作,使用按鍵指令Yy複製目前行整行的內容到剪貼簿,使用#Yy的形式還可以複製從遊標處開始的#行內容(其中「#」號用具體數字替換).複製的內容需要貼上後才能使用。
貼上操作。在vi編輯器中,前一次被刪除或複製的內容將會儲存到剪下板緩衝區中,按p鍵即可將緩衝區中的內容貼上到遊標位置處之後,按P鍵則會貼上到遊標位置處之前。
在命令模式中,按/鍵後可以輸入指定的字串,從目前遊標處開始向後進行查找(按?鍵則向前尋找).完成查找後可以按n、N鍵在不同的查找結果中進行選擇,例如,輸入“/yum”,按Enter鍵後將查找出文件中的“yum”字串並高亮顯示,遊標自動移動至第一個查找結果處,按n鍵可以移動到下一個查找結果,如圖所示。
在編輯檔案內容時,有時需要對一些錯誤的編輯操作進行撤銷,這時可以使用按鍵u,U鍵,其中,u鍵指令用於取消最近一次的操作,並恢復操作結果,可以多次重複按υ鍵恢復已進行的多步驟操作;U鍵指令用於取消對目前行所做的所有編輯。按下ZZ鍵可以同時儲存目前檔案的變更並退出Vi編輯器。
在命令模式中按:鍵可以切換到末行模式,vi編輯器的最後一行中將顯示」:提示符,用戶可以在該提示符號後輸入特定的末行命令,完成如保存文件,退出編輯器,打開新文件,讀取其他文件內容及字符串替換等豐富的功能操作。
儲存文件,對文件內容進行修改並確認以後,需要執行如下的「w」指令進行儲存。
若需要另存為其他文件,則需要指定新的文件名,必要時還可以指定文件路徑。
#例如,執行如下的「:w/root/newfile
操作將把目前編輯的檔案另存到/root 目錄下,檔案名稱為newfile.
#退出編輯器。需要退出vi編輯器時,可以執行“:q命令,若文件內容已經修改卻沒有保存,則僅使用”;q”命令將無法成功退出,這時需要使用如下的”q! 」指令強行退出(不儲存即退出)。
儲存並退出。既要儲存檔案又要退出vi編輯器可以使用一條末行指令“:wq”或「:x」實現,其效果與指令模式中的ZZ指令相同,具體操作如下:
開啟新的檔案進行編輯。當使用目前的vi 編輯器並執行":e新的檔案"這樣的末行指令時,你可以編輯(Edit)一個新檔案。
例如,執行如下的‘:e~/initial-setup-ks.cfg」操作將直接開啟目前使用者宿主目錄中的initial-setup-ks.cfg檔案進行編輯。
#:e ~/initial-setup-ks.cfg
在目前檔案中讀入其他檔案內容,執行「r其他檔案」形式的末行指令可以讀入(Read)其他檔案中的內容,並將其複製到目前遊標所在位置。
例如,執行如下的「r/etc/filesystems操作將把系統檔案/etc/filesystems中的內容複製到目前檔案中。
:r /etc/filesystems
在vi編輯器的末行模式中,能夠將檔案中特定的字串替換成新的內容,當需要大量修改相同內容時,使用替換功能將大大提高編輯效率,使用替換功能時的末行命令格式如下:
:[替換範圍] sub/舊的內容/新的內容[/g]
在上述替換格式中,主要關鍵字為sb(Substitute,替換)。也可以簡寫為s.替換範圍是可選部分,默認時只對目前行內的內容進行替換,一般可以表示為以下兩種形式。
%:在整個文件內容中進行尋找並取代。 n.m;在指定行數範圍內的文件內容中進行尋找並取代。
替換格式中最末尾的/g部分也是可選內容,表示對替換範圍內每一行的所有匹配結果都進行替換,省略/g時將只替換每行中的第一個匹配結果。
例如,若要將文件中第5行~第15行中的“initdefault”字串替換為“DEFAULT”,可以執行以下操作:
:5, 15 s /initdefault/DEFAULT/g
當需要對整個文檔範圍進行查找替換操作時,需要使用“%”符號表示全部,例如,以下操作將會把當前文件中所有的“ initdefault」字串替換為「bootdefault」
:% s /initdefault/bootdefault/g
以上是Linux怎麼使用vi文字編輯器的詳細內容。更多資訊請關注PHP中文網其他相關文章!