1. 程式人生 > >5分鐘學會Linux編輯檔案命令

5分鐘學會Linux編輯檔案命令

                                                    Linux編輯檔案命令

 

 一、引言

          相信有很多程式設計師朋友,在長時間不操作linux系統或者初學linux命令時,都有跟我有一樣的疑惑。

          這個vim命令與vi命令有什麼區別?不都是編輯器麼?

          接下來呢,我就通過這個問題進行闡述:

 

二、vi命令與vim命令

          其實,很好理解:

          首先來說它們兩者的共同點:都是文字編輯器。

          接下來是它們兩者的不同點

               vi編輯器:vi是所有Unix及Linux系統下標準的編輯器,他就相當於windows系統中的記事本一樣,

                                它的強大不遜色於任何最新的文字編輯器。他是我們使用Linux系統不能缺少的工具。

              vim編輯器:vim可以當作vi的升級版本,vim最大的特點是具有程式編輯的能力,可以以字型顏色

                                 辨別語法的正確性,方便程式設計。vim裡面加入了很多額外的功能,例如支援正則表

                                 達式的搜尋、多檔案編輯、塊複製等等。

          綜上所述

                 由於vi編輯器對於Unix及Linux系統的任何版本,vi編輯器都是完全相同的,

                 所以,我們只需學會vi編輯器,您將在Linux的世界裡暢行無阻。

 

三、vi命令使用

         

          vi基本上可以分為三種模式,分別是一般模式、編輯模式和命令列模式,各模式的功能區分如下:

 

          ①、一般模式

                      當以vi開啟一個檔案就直接進入一般模式了(這是預設的模式)。在這個模式中,你可以使用 

                      上下左右按鍵來移動游標,你可以使用刪除字元或刪除整行來處理檔案內容,也可以使用

                      複製、貼上來處理你的檔案資料。

          ②、編輯模式

                      在一般模式中可以進行刪除、複製、貼上等的操作,但是卻無法編輯檔案的內容,只有當到

                      你按下【i, I, o,O, a, A, r, R】等任何一個字母之後才會進入編輯模式。這時候螢幕的左下方

                      會出現【INSERT或 REPLACE】的字樣,此時才可以進行編輯。而如果要回到一般模式時,

                      則必須要按下【Esc】即可退出編輯模式。          

          ③、命令列模式

                      輸入【 : / ? 】三個中的任何一個,就可以將游標移動到最底下那一行。在這個模式中,可以

                      提供查詢、讀取、存檔、替換字元、離開vi、顯示行號等的動作則是在此模式中完成的。

         

          為概念的理解以及講解。下面為命令的講解。

 

四、一般模式

         

                  a.移動游標

                           h:控制游標左移一格

                           j :控制游標下移一格

                           k:控制游標上移一格

                           l :控制游標右移一格

                           ctrl+b:螢幕往後移動一頁

                           ctrl+f :螢幕往前移動一頁

                           ctrl+u:螢幕往後移動半頁

                           ctrl+d:螢幕往前移動半頁

                           0 :移到文章的開頭

                           G:移動到文章的最後

                           $ :移動到游標所在行的行尾

                           ^ :移動到游標所在行的行首

                           w:游標跳到下個字的開頭

                           e :游標跳到下個字的字尾

                           b :游標回到上個字的開頭

                           #l:游標移到該行的第#個位置,如:5l,56l

        

                  b.刪除文字

                           x:   每按一次,刪除游標所在位置的"後面"一個字元

                           #x: 例如,「6x」表示刪除游標所在位置的"後面"6個字元

                           X:  大寫X,每按一次,刪除游標所在位置的"前面"一個字元

                           #X: 例如,「20X」表示刪除游標所在位置的"前面"20個字元

                           dd:  刪除游標所在行

                           #dd:從游標所在行開始刪除#行

 

                  c.複製

                           yw:  將游標所在之處到字尾的字元複製到緩衝區中 

                           #yw:複製#個字到緩衝區 yy:複製游標所在行到緩衝區

                           #yy: 例如,「6yy」表示拷貝從游標所在的該行"往下數"6行文字 

                             p:   將緩衝區內的字元貼到游標所在位置;

                                     注意:所有與"y"有關的複製命令都必須與"p"配合才能完成複製與貼上功能

 

                  d.替換

                           r :替換游標所在處的字元。

                           R:替換游標所到之處的字元,直到按下「ESC」鍵為止 

 

                  e.跳至指定的行

                           ctrl+g:列出游標所在行的行號

                           #G:例如,「15G」,表示移動游標至文章的第15行行首

 

                  f.更改

                           cw:  更改游標所在處的字到字尾處

                           c#w:例如,「c3w」表示更改3個字

 

                  g.恢復上一次操作

                           u:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作;

                                 按多次"u"可以執行多次回覆

 

 

五、編輯模式

         

                  a.進入編輯模式

                           i : 從目前游標所在處插入

                           I : 在目前所在行的第一個非空格符處開始插入

                           a: 從目前游標所在的下一個字元處開始插入

                           A: 從游標所在行的最後一個字元處開始插入

                           o :在目前游標所在的下一行處插入新的一行

                           O:在目前游標所在處的上一行插入新的一行

                           r : 只會取代游標所在的那一個字元一次

                           R:會一直取代游標所在的文字,直到按下 ESC 為止

                           Esc:退出編輯模式,回到一般模式

 

 

六、命令列模式

                  

                  注意:如在編輯模式,需按下【Esc】退出編輯模式,回到一般模式

 

                  a.進入命令列模式 (指令前帶 ":",再敲指令前先敲 ":" )

                           :w : 儲存編輯的內容

                           :w! :強制寫入該檔案,但跟你對該檔案的許可權有關

                           :q :  離開vi

                           :q! : 不想儲存修改強制離開

                           :wq :儲存後離開

                           :x :   儲存後離開

                           ZZ :若檔案沒有更動,則不儲存離開,若檔案已經被更改過,則儲存後離開

                           :w filename :將編輯的資料儲存成另一個檔案(類似另存)

                           :r filename : 在編輯的資料中,讀入另一個檔案的資料。

                                                 即將【filename】 這個檔案的內容加到游標所在行後面

                           :n1,n2 w filename :將n1到n2的內容儲存成filename這個檔案

                           :! command :暫時離開vi 到命令列模式下執行command的顯示結果;

                                                  例如 【:! ls /home】即可在 vi 當中察看/home底下以ls輸出的檔案資訊

                           :set nu :顯示行號

                           :set nonu :與 set nu 相反,為取消行

 

                  b.查詢(指令前帶 ":",再敲指令前先敲 ":" )

                           /xxx: 向光標向下尋找一個名稱為xxx的字串

                           ?xxx:向光標向上尋找一個名稱為xxx的字串

                           n:代表重複前一個查詢的動作

                           N:與n剛好相反,為【反向】進行行前一個查詢動作

                           :n1,n2s/xxx/yyy/g:n1與n2為數字,在第n1與n2行之間查詢xxx這個字串,

                                                          並將該字串替換為yyy

                           :1,$s/xxx/yyy/g: 從第一行到最後一行查詢xxx字串,並將該字串替換為yyy

                           :1,$s/xxx/yyy/gc:從第一行到最後一行查詢xxx字串,並將該字串替換為yyy,

                                                        且在替換前提示使用者確認是否進行替換

 

                       Now ~ ~ ~寫到這裡,就寫完了,如果有幸幫助到你,請記得關注我,共同一起見證我們的成長

 

小結

謝謝觀賞,我叫猿醫生。

猿友推薦:正在奔跑的程式猿