1.如圖,vi 文件名,接著按回車即可打開對(duì)應(yīng)的文件,如果沒有對(duì)應(yīng)的文件,那么vi命令就會(huì)自動(dòng)創(chuàng)建一個(gè)新的。
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、容縣ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的容縣網(wǎng)站制作公司
2.如圖,vi打開文件后是命令模式狀態(tài),要用i或者a命令才可進(jìn)入可編輯的狀態(tài)喲。這里我就按a進(jìn)入了編輯模式了哦。
3.如圖,在編輯模式的情況下敲完內(nèi)容,這個(gè)時(shí)候就應(yīng)該保存文件了。保存文件要按esc,這樣就會(huì)退回vi的命令模式喔。
4.按完esc后輸入冒號(hào)(英文的),然后就轉(zhuǎn)換到了末行模式了,末行模式?jīng)Q定是否保存文件。
5.如圖所示,末行模式下可以按x來保存,x命令可以保存編輯好的文件喲。
6.也可以用到wq來保存,如果是q!則不保存哦,這點(diǎn)要自己謹(jǐn)記在心,這里我就保存一下vi編寫的文件。
7.然后查看,查看用到了cat 文件名哦。
8.如圖所示,vi編寫的內(nèi)容可以看到,這表明保存成功。
《Linux Shell編程與編輯器使用詳解》(劉麗霞)電子書網(wǎng)盤下載免費(fèi)在線閱讀
資源鏈接:
鏈接:
提取碼:hoon
書名:Linux Shell編程與編輯器使用詳解
作者:劉麗霞
出版社:電子工業(yè)出版社
出版年份:2013-7
頁數(shù):424
內(nèi)容簡(jiǎn)介:
本書由淺入深,全面、系統(tǒng)地介紹了Linux技術(shù),書中提供了大量實(shí)例,供讀者實(shí)戰(zhàn)演練。另外,本書有很多關(guān)于Linux下的命令操作內(nèi)容,所以對(duì)于每個(gè)命令、每個(gè)管理設(shè)置,作者都實(shí)際運(yùn)行了一遍,供讀者參考,在后面的Shell編程中,作者詳細(xì)介紹了Shell變量、函數(shù)、語法、控制結(jié)構(gòu)等重要內(nèi)容,最后一章中介紹綜合實(shí)例,使讀者對(duì)于Shell編程的理解進(jìn)一步加深。
本書共分5篇。第1篇介紹Shell編程基礎(chǔ)、系統(tǒng)管理與設(shè)置;第2篇介紹常用的系統(tǒng)管理命令、系統(tǒng)維護(hù)命令、正則表達(dá)式;第3篇介紹vi編輯器、emacs編輯器;第4篇介紹grep命令、gawk與sed;第5篇介紹其他常用的文本編輯命令、Shell變量及相關(guān)操作、條件測(cè)試、Shell的控制結(jié)構(gòu)、函數(shù)、Shell編程實(shí)例。
本書適合Linux初學(xué)者、想全面學(xué)習(xí)Linux開發(fā)技術(shù)的人員、Linux專業(yè)開發(fā)人員、利用Linux做開發(fā)的工程技術(shù)人員、Linux開發(fā)愛好者、大中專院校的學(xué)生、社會(huì)培訓(xùn)班學(xué)員等。對(duì)于經(jīng)常使用Linux做開發(fā)的人員,更是一本不可多得的案頭必備參考書。
作者簡(jiǎn)介:
劉麗霞:畢業(yè)于西安電子科技大學(xué),獲博士學(xué)位,現(xiàn)就職于武警工程大學(xué)。長(zhǎng)期從事計(jì)算機(jī)信息工程專業(yè)的教學(xué)與科研工作,主要設(shè)計(jì)開發(fā)各種數(shù)據(jù)庫管理信息系統(tǒng)和以面向?qū)ο蠹夹g(shù)為主的大型應(yīng)用軟件。熟悉Java、C++等開發(fā)語言和Linux、Windows CE等操作系統(tǒng),精通SQL Server、Oracle等數(shù)據(jù)庫。
楊宇:畢業(yè)于沈陽農(nóng)業(yè)大學(xué),獲博士學(xué)位,現(xiàn)就職武警工程大學(xué)。長(zhǎng)期從事計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)的教學(xué)與科研工作,從事數(shù)字化設(shè)計(jì)、人工智能等方面的研究,主要設(shè)計(jì)開發(fā)各種信息網(wǎng)站和管理信息系統(tǒng)。熟悉PHP,ASP,Java等開發(fā)語言和Linux操作系統(tǒng),精通MySQL、SQL Server等數(shù)據(jù)庫。主持科研項(xiàng)目1項(xiàng),作為主要完成人參與科研項(xiàng)目5項(xiàng),在國(guó)內(nèi)外期刊上發(fā)表論文16篇,EI檢索4篇,核心期刊12篇,出版?zhèn)€人專著3部。
Vim 是 Vi improved 的縮寫,是 vi 的改進(jìn)版。在Linux中,vi 被認(rèn)為是事實(shí)上的標(biāo)準(zhǔn)編輯器,因?yàn)椋?/p>
所有版本的 Linux 都帶有 vi 編輯器;
占用資源少;
與 ed、ex 等其他編輯器相比,vi 對(duì)用戶更加友好。
你可以使用 vi 編輯器編輯現(xiàn)有的文件,也可以創(chuàng)建一個(gè)新文件,還能以只讀模式打開文本文件。
進(jìn)入 vi 編輯器
可以通過以下方式進(jìn)入 vi 編輯器:
命令
描述
vi filename 如果filename存在,則打開;否則會(huì)創(chuàng)建一個(gè)新文件再打開。
vi -R filename 以只讀模式(只能查看不能編輯)打開現(xiàn)有文件。
view filename 以只讀模式打開現(xiàn)有文件。
例如,使用 vi 編輯器創(chuàng)建一個(gè)新文件并打開:$vi testfile
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]
豎線(|)代表光標(biāo)的位置;波浪號(hào)(~)代表該行沒有任何內(nèi)容。如果沒有 ~,也看不到任何內(nèi)容,那說明這一行肯定是有空白字符(空格、tab 縮進(jìn)、換行符等)或不可見字符。
工作模式
進(jìn)一步了解 vi 之前先來了解一下 vi 的工作模式,vi 有三種工作模式:
1) 普通模式
由Shell進(jìn)入vi編輯器時(shí),首先進(jìn)入普通模式。在普通模式下,從鍵盤輸入任何字符都被當(dāng)作命令來解釋。普通模式下沒有任何提示符,輸入命令后立即執(zhí)行,不需要回車,而且輸入的字符不會(huì)在屏幕上顯示出來。
普通模式下可以執(zhí)行命令、保存文件、移動(dòng)光標(biāo)、粘貼復(fù)制等。
2) 編輯模式
編輯模式主要用于文本的編輯。該模式下用戶輸入的任何字符都被作為文件的內(nèi)容保存起來,并在屏幕上顯示出來。
3) 命令模式
命令模式下,用戶可以對(duì)文件進(jìn)行一些高級(jí)處理。盡管普通模式下的命令可以完成很多功能,但要執(zhí)行一些如字符串查找、替換、顯示行號(hào)等操作還是必須要進(jìn)入命令模式。
注意:有些教程中稱有兩種工作模式,是把命令模式合并到普通模式。
工作模式切換:
在普通模式下輸入 i(插入)、c(修改)、o(另起一行) 命令時(shí)進(jìn)入編輯模式;按 esc 鍵退回到普通模式。
在普通模式下輸入冒號(hào)(:)可以進(jìn)入命令模式。輸入完命令按回車,命令執(zhí)行完后會(huì)自動(dòng)退回普通模式。
提示:如果不確定當(dāng)前處于哪種模式,按兩次 Esc 鍵將回到普通模式。
退出 vi 編輯器
一般在命令模式下退出 vi 編輯器。
退出命令
說明
q 如果文件未被修改,會(huì)直接退回到Shell;否則提示保存文件。
q! 強(qiáng)行退出,不保存修改內(nèi)容。
wq w 命令保存文件,q 命令退出 vi,合起來就是保存并退出。
ZZ 保存并退出,相當(dāng)于 wq,但是更加方便。
退出之前,你也可以在 w 命令后面指定一個(gè)文件名,將文件另存為新文件,例如:w filename2
將當(dāng)前文件另存為 filename2。
注意:vi 編輯文件時(shí),用戶的操作都是基于緩沖區(qū)中的副本進(jìn)行的。如果退出時(shí)沒有保存到磁盤,則緩沖區(qū)中的內(nèi)容就會(huì)被丟失。
移動(dòng)光標(biāo)
為了不影響文件內(nèi)容,必須在普通模式(按兩次 Esc 鍵)下移動(dòng)光標(biāo)。使用下表中的命令每次可以移動(dòng)一個(gè)字符:
命令
描述
k 向上移動(dòng)光標(biāo)(移動(dòng)一行)
j 向下移動(dòng)光標(biāo)(移動(dòng)一行)
h 向左移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)
l 向右移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)
兩點(diǎn)提醒:
vi 是區(qū)分大小寫的,輸入命令時(shí)注意不要鎖定大寫。
可以在命令前邊添加一個(gè)數(shù)字作為前綴,例如,2j 將光標(biāo)向下移動(dòng)兩行。
當(dāng)然,還有很多其他命令來移動(dòng)光標(biāo),不過記住,一定要在普通模式(按兩次 Esc 鍵)下。
用來移動(dòng)光標(biāo)的命令
命令
說明
0 或 | 將光標(biāo)定位在一行的開頭。
$ 將光標(biāo)定位在一行的末尾。
w 定位到下一個(gè)單詞。
b 定位到上一個(gè)單詞。
( 定位到一句話的開頭,句子是以 ! . ? 三種符號(hào)來界定的。
) 定位到一句話的結(jié)尾。
{ 移動(dòng)到段落開頭。
} 移動(dòng)到段落結(jié)束。
[[ 回到段落的開頭處。
]] 向前移到下一個(gè)段落的開頭處。
n| 移動(dòng)到第 n 列(當(dāng)前行)。
1G 移動(dòng)到文件第一行。
G 移動(dòng)到文件最后一行。
nG 移動(dòng)到文件第 n 行。
:n 移動(dòng)到文件第 n 行。
H 移動(dòng)到屏幕頂部。
nH 移動(dòng)到距離屏幕頂部第 n 行的位置。
M 移動(dòng)到屏幕中間。
L 移動(dòng)到屏幕底部。
nL 移動(dòng)到距離屏幕底部第 n 行的位置。
:x x 是一個(gè)數(shù)字,表示移動(dòng)到行號(hào)為 x 的行。
控制命令
有一些控制命令可以與 Ctrl 鍵組合使用,如下:
命令
描述
CTRL+d 向前滾動(dòng)半屏
CTRL+f 向前滾動(dòng)全屏
CTRL+u 向后滾動(dòng)半屏
CTRL+b 向后滾動(dòng)整屏
CTRL+e 向上滾動(dòng)一行
CTRL+y 向下滾動(dòng)一行
CTRL+I 刷新屏幕
編輯文件
切換到編輯模式下才能編輯文件。有很多命令可以從普通模式切換到編輯模式,如下所示:
命令
描述
i 在當(dāng)前光標(biāo)位置之前插入文本
I 在當(dāng)前行的開頭插入文本
a 在當(dāng)前光標(biāo)位置之后插入文本
A 在當(dāng)前行的末尾插入文本
o 在當(dāng)前位置下面創(chuàng)建一行
O 在當(dāng)前位置上面創(chuàng)建一行
刪除字符
下面的命令,可以刪除文件中的字符或行:
命令
說明
x 刪除當(dāng)前光標(biāo)下的字符
X 刪除光標(biāo)前面的字符
dw 刪除從當(dāng)前光標(biāo)到單詞結(jié)尾的字符
d^ 刪除從當(dāng)前光標(biāo)到行首的字符
d$ 刪除從當(dāng)前光標(biāo)到行尾的字符
D 刪除從當(dāng)前光標(biāo)到行尾的字符
dd 刪除當(dāng)前光標(biāo)所在的行
可以在命令前面添加一個(gè)數(shù)字前綴,表示重復(fù)操作的次數(shù),例如,2x 表示連續(xù)兩次刪除光標(biāo)下的字符,2dd 表示連續(xù)兩次刪除光標(biāo)所在的行。
建議各位讀者多加練習(xí)上面的命令,再進(jìn)一步深入學(xué)習(xí)。
修改文本
如果你希望對(duì)字符、單詞或行進(jìn)行修改,可以使用下面的命令:
命令
描述
cc 刪除當(dāng)前行,并進(jìn)入編輯模式。
cw 刪除當(dāng)前字(單詞),并進(jìn)入編輯模式。
r 替換當(dāng)前光標(biāo)下的字符。
R 從當(dāng)前光標(biāo)開始替換字符,按 Esc 鍵退出。
s 用輸入的字符替換當(dāng)前字符,并進(jìn)入編輯模式。
S 用輸入的文本替換當(dāng)前行,并進(jìn)入編輯模式。
粘貼復(fù)制
vi 中的復(fù)制粘貼命令:
命令
描述
yy 復(fù)制當(dāng)前行
nyy 復(fù)制n行
yw 復(fù)制一個(gè)字(單詞)
nyw 復(fù)制n行
p 將復(fù)制的文本粘貼到光標(biāo)后面
P 將復(fù)制的文本粘貼到光標(biāo)前面
高級(jí)命令
下面的一些命令雖然看起來有些古怪,但是會(huì)讓你的工作更有效率,如果你是 vi 重度用戶,就了解一下吧。
命令
說明
J 將當(dāng)前行和下一行連接為一行
將當(dāng)前行左移一個(gè)單位(一個(gè)縮進(jìn)寬度)
將當(dāng)前行右移一個(gè)單位(一個(gè)縮進(jìn)寬度)
~ 改變當(dāng)前字符的大小寫
^G Ctrl+G組合鍵可以顯示當(dāng)前文件名和狀態(tài)
U 撤銷對(duì)當(dāng)前行所做的修改
u 撤銷上次操作,再次按 'u' 恢復(fù)該次操作
:f 以百分號(hào)(%)的形式顯示當(dāng)前光標(biāo)在文件中的位置、文件名和文件的總行數(shù)
:f filename 將文件重命名為 filename
:w filename 保存修改到 filename
:e filename 打開另一個(gè)文件名為 filename 的文件
:cd dirname 改變當(dāng)前工作目錄到 dirname
:e # 在兩個(gè)打開的文件之間進(jìn)行切換
:n 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到下一個(gè)文件
:p 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
:N 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
:r file 讀取文件并在當(dāng)前行的后邊插入
:nr file 讀取文件并在第 n 行后邊插入
文本查找
如果希望進(jìn)行全文件搜索,可以在普通模式(按兩次 Esc 鍵)下輸入 / 命令,這時(shí)狀態(tài)欄(最后一行)出現(xiàn)"/"并提示輸入要查找的字符串,回車即可。
/ 命令是向下查找,如果希望向上查找,可以使用 ? 命令。
這時(shí),輸入 n 命令可以按相同的方向繼續(xù)查找,輸入 N 命令可以按相反的方向繼續(xù)查找。
搜索的字符串中可以包含一些有特殊含義的字符,如果希望搜索這些字符本身,需要在前面加反斜杠(\)。
部分特殊字符列表
字符
說明
^ 匹配一行的開頭
. 匹配一個(gè)字符
* 匹配0個(gè)或多個(gè)字符
$ 匹配一行的結(jié)尾
[ ] 匹配一組字符
如果希望搜索某行中的單個(gè)字符,可以使用 f 或 F 命令,f 向上搜索,F(xiàn) 向下搜索,并且會(huì)把光標(biāo)定位到匹配的字符。
也可以使用 t 或 T 命令:t 命令向上搜索,并把光標(biāo)定位到匹配字符的前面;T 命令向下搜索,并把光標(biāo)定位到匹配字符的后面。
set 命令
set 命令可以對(duì) vi 編輯器進(jìn)行一些設(shè)置。使用 set 命令需要進(jìn)入命令模式。
:set 命令選項(xiàng)
命令
說明
:set ic 搜索時(shí)忽略大小寫。
:set ai 設(shè)置自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
:set noai 取消自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
:set nu 顯示行號(hào)。
:set sw 設(shè)置縮進(jìn)的空格數(shù),例如,將縮進(jìn)空格數(shù)設(shè)置為4::set sw=4。
:set ws 循環(huán)搜索:如果直到文件末尾也沒有查找到指定字符,那么會(huì)回到開頭繼續(xù)查找。
:set wm 設(shè)置自動(dòng)換行,例如,設(shè)置距離邊際2個(gè)字符時(shí)換行::set wm=2 。
:set ro 將文件類型改為只讀。
:set term 輸出終端類型。
:set bf 忽略輸入的控制字符,如 BEL(響鈴)、BS(退格)、CR(回車)等。
運(yùn)行命令
切換到命令模式,再輸入 ! 命令即可運(yùn)行 Linux 命令。
例如,保存文件前,如果希望查看該文件是否存在,那么輸入:! ls
即可列出當(dāng)前目錄下的文件。
按任意鍵回到 vi 編輯器。
文本替換
切換到命令模式,再輸入 s/ 命令即可對(duì)文本進(jìn)行替換。語法為::s/search/replace/g
search 為檢索的文本,replace 為要替換的文本,g 表示全局替換。
Linux自帶有兩個(gè)文本編輯器:vi和nano。
使用nano編輯文件:
nano 文件名
點(diǎn)擊Ctrl-X可以退出編輯,選擇是否保存對(duì)文件的改動(dòng)。
使用vi編輯文件:
vi 文件名
vi有兩個(gè)模式:一個(gè)是編輯模式一個(gè)是命令模式。點(diǎn)擊i可以從命令模式進(jìn)入編輯模式,在點(diǎn)擊esc鍵可以重新進(jìn)入命令模式。我們一般進(jìn)入編輯模式,來進(jìn)行添加,修改,刪除。但是當(dāng)我們刪除和修改的內(nèi)容過多的時(shí)候,我們使用命令行模式,進(jìn)行修改,這樣方便,快捷,而命令行中,最常用到的是x,dd,u,p這四個(gè)命令:x:刪除當(dāng)前字符;dd:刪除當(dāng)前行;u:恢復(fù)前一步操作;p:復(fù)制之前刪除的行。