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 ~ ~ ~寫到這裡,就寫完了,如果有幸幫助到你,請記得關注我,共同一起見證我們的成長。
小結
謝謝觀賞,我叫猿醫生。
猿友推薦:正在奔跑的程式猿