十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
進入vi的命令
創(chuàng)新互聯(lián)建站專注于宜良網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供宜良營銷型網(wǎng)站建設,宜良網(wǎng)站制作、宜良網(wǎng)頁設計、宜良網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務,打造宜良網(wǎng)絡公司原創(chuàng)品牌,更為您提供宜良網(wǎng)站排名全網(wǎng)營銷落地服務。
vi filename :打開或新建文件,并將光標置于第一行首
vi +n filename :打開文件,并將光標置于第n行首
vi + filename :打開文件,并將光標置于最后一行首
vi +/pattern filename:打開文件,并將光標置于第一個和pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
移動光標類命令
h :光標左移一個字符
l :光標右移一個字符
space:光標右移一個字符
Backspace:光標左移一個字符
k或Ctrl+p:光標上移一行
j或Ctrl+n :光標下移一行
Enter :光標下移一行
w或W :光標右移一個字至字首
b或B :光標左移一個字至字首
e或E :光標右移一個字至字尾
) :光標移至句尾
( :光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
nG:光標移至第n行首
n+:光標下移n行
n-:光標上移n行
n$:光標移至第n行尾
H :光標移至屏幕頂行
M :光標移至屏幕中間行
L :光標移至屏幕最后行
0:(注意是數(shù)字零)光標移至當前行首
$:光標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令
i :在光標前
I :在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“”的特別字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最后行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
"?p:取出寄存器?中的內容并將其放到光標位置處。這里?能是個字母,也能是個數(shù)字
ndd:將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中。
進入vi
vi test
離開vi
:q! 離開vi,并放棄剛在緩沖區(qū)內編輯的內容。
:wq 將緩沖區(qū)內的資料寫入磁盤中,并離開vi。
:ZZ 同wq
同wq
:w 將緩沖區(qū)內的資料寫入磁盤中,但并不離開vi。
:q 離開vi,若文件被修改過,則會被需求確認是否放棄修改的內容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當使用者進入vi后,既處于指令模式下,此刻鍵入所有字元皆被視為指令。
輸入模式:a(append) 游標之后加入資料。
A 該行之末加入資料
i (insert) 游標之前加入資料
I 該行之首加入資料
o (open) 新增一行和該行之下供輸入資料
O 新增一行和該行之上供輸入資料
指令模式:B 移至該行第一個字符,若光標在該行第一字符則光標移至上一行第一字符。
b 由游標所在位置之前一個字串的第一個字元
cc 刪除整行,修改整行的內容。
D 以行為單位,刪除游標在內后面的所有字符。
db 刪除該行光標前字符
dd 刪除該行
de 刪除自光標開始后面的字符
d加字符 刪除光標所在位置至字符之間的單
E移至該行最后字符,若光標在該行最后字符則光標移至下一行最后字符
e由游標所在位置至該字串的最后一個字元
G 移至該檔案的最后一行
h 向前移一個字元
j 向下移一個字元
k 向上移一個字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最后一行
l 向后移一個字符
0 由游標所在位置該行的第一個字元
nG 移至該檔案的第n行
n+ 自游標所在位置向后移n行至該行的第一字符
n- 自游標所在位置向前移n行至該行的第一字符
R 進入取代狀態(tài),直到《ESC》為止
s 刪除游標所在字元,并進入取代模式直到《ESC》
S 刪除游標所在之該行資料,并進入輸入模式直到《ESC》
w 由游標所在位置之下一個字串的第一個字元
x 刪除游標所在該字元。
X 刪除游標所在之前一字元。
r 用接于此指令之后的字元取代(replace)游標所在字元
yy yank整行,使游標所在該行復制到記憶體緩沖區(qū)
顯示該行之行號、檔案名稱、檔案中最末之行號、游標所在行號占
總行號之百分比
$ 由游標所在位置至該行的最后一個字元。
) 由游標所在位置至下一個句子的第一個字元。
( 由游標所在位置至該句子的第一個字元。
{ 由游標所在位置至該段落的最后一個字元。
} 由游標所在位置至該段落的第一個字元
yank和delete可將指定的資料復制到記憶體緩沖區(qū),而藉有put指令可將緩沖區(qū)內的資料復制到熒幕上
例如:搬移一行 :在該行執(zhí)行dd
游標移至目的地
執(zhí)行p
復制一行 :在該行執(zhí)行yy
游標移至目的地
執(zhí)行p
視窗移動:
視窗往下卷一頁
視窗往上卷一頁
視窗往下卷半頁
視窗往上卷半頁
視窗往下卷一行
視窗往上卷一行
刪除、復制及修改指令介紹:
d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:
operation+scope=command
(運算子)(范圍)
運算子:
d 刪除指令。刪除資料,但會將刪除資料復制到記憶體緩沖區(qū)。
y 將資料(字組、行列、句子或段落)復制到緩沖區(qū)。
p 放置(put)指令,和d和y配合使用??蓪⒆詈骴elete或yank的資料放置于游標所在位置之行列下。
c 修改(change)指令,類似delete于insert的組合。刪除一個字組、句子等資料,并插入新鍵入的
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進入vi編輯器后的默認模式。任何時候,不管用戶處于何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字符都被當作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應的動作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會響鈴報警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當作文件內容保護起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內容寫到文件中等)。末行命令在執(zhí)行完后,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來我們按i,然后鍵盤隨便輸入寫內容。
然后按ESC重新進入到命令模式。
在命令模式的情況下,我們按:,進入到了末行模式。
我們輸入wq!,然后回車,強行保存退出。
下次我們再打開對應文件(可用less filename命令打開),即可看到內容已經(jīng)更改。
補充:
(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個z即可退出。
更多命令
進入vi的命令:
vi filename :打開或新建文件,并將光標置于第一行首
vi +n filename :打開文件,并將光標置于第n行首
vi + filename :打開文件,并將光標置于最后一行首
vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename
vi filename….filename :打開多個文件,依次進行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令:
i :在光標前
I :在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復上一步被撤銷的操作
選項設置:
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作:
“?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?p:取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數(shù)字
ndd:將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中。
先按ESC進入Command模式,然后輸入“:wq”,回車就可以保存并退出了。
vi的其他保存/退出命令:
:w 保存;
:w filename 另存為filename;
:wq! 保存并強制退出;
:wq! filename 注:以filename為文件名保存后強制退出;
:q! 強制退出;
:x 保存并退出(僅當文件有變化時保存)
擴展資料:
vi有三種工作模式:命令模式、文本編輯模式和最后行模式。不同工作模式下的操作方法有所不同。
1、命令行模式
該模式是進入vi編輯器后的默認模式。任何時候,不管用戶處于何種模式,按下Esc鍵即可進入命令模式。
在命令模式下,用戶可以輸入vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi的合法命令,vi 會響鈴報警。
2、文本輸入模式
在命令模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。
在該模式下,用戶輸入的任何字符都被vi當做文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按下Esc鍵即可。
3、末行模式
末行模式也稱 ex 轉義模式。在命令模式下,用戶按:鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個:作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內容寫到文件中等)。
末行命令執(zhí)行完后,vi 自動回到命令模式。
參考資料:百度百科-vi
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 強制保存
編輯到輸入模式:
i 在當前光標前面輸入
I 在當前光標所在行的行首,轉換為輸入模式
a 在當前光標后面輸入
A 在當前光標所在行的行尾,轉換為輸入模式
o 在當前光標所在行的下方,新建一行,并轉為輸入模式
O 在當前光標所在行的上方,新建一行,并轉為輸入模式
1、 移動光標
字符:方向鍵上下左右或者鍵盤kjhl(上下左右)
單詞:w移至下一個單詞的詞首;e跳至當前或下一個單詞的詞尾;b跳至當前或前一個單詞的詞首
行內:0絕對行首;^行首的第一個非空白字符;$絕對行尾
行間:G文章末尾;3G第3行;gg文章開頭
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 刪除、替換單個字符
x刪除光標位置字符;3x刪除光標開始3個字符;r替換光標位置字符
dw刪除一個單詞;4dw刪除光標開始的4個單詞;dd刪除光標所在行;5dd刪除光標開始的5行
3、復制粘貼剪切
yw復制一個單詞,p在該行粘貼單詞;yy復制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個單詞,p再粘貼一個單詞
4、 撤銷重做
u:撤銷;ctrl+r:重做撤銷的操作;.重復上一步的操作【假設先dd,再.,會再執(zhí)行dd命令】
1、 set設置
set nu
set nonu
set readonly #設置只讀文件,不能修改,只在當前環(huán)境有效,退出文件,再次打開,這個只讀就無效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執(zhí)行命令
比如:查找root目錄
:!ls /root/
4、 查找并替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當前光標行】;【$末尾行】;【%全文】;【g一行內全部替換】;【i忽略大小寫】
比如 【 :.,$s/after/before/】 表示在當前光標行【.】到末尾【$】這個范圍內,將after替換為before, 但是如果一行有多個after的話,只會把第一個after替換掉 。
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個after的話,只會把第一個after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個after的話,會把該行所有after替換掉,因為在命令里面加了g 。
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫并替換一行內所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數(shù)第5行的數(shù)據(jù)
比如 【:1,4y】 ,表示復制1到4行,再按p可粘貼這4行
1、查看目錄下文件file.txt的內容,使用cat file.txt(ls // 表示查看當前目錄下的文件目錄 ; cat file.txt? // 表示查看該文件的內容)發(fā)現(xiàn)內容是hello world
2、使用vi file.txt 進入到編輯界面,如下所示:
3、進入到編輯模式,按鍵i,此時可以移動光標到想修改的位置,同時我們修改內容如下:(注意界面左下角進入到了insert的模式,才代表現(xiàn)在是編輯模式)
4、推出編輯模式,并保存,按鍵esc退出insert模式,然后按shift+: ? ?(shift+冒號鍵),然后輸入wq,wq表示,保存并退出。如果只按鍵q,則是只退出不保存。
5、最后,按?enter鍵退出界面,再次查看內容,驗證一下,如下圖所示。
擴展資料:
linux系統(tǒng)的常用命
1、date :print or set the system date and time
2、stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)
3、 passwd: print or set the system date and time (用passwd -h查看)
4、logout, login: 登錄shell的登錄和注銷命令
5、pwd: print working directory
6、more, less, head tail: 顯示或部分顯示文件內容.
7、lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.
8、 更改文件權限: chmod u+x...
9、刪除非空目錄:rm -fr dir
10、拷貝目錄: cp -R dir
參考資料來源:百度百科-linux