Linux的文書處理軟件-vi_Linux教程
由前面一路走來,我們一直建議使用文字模式來處理 Linux 的系統(tǒng)設(shè)定問題,因?yàn)椴坏梢宰屇容^容易了解到 Linux 的運(yùn)作狀況,也比較容易了解整個(gè)設(shè)定的基本精神,更能『保證』您的修改可以順利的被運(yùn)作 ( 這里要再次的強(qiáng)調(diào),不同的 Linux distribution 各有其不同的附加軟體,例如 Red Hat 的 userconf, Linuxconf, ntsysv 與 setup 等等,而 Caldera 則有 COAS 等等,因此,如果您只會(huì)使用此種類型的軟體來控制您的 Linux 系統(tǒng)時(shí),當(dāng)接管不同的 Linux distribution 時(shí),呵呵!那可就苦惱了! ) 所以,在 Linux 的系統(tǒng)中使用文字編輯器來編輯您的 Linux 參數(shù)設(shè)定檔,嗯!可是一件很重要的事情呦!所以說嘛!系統(tǒng)管理員至少應(yīng)該要熟悉一種文書處理器的!
由 Linux是什么介紹中,我們知道 Linux 與 Unix 系統(tǒng)中的參數(shù)檔幾乎都是 ASCII 碼的『純文字』檔!因此,利用簡(jiǎn)單的文字編輯軟體就可以馬上修改 Linux 的參數(shù)檔啰!然而,與 Windows 不同的是,如果您用慣了 Microsoft Word 或 Corel Wordperfect 的話,那么除了 Xwindows 里面的編輯程式(如 xemacs )用起來尚可應(yīng)付外,于 Linux 的文字模式下,會(huì)覺得檔案編輯程式都沒有 Windows 程式那么方便。( 注:什么是 ASCII 的純文字檔案呢?說穿了,就是您開啟的檔案可以將內(nèi)容給您看到的檔案,而不是呈現(xiàn)亂碼的檔案,那就是純文字檔了!當(dāng)您以 Windows 的 word 存一個(gè)檔案時(shí),在 DOS 的情況下使用 type ,嗯!完全不知到內(nèi)容是什么?因?yàn)闀?huì)出現(xiàn)很多的亂碼,那并非是純文字檔,而如果以 word 在存檔時(shí),選擇『純文字類型』,嗯!那就可以使用 type 看到該檔案的內(nèi)容了!總之,純文字檔相當(dāng)?shù)娜菀仔薷木褪橇? )
無(wú)論如何,要管理好 Linux 系統(tǒng),純文字的手工設(shè)定仍然是需要的!所以請(qǐng)您千萬(wàn)不要嫌麻煩,努力的將下文參詳一下吧!以下我們以最常見到的 vi 這套文書軟體來介紹 Linux 底下的文書編輯動(dòng)作。 ( 注: vi 是 Unix 預(yù)設(shè)的文書處理軟體,當(dāng)然,也是 Linux 預(yù)設(shè)的文書處理軟體! )
基本上 vi 共分為三種模式,分別是『一般模式』、『編輯模式』與『指令列命令模式』三種!
·一般模式:以 vi 處理一個(gè)檔案的時(shí)后,一進(jìn)入該檔案就是一般模式了。在這個(gè)模式中,你可以使用『上下左右』按鍵來移動(dòng)游標(biāo),您可以使用『刪除字元』或『刪除整行』來處理檔案內(nèi)容,也可以使用『復(fù)制、貼上』來處理您的文件資料。
· 編輯模式:在一般模式中可以處理刪除、復(fù)制、貼上等等的動(dòng)作,但是卻無(wú)法編輯的!要等到您按下『i, I, o, O, a, A, r, R』等字母之后才會(huì)進(jìn)入編輯模式。注意了!通常在 Linux 中,按下上述的字母時(shí),在畫面的左下方會(huì)出現(xiàn)『 INSERT 或 REPLACE 』的字樣,才可以輸入任何字來輸入到您的檔案中!而如果要回到一般模式時(shí),則必須要按下『Esc』這個(gè)按鍵即可退出編輯模式。
·指令列命令模式:在一般模式當(dāng)中,輸入『 : 或 / 』就可以將游標(biāo)移動(dòng)到最底下那一行,在這個(gè)模式當(dāng)中,可以提供您『搜尋資料』的動(dòng)作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號(hào) 等等的動(dòng)作則是在此模式中達(dá)成的!
簡(jiǎn)單的說,我們可以將這三個(gè)模式想成底下的圖示來表示之:
閑話不多說,我們底下以一個(gè)簡(jiǎn)單的例子來進(jìn)行說明吧!
簡(jiǎn)易執(zhí)行范例
我們?cè)蹒凼褂?vi 建立一個(gè)檔名為 test.txt 的資料呢?也是很簡(jiǎn)單的啦,
1.使用 vi 進(jìn)入一般模式;
[root @test root]# vi test.txt
直接輸入『 vi 檔名』即可進(jìn)入 vi 了!如下圖所示,左下角還會(huì)顯示這個(gè)檔案目前的狀態(tài)!如果是新建檔案會(huì)顯示 [New File],如果是以存在的檔案,則會(huì)顯示目前的檔名、行數(shù)與字元數(shù),例如:『"/etc/man.config" 145L, 4614C』
2.按下 i 進(jìn)入編輯模式,開始編輯文字;
在一般模式之中,只要按下 I, o, a 等字元,就可以進(jìn)入編輯模式了!在編輯模式當(dāng)中,您可以發(fā)現(xiàn)在左下角會(huì)出現(xiàn) –INSERT- 的畫面,那就是可以輸入任意字元的提示啰!這個(gè)時(shí)候,鍵盤上除了 [Esc] 這個(gè)按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以您可以進(jìn)行任何的編輯啰!(注:在 vi 里面, [tab] 這個(gè)按鈕所得到的結(jié)果與空白字元所得到的結(jié)果是不一樣的,特別強(qiáng)調(diào)一下!)
3.按下 [ESC] 按鈕回到一般模式;
好了,假設(shè)我已經(jīng)按照上面的樣式給他編輯完畢了,那么應(yīng)該要如何退出呢?是的!沒錯(cuò)!就是給他按下 [Esc] 這個(gè)按鈕即可!馬上你就會(huì)發(fā)現(xiàn)畫面左下角的 – INSERT – 不見了!
4.在一般模式中按下 :wq 儲(chǔ)存后離開 vi !
OK,我們要存檔了,存檔并離開的指令很簡(jiǎn)單,輸入『:wq』即可存檔離開!(注意了,按下 : 該游標(biāo)就會(huì)移動(dòng)到最底下一行去!)這時(shí)你在提示字元后面輸入『 ls -l 』即可看到我們剛剛建立的 test.dat 檔案啦!整個(gè)圖示有點(diǎn)像底下這樣:
如此一來,您的檔案 test.txt 就已經(jīng)建立起來啰!很簡(jiǎn)單吧!需要注意的是,如果您的檔案權(quán)限不對(duì),例如為 -r--r--r-- 時(shí),那么可能會(huì)無(wú)法寫入,那么可以使用『強(qiáng)制寫入』的方式嗎?可以!使用『:wq!』多加一個(gè)驚嘆號(hào)即可!不過,需要特別注意呦!那個(gè)是在『您的權(quán)限可以改變』的情況下才能成立的!關(guān)于權(quán)限的概念,請(qǐng)參考一下 Linux 的檔案權(quán)限概念 啰!
命令列內(nèi)容說明
如前所述,所謂的命令列或命令模式,就是在最下面一行沒有顯示『--INSERT--』或者『--REPLACE--』字樣的時(shí)候。通常在命令列中的指令有下面幾種:(注意,當(dāng)按下『:』 時(shí),游標(biāo)會(huì)自動(dòng)移動(dòng)到螢?zāi)坏淖钕旅嬉恍?)
OK!會(huì)這些指令就已經(jīng)很厲害了,因?yàn)槌S玫降闹噶钜仓挥胁坏揭话?通常 vi 的指令除了上面 VBird 注明的常用的幾個(gè)外,其他是不用背的,你可以做一張簡(jiǎn)單的指令表在你的螢?zāi)粔ι希挥幸蓡柨梢择R上的查詢呦!
一個(gè)案例練習(xí)
來來來!測(cè)試一下您是否已經(jīng)熟悉 vi 這個(gè)指令呢?請(qǐng)依照底下的需求進(jìn)行您的指令動(dòng)作( 請(qǐng)注意,該檔案為 Mandrake 9.0 所附上的檔案內(nèi)容,如果是其他的 distribution ,可能結(jié)果會(huì)不太一樣! ),然后看一下結(jié)果在螢?zāi)磺懊骘@示什么?
1. 請(qǐng)?jiān)?/root 這個(gè)目錄下建立一個(gè)名為 vitest 的目錄;
2. 進(jìn)入 vitest 這個(gè)目錄當(dāng)中;
3. 將 /etc/man.config 拷貝到本目錄底下;
4. 使用 vi 開啟本目錄下的 man.config 這個(gè)檔案;
5. 在 vi 中設(shè)定一下行號(hào);
6. 移動(dòng)到第62 行,向右移動(dòng) 40 個(gè)字元,請(qǐng)問您看到的雙引號(hào)內(nèi)是什么目錄?
7. 移動(dòng)到第一行,并且向下搜尋一下『 teTeX 』這個(gè)字串,請(qǐng)問他在第幾行?
8. 接著下來,我要將 50 到 100 行之間的 man 改為 MAN ,并且一個(gè)一個(gè)挑選是否需要修改,如何下達(dá)指令?
9. 修改完之后,突然反悔了,要全部復(fù)原,有哪些方法?
10. 我要復(fù)制 51 到 60 行這十行的內(nèi)容,并且貼到最后一行之后;
11. 刪除 11 到 30 行之間的 20 行;
12. 將這個(gè)檔案另存成一個(gè) man.test.config 的檔名;
13. 去到第 29 行,并且刪除 15 個(gè)字元;
14. 請(qǐng)問目前的檔案有多少行與多少字元?
15. 儲(chǔ)存后離開吧!
整個(gè)的步驟可以如下所示:
1. mkdir /root/vitest
2. cd /root/vitest
3. cp /etc/man.config .
4. vi man.config
5. : set nu
6. 先按下 62G ,再按下 40 + 向右鍵,會(huì)看到『/dir/bin/foo』
7. 先按下 1G ,然后按下 /teTeX 搜尋,會(huì)看到他在第 51 行!
8. :50,100s/man/MAN/gc
9. (1)簡(jiǎn)單的方法可以一直按 u 回復(fù)到原始狀態(tài),(2)使用不儲(chǔ)存離開 :q! 之后,再重新讀取一次該檔案
10. 51G 然后在 10yy 之后按下 G 到最后一行,再給他 p 貼上十行!
11. 11G 之后,再給他 20dd 即可刪除 20 行了;
12. :w man.test.config
13. 29G 之后,再給他 15x 即可刪除 15 個(gè)字元;
14. 135行,共 3903 個(gè)字元
15. :wq!
如果您的結(jié)果都可以查的到,那么 vi 的使用上面應(yīng)該沒有太大的問題啦!剩下的問題會(huì)是在…..打字練習(xí)….
本章習(xí)題練習(xí) :
·我要在某個(gè)檔案的第 34 行向右移動(dòng) 15 個(gè)字元,應(yīng)該在一般模式下達(dá)什么指令?
答:
先 11G 到第 11 行后,再按下 15 + 向右鍵,或 15l 亦可!
·在 vi 里面, PageDown 按鈕可以使用什么組合鍵來取代?
答:
[Ctrl] + f 可以向后翻一頁(yè)
·如何去到 vi 該檔案里面的頁(yè)首或頁(yè)尾?
答:
頁(yè)首為 1G 而頁(yè)尾為 G 即可!
·如何在一行中,移動(dòng)到行頭及行尾?
答:
移動(dòng)到行頭,按 0 ,移動(dòng)到行尾按 $ 即可!
·進(jìn)入編輯模式的按鈕?
答:
i, I, o, O, a, A, R
·vi 里面, r 有什么功能?
答:
取代游標(biāo)所在的那個(gè)字元!
·如何將目前的頁(yè)面另存新檔?
答:
:w filename
· 在 linux 底下最常使用的文書編輯器為 vi ,請(qǐng)問如何進(jìn)入編輯模式?
o 在一般模式底下輸入: i, I, a, A 為在本行當(dāng)中輸入新字元;(出現(xiàn) –Insert- )
o 在一般模式當(dāng)中輸入: o, O 為在一個(gè)新的一行輸入新字元;
o 在一般模式當(dāng)中輸入: r, R 為取代字元!(左下角出現(xiàn) –Replace-)
·如何由編輯模式跳回一般模式?
[Esc]
·若上下左右鍵無(wú)法使用時(shí),請(qǐng)問如何在一般模式移動(dòng)游標(biāo)?
h, j, k, l
·若 [pagedown] [ pageup] 在一般模式無(wú)法使用時(shí),如何往前或往后翻一頁(yè)?
[Ctrl] + [f]
[Ctrl] + [b]
·如何到本檔案的最后一行、第一行;本行的第一個(gè)字元、最后一個(gè)字元?
G, 1G, 0, $
·如何刪除一行、n行;如何刪除一個(gè)字元?
dd, ndd, x 或 X (dG 及 d1G 分別表示刪除到頁(yè)首及頁(yè)尾)
·如何復(fù)制一行、n行并加以貼上?
yy, nyy, p 或 P
·如何搜尋 string 這個(gè)字串?
o ?string (往前搜尋)
o /string (往后搜尋)
·如何取代 word1 成為 word2,而若需要使用者確認(rèn)機(jī)制,又該如何?
o :1,$s/word1/word2/g 或
o :1,$s/word1/word2/gc (需要使用者確認(rèn))
·如何讀取一個(gè)檔案 filename 進(jìn)來目前這個(gè)檔案?
:r filename
·如何另存新檔成為 newfilename?
:w newfilename
·如何存檔、離開、存檔后離開、強(qiáng)制存檔后離開?
:w; :q: :wq; :wq!
·如何設(shè)定與取消行號(hào)?
:set nu
:set nonu
- Linux系統(tǒng)下TOP命令使用與分析詳解
- 安裝Linux我們需要改變20件事情
- 使用Linux系統(tǒng)架設(shè)VSFTP服務(wù)器
- Linux系統(tǒng)上架設(shè)POP3服務(wù)器
- Linux中“Networking Disabled”的解決方法(解決Ubuntu等系統(tǒng)無(wú)法上網(wǎng))
- ubuntu系統(tǒng)清理磁盤教程
- linux下搭建pxe自動(dòng)化安裝環(huán)境
- BIOS不支持導(dǎo)致Linux內(nèi)核耗電增加
- Debian GNU/Linux系統(tǒng)卡片
- Linux操作系統(tǒng)開機(jī)自行啟動(dòng)項(xiàng)目詳細(xì)解析
- Linux菜鳥入門級(jí)命令大全
- Linux操作系統(tǒng)中讀取目錄文件信息的過程
- 相關(guān)鏈接:
- 教程說明:
Linux教程-Linux的文書處理軟件-vi。