1.光標(biāo)命令
k、j、h、l - 上、下、左、右光標(biāo)移動命令。雖然您可以在Linux中使用鍵盤右邊的4個光標(biāo)鍵,但是記住這4個命令還是非常有用的。這4個鍵正是右手在鍵盤上放置的基本位置。
nG - 跳轉(zhuǎn)命令。n為行數(shù),該命令立即使光標(biāo)跳到指定行。
Ctrl+G - 光標(biāo)所在位置的行數(shù)和列數(shù)報告。
w、b - 使光標(biāo)向前或向后跳過一個單詞。
2.編輯命令
i、a、r - 在光標(biāo)的前、后以及所在處插入字符命令(i=insert、a=append、r=replace)。
cw、dw - 改變(置換)/刪除光標(biāo)所在處的單詞的命令 (c=change、d=delete)。
x、d$、dd - 刪除一個字符、刪除光標(biāo)所在處到行尾的所有字符以及刪除整行的命令。
3.查找命令
/string、?string——從光標(biāo)所在處向后或向前查找相應(yīng)的字符串的命令。
4.拷貝復(fù)制命令
yy、p——拷貝一行到剪貼板或取出剪貼板中內(nèi)容的命令。
1.光標(biāo)命令
k、j、h、l - 上、下、左、右光標(biāo)移動命令。雖然您可以在Linux中使用鍵盤右邊的4個光標(biāo)鍵,但是記住這4個命令還是非常有用的。這4個鍵正是右手在鍵盤上放置的基本位置。
nG - 跳轉(zhuǎn)命令。n為行數(shù),該命令立即使光標(biāo)跳到指定行。
Ctrl+G - 光標(biāo)所在位置的行數(shù)和列數(shù)報告。
w、b - 使光標(biāo)向前或向后跳過一個單詞。
2.編輯命令
i、a、r - 在光標(biāo)的前、后以及所在處插入字符命令(i=insert、a=append、r=replace)。
cw、dw - 改變(置換)/刪除光標(biāo)所在處的單詞的命令 (c=change、d=delete)。
x、d$、dd - 刪除一個字符、刪除光標(biāo)所在處到行尾的所有字符以及刪除整行的命令。
3.查找命令
/string、?string——從光標(biāo)所在處向后或向前查找相應(yīng)的字符串的命令。
4.拷貝復(fù)制命令
yy、p——拷貝一行到剪貼板或取出剪貼板中內(nèi)容的命令。
二、常見問題及應(yīng)用技巧
1.在一個新文件中讀/etc/passwd中的內(nèi)容,取出用戶名部分。
vi file
:r /etc/passwd 在打開的文件file中光標(biāo)所在處讀入/etc/passwd
:%s/:.*//g 刪除/etc/passwd中用戶名后面的從冒號開始直到行尾的所有部分。
您也可以在指定的行號后讀入文件內(nèi)容,例如使用命令“:3r /etc/passwd”從新文件的第3行開始讀入 /etc/passwd的所有內(nèi)容。
我們還可以使用以下方法刪掉文件中所有的空行及以#開始的注釋行。
#cat squid.conf.default | grep -v ’^$’ | grep -v ’^#’
2.在打開一個文件編輯后才知道登錄的用戶對該文件沒有寫的權(quán)限,不能存盤,需要將所做修改存入臨時文件。
vi file
:w /tmp/1 保存所做的所有修改,也可以將其中的某一部分修改保存到臨時文件,例如僅僅把第20~59行之間的內(nèi)容存盤成文件/tmp/1,我們可以鍵入如下命令。
vi file
:20,59w /tmp/1
3.用VI編輯一個文件,但需要刪除大段的內(nèi)容。
首先利用編輯命令“vi file”打開文件,然后將光標(biāo)移到需要刪除的行處按Ctrl+G顯示行號,再到結(jié)尾處再按Ctrl+G,顯示文件結(jié)尾的行號。
:23,1045d 假定2次得到的行號為23和1045,則把這期間的內(nèi)容全刪除,也可以在要刪除的開始行和結(jié)束行中用ma、mb命令標(biāo)記,然后利用“:’a,’bd”命令刪除。
4.在整個文件的各行或某幾行的行首或行尾加一些字符串。
vi file
:3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”。
:%s/$/some string/g 在整個文件每一行的行尾添加“some string”。
:%s/string1/string2/g 在整個文件中替換“string1”成“string2”。
:3,7s/string1/string2/ 僅替換文件中的第3行到第7行中的“string1”成“string2”。
注意: 其中s為substitute,%表示所有行,g表示global。
5.同時編輯2個文件,拷貝一個文件中的文本并粘貼到另一個文件中。
vi file1 file2
yy 在文件1的光標(biāo)處拷貝所在行
:n 切換到文件2 (n=next)
p 在文件2的光標(biāo)所在處粘貼所拷貝的行
:n 切換回文件1
6.替換文件中的路徑。
使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路徑/usr/bin換成/bin。也可以使用命令“:%s//usr/bin//bin/g”實現(xiàn),其中“”是轉(zhuǎn)義字符,表明其后的“/”字符是具有實際意義的字符,不是分隔符。
3、命令行模式(command mode)功能鍵
1). 插入模式
按「i」切換進(jìn)入插入模式「insert mode」,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開始輸入文件;
按「a」進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個位置開始輸入文字;
按「o」進(jìn)入插入模式后,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按「ESC」鍵。
3). 移動光標(biāo)
vi可以直接用鍵盤上的光標(biāo)來上下左右移動,但正規(guī)的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標(biāo)左、下、上、右移一格。
按「ctrl」+「b」:屏幕往“后”移動一頁。
按「ctrl」+「f」:屏幕往“前”移動一頁。
按「ctrl」+「u」:屏幕往“后”移動半頁。
按「ctrl」+「d」:屏幕往“前”移動半頁。
按數(shù)字「0」:移到文章的開頭。
按「G」:移動到文章的最后。
按「$」:移動到光標(biāo)所在行的“行尾”。
按「^」:移動到光標(biāo)所在行的“行首”
按「w」:光標(biāo)跳到下個字的開頭
按「e」:光標(biāo)跳到下個字的字尾
按「b」:光標(biāo)回到上個字的開頭
按「#l」:光標(biāo)移到該行的第#個位置,如:5l,56l。
4). 刪除文字
「x」:每按一次,刪除光標(biāo)所在位置的“后面”一個字符。
「#x」:例如,「6x」表示刪除光標(biāo)所在位置的“后面”6個字符。
「X」:大寫的X,每按一次,刪除光標(biāo)所在位置的“前面”一個字符。
「#X」:例如,「20X」表示刪除光標(biāo)所在位置的“前面”20個字符。
「dd」:刪除光標(biāo)所在行。
「#dd」:從光標(biāo)所在行開始刪除#行
5). 復(fù)制
「yw」:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中。
「#yw」:復(fù)制#個字到緩沖區(qū)
「yy」:復(fù)制光標(biāo)所在行到緩沖區(qū)。
「#yy」:例如,「6yy」表示拷貝從光標(biāo)所在的該行“往下數(shù)”6行文字。
「p」:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置。注意:所有與“y”有關(guān)的復(fù)制命令都必須與“p”配合才能完成復(fù)制與粘貼功能。
6). 替換
「r」:替換光標(biāo)所在處的字符。
「R」:替換光標(biāo)所到之處的字符,直到按下「ESC」鍵為止。
7). 回復(fù)上一次操作
「u」:如果您誤執(zhí)行一個命令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執(zhí)行多次回復(fù)。
8). 更改
「cw」:更改光標(biāo)所在處的字到字尾處
「c#w」:例如,「c3w」表示更改3個字
9). 跳至指定的行
「ctrl」+「g」列出光標(biāo)所在行的行號。
「#G」:例如,「15G」,表示移動光標(biāo)至文章的第15行行首。
4、Last line mode下命令簡介
在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經(jīng)處于「command mode」下后,再按「:」冒號即可進(jìn)入「last line mode」。
A) 列出行號
「set nu」:輸入「set nu」后,會在文件中的每一行前面列出行號。
B) 跳到文件中的某一行
「#」:「#」號表示一個數(shù)字,在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行了,如輸入數(shù)字15,再回車,就會跳到文章的第15行。
C) 查找字符
「/關(guān)鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關(guān)鍵字為止。
「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關(guān)鍵字為止。
D) 保存文件
「w」:在冒號輸入字母「w」就可以將文件保存起來。
E) 離開vi
「q」:按「q」就是退出,如果無法離開vi,可以在「q」后跟一個「!」強制離開vi。
「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。
5、vi命令列表
1、下表列出命令模式下的一些鍵的功能:
h
左移光標(biāo)一個字符
l
右移光標(biāo)一個字符
k
光標(biāo)上移一行
j
光標(biāo)下移一行
^
光標(biāo)移動至行首
0
數(shù)字“0”,光標(biāo)移至文章的開頭
G
光標(biāo)移至文章的最后
$
光標(biāo)移動至行尾
Ctrl+f
向前翻屏
Ctrl+b
向后翻屏
Ctrl+d
向前翻半屏
Ctrl+u
向后翻半屏
i
在光標(biāo)位置前插入字符
a
在光標(biāo)所在位置的后一個字符開始增加
o
插入新的一行,從行首開始輸入
ESC
從輸入狀態(tài)退至命令狀態(tài)
x
刪除光標(biāo)后面的字符
#x
刪除光標(biāo)后的#個字符
X
(大寫X),刪除光標(biāo)前面的字符
#X
刪除光標(biāo)前面的#個字符
dd
刪除光標(biāo)所在的行
#dd
刪除從光標(biāo)所在行數(shù)的#行
yw
復(fù)制光標(biāo)所在位置的一個字
#yw
復(fù)制光標(biāo)所在位置的#個字
yy
復(fù)制光標(biāo)所在位置的一行
#yy
復(fù)制從光標(biāo)所在行數(shù)的#行
p
粘貼
u
取消操作
cw
更改光標(biāo)所在位置的一個字
#cw
更改光標(biāo)所在位置的#個字
2、下表列出行命令模式下的一些指令
w filename
儲存正在編輯的文件為filename
wq filename
儲存正在編輯的文件為filename,并退出vi
q!
放棄所有修改,退出vi
set nu
顯示行號
/或?
查找,在/后輸入要查找的內(nèi)容
n
與/或?一起使用,如果查找的內(nèi)容不是想要找的關(guān)鍵字,按n或向后(與/聯(lián)用)或向前(與?聯(lián)用)繼續(xù)查找,直到找到為止。
對于第一次用vi,有幾點注意要提醒一下:
1、用vi打開文件后,是處于「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令行模式(command mode)」下按一下字母「i」就可以進(jìn)入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
2、編輯好后,需從插入模式切換為命令行模式才能對文件進(jìn)行保存,切換方法:按「ESC」鍵。
3、保存并退出文件:在命令模式下輸入:wq即可?。▌e忘了wq前面的:)