重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
直接vi 進入的是命令行模式,按“i”進入插入模式,即可進行粘貼以及其他編輯工作。
創(chuàng)新互聯(lián)公司服務(wù)項目包括德清網(wǎng)站建設(shè)、德清網(wǎng)站制作、德清網(wǎng)頁制作以及德清網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,德清網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到德清省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
“E348: No string under cursor”錯誤就應(yīng)該是沒有按“i”進入插入模式。
再按一下“ESC”,即可回到命令行模式,輸入按一下“:”冒號鍵進入底行模式
vi是一個特殊的命令,也不光是命令還是Linux下的編輯器,由于篇幅關(guān)系就不在這邊多做舉例說明,講在以后配置網(wǎng)絡(luò)服務(wù)時介紹一些vi的實際應(yīng)用。
vi命令是Linux下全屏幕文本編輯,vi編輯提供了豐富的編輯功能。這個編輯器十分簡陋,對初學(xué)者很不友好。但是因為Linux的vi編輯器作用非常大,尤其是在配置各種服務(wù)器時修改配置文件十分有用。
vi編輯器有3種模式:命令模式、輸入模式、末行模式。掌握這三種模式十分重要:
命令模式:vi啟動后默認進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字幕“i”就可以進入vi的輸入模式編輯文件。
輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最后一行顯示一個“--INSERT--”標(biāo)志著vi進入了輸入模式。當(dāng)我們完成修改輸入等操作的時候我們需要保存文件,這時我們需要先返回命令模式,在進入末行模式保存。
末行模式:在命令模式輸入“:”即可進入該模式,在末行模式中有好多好用的命令。
vi的啟動和退出
直接輸入命令vi不指定文件名,由于這是一個沒有命名的空文件,顯示了vi的版本信息。
vim是vi編輯器的改進版本,在vi編輯器的基礎(chǔ)上擴展了很多實用的功能。大多數(shù)linux/unix版本都使用vim代替了原有的vi編輯器。
或者直接使用vi打開文件,如果文件存在打開存在文件;如果不存在的話,將以我們指定的參數(shù)作為文件名。
輸入q!是強制退出,同時沒有保存當(dāng)前文件內(nèi)容。如果文件沒有進行修改,或者已經(jīng)保存完畢也可以使用q退出。保存退出使用wq,保存強制退出wq!
保存文件
如果文件已經(jīng)有文件名,我們在末行模式直接輸入w保存,如果沒有文件名,輸入w 文件名進行保存。例如:w test其中test是文件名。
那么在vi中也可以另存為,就是在保存完以后,我們再使用w 另存為文件名。
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 強制保存
編輯到輸入模式:
i 在當(dāng)前光標(biāo)前面輸入
I 在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式
a 在當(dāng)前光標(biāo)后面輸入
A 在當(dāng)前光標(biāo)所在行的行尾,轉(zhuǎn)換為輸入模式
o 在當(dāng)前光標(biāo)所在行的下方,新建一行,并轉(zhuǎn)為輸入模式
O 在當(dāng)前光標(biāo)所在行的上方,新建一行,并轉(zhuǎn)為輸入模式
1、 移動光標(biāo)
字符:方向鍵上下左右或者鍵盤kjhl(上下左右)
單詞:w移至下一個單詞的詞首;e跳至當(dāng)前或下一個單詞的詞尾;b跳至當(dāng)前或前一個單詞的詞首
行內(nèi):0絕對行首;^行首的第一個非空白字符;$絕對行尾
行間:G文章末尾;3G第3行;gg文章開頭
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 刪除、替換單個字符
x刪除光標(biāo)位置字符;3x刪除光標(biāo)開始3個字符;r替換光標(biāo)位置字符
dw刪除一個單詞;4dw刪除光標(biāo)開始的4個單詞;dd刪除光標(biāo)所在行;5dd刪除光標(biāo)開始的5行
3、復(fù)制粘貼剪切
yw復(fù)制一個單詞,p在該行粘貼單詞;yy復(fù)制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個單詞,p再粘貼一個單詞
4、 撤銷重做
u:撤銷;ctrl+r:重做撤銷的操作;.重復(fù)上一步的操作【假設(shè)先dd,再.,會再執(zhí)行dd命令】
1、 set設(shè)置
set nu
set nonu
set readonly #設(shè)置只讀文件,不能修改,只在當(dāng)前環(huán)境有效,退出文件,再次打開,這個只讀就無效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執(zhí)行命令
比如:查找root目錄
:!ls /root/
4、 查找并替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當(dāng)前光標(biāo)行】;【$末尾行】;【%全文】;【g一行內(nèi)全部替換】;【i忽略大小寫】
比如 【 :.,$s/after/before/】 表示在當(dāng)前光標(biāo)行【.】到末尾【$】這個范圍內(nèi),將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,且忽略大小寫并替換一行內(nèi)所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數(shù)第5行的數(shù)據(jù)
比如 【:1,4y】 ,表示復(fù)制1到4行,再按p可粘貼這4行
vi的基本概念
基本上vi可分為三種操作狀態(tài),分別是命令模式(Command mode)、插入模式(Insert mode)和底線命令模式(Last line mode),
各模式的功能區(qū)分如下:
1. Comand mode:控制屏幕光標(biāo)的移動,字符或光標(biāo)的刪除,移動復(fù)制某區(qū)段及進入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字數(shù)據(jù)輸入,按Esc等可回到Comand mode。
3. Last line mode:將儲存文件或離開編輯器,也可設(shè)置編輯環(huán)境,如尋找字符串、列出行號等。
不過可以把vi簡化成兩個模式,即是將Last line mode也算入Command mode,把vi分成Command 和Insert mode。
vi的基本操作
?進入vi
在系統(tǒng)提示符號輸入vi及文件名稱后,即可進入vi全屏幕編輯畫面:
$ vi testfile
有一點要特別注意,就是您進入vi之后是處于“Command mode”下,您要切換到Insert mode才能輸入文字。
初次用vi的用戶都會想先用上下左右鍵移動光標(biāo),結(jié)果電腦一直叫,把自己氣個半死,所以進入vi后,先不要亂動,
轉(zhuǎn)換入Insert后再說。?切換至Insert mode編輯文件在Command mode下按‘i’、‘a(chǎn)’或‘o’三鍵就可進入Insert mode。
這時候您就可以開始輸入文字了。
i: 插入,從目前光標(biāo)所在之處插入所輸入的文字。
a: 增加,目前光標(biāo)所在的下一個字開始輸入文字。
o: 插入新的一行,從行首開始輸入文字。
?Insert的切換→Command mode,按Esc鍵
您目前處于Insert mode,您就只能一直打字。假如您發(fā)現(xiàn)打錯字了,想用光標(biāo)鍵往回移動,將該字刪除,
就要按ESC鍵轉(zhuǎn)換回Command mode,再刪除文字。
?離開vi及存文件
在Command mode下,可按冒號“:”鍵入入Last line mode,例如:
:w filename (輸入“w filename”,將文章存入指定的文件名filename)
:wq (輸入“wq”,因為進入之時已經(jīng)指定文件名testfile,所以會寫入testfile并離開vi)
:q! (輸入“q!”,強制離開并放棄編輯的文件)
Command mode功能鍵列表
在介紹command mode指令的時后,指令后面加上“常用”字眼的功能鍵,表示比較常用的vi指令,
請讀者您一定要學(xué)會、記住。
(1)I、a、o切換進入Insert mode。[超級常用]
(2)移動光標(biāo)
vi可以直接用鍵盤上的光標(biāo)鍵來上下左右移動,但正規(guī)的vi是用小寫英文字母
h、j、k、l,分別控制光標(biāo)左、下、上、右移一格。
按Ctrl+B:屏幕往后移動一頁。[常用]
按Ctrl+F:屏幕往前移動一頁。[常用]
按Ctrl+U:屏幕往后移動半頁。
按Ctrl+D:屏幕往前移動半頁。
按 0 (數(shù)字零):移動文章的開頭。[常用]
按 G:移動到文章的最后。[常用]
按 w:光標(biāo)跳到下個word的開頭。[常用]
按 e:光標(biāo)跳到下個word的字尾。
按 b:光標(biāo)回到上個word的開頭。
按 $:移到光標(biāo)所在行的行尾。[常用]
按 ^:移到該行第一個非空白的字符。
按 0:移到該行的開頭位置。[常用]
按 #:移到該行的第#個位置,例:51、121。[常用]
(3)刪除文字
x:每按一次刪除光標(biāo)所在位置的后面一個字符。[超常用]
#x:例如,6x 表刪除光標(biāo)所在位置的后面6個字符。[常用]
X:大字的X,每按一次刪除光標(biāo)所在位置的前面一個字符。
#X:例如,20X 表刪除光標(biāo)所在位置的前面20個字符。
dd:刪除光標(biāo)所在行。[超常用]
#dd:例如,6dd表刪除從光標(biāo)所在的該行往下數(shù)6行之文字。[常用]
(4)復(fù)制
yw:將光標(biāo)所在處到字尾的字符復(fù)制到緩沖區(qū)中。
(想在和#x、#X的功能相反)
p:將緩沖區(qū)內(nèi)的字符粘貼到光標(biāo)所在位置(指令‘yw’與‘p必須搭配使用)。
yy:復(fù)制光標(biāo)所在行。[超常用]
p:復(fù)制單行到您想粘貼之處。(指令‘yy’與‘p’必須搭配使用)
#yy:如:6yy表示拷貝從光標(biāo)所在的該行往下數(shù)6行之文字。[常用]
p:復(fù)制多行到您想粘貼之處。(指令‘#yy’與‘p’必須搭配使用)
“ayy:將復(fù)制行放入buffer a, vi提供buffer功能,可將常用的數(shù)據(jù)存在buffer
“ap:將放在buffer a的數(shù)據(jù)粘貼。
“b3yy:將三行數(shù)據(jù)存入buffer b。
“b3p:將存在buffer b的資料粘貼
(5)取代
r: 取代光標(biāo)所在處的字符:[常用]
R:取代字符直到按Esc為止。
(6)復(fù)原(undo)上一個指令
u:假如您誤操作一個指令,可以馬上按u,回復(fù)到上一個操作。[超常用]
.: .可以重復(fù)執(zhí)行上一次的指令。
(7)更改
cw:更改光標(biāo)所在處的字到字尾$處。
c#w:例如,c3w代表更改3個字。
(8)跳至指定行
Ctrl+G:列出光標(biāo)所在行的行號。
#G:例如,15G,表示移動光標(biāo)至文章的第15行行首。[常用]
Last line mode下指令簡介
讀者您要使用Last line mode之前,請記得先按Esc鍵確定您已經(jīng)處于Command mode下后,再按冒號“:”或“/”或“?”
三鍵的其中一鍵進入Last line mode。
1.列出行號
set nu: 輸入“set nu”后,會在文章的每一行前面列出行號。
2.跳到文章的某一行
#:井號代表一個數(shù)字,在Last line mode提示符號“:”前輸入數(shù)字,再按Enter就會跳到該行了,
如:15[Enter]就會跳到文章的第15行。[常用]
3.尋找字符串
/關(guān)鍵字:先按/,再輸入您想尋找的字,如果第一次找的關(guān)鍵字不是您相盡可能的,可以一直按n會往下尋找到您要的關(guān)鍵字為止。
?關(guān)鍵字:先按?,再輸入您想尋找的字,如果第一次找的關(guān)鍵字不是您想要的,可以按n會往前尋找到您要的關(guān)鍵字為止。
4.取代字符串
1,$s/string/replae/g:在last line mode輸入“1,$s/string/replace/g”會將全文的string字符串取代為replace字符串,
其中1,$s就是指搜尋區(qū)間為文章從頭至尾的意思,g則是表示全部取代不必確認。
%s/string/replace/c:同樣會將全文的string字符串取代為replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,
c則是表示要替代之前必須再次確認是否取代。
1,20s/string/replace/g:將1至20行間的string替代為relpace字符串。
5.存文件
w:在last line mode提示符號“:”前按w即可將文件存起來。[超常用]
#,# w filename:如果您想摘取文章的某一段,存成另一個文件,可用這個指令#代表行號,例如30,50 w nice,
將您正在編輯文章的第30~50行存成nice這個文件。
6.離開
q:按q就離開,有時如果無法離開vi,可搭配“!:強置離開vi,如“q!”
qw:一般建議離開時,搭配w一起使用,如此離開時還可存文件
[root@loalhost]#vi
/mnt/sdcard/etc/...
在命令行中輸入vi
接著你要編輯的文件路徑
1、首先打開linux vi,進入到編輯頁面中,
2、然后按下“ESC”按鍵就可以切換到命令模式中了。
3、然后還可以按下“Ctrl+C”快捷鍵,這樣就可以快速切換到命令模式。
4、然后還可以按下“Ctrl+[”快捷鍵,這樣也可以快速切換到命令模式中。