linux的vi命令編輯后wq與x的區(qū)別只有一個。

創(chuàng)新互聯(lián)專注于嵐縣企業(yè)網(wǎng)站建設(shè),成都響應式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。嵐縣網(wǎng)站建設(shè)公司,為嵐縣等地區(qū)提供建站服務。全流程定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
這兩者一般情況下沒度什么不一樣,但是在編程方面,對編輯源文件可能會產(chǎn)生重要影響。因為文件即使沒有修改,":wq"強制更新文件的修改時間,這樣回會讓make編譯整個項目時以為文件被修改過了,然后就得答重新編譯鏈接生成可執(zhí)行文件。
這可能會產(chǎn)生讓人誤解的后果,當然也產(chǎn)生了不必要的系統(tǒng)資源花銷。
:wq 強制性寫入文件并退出百。即使文件沒有被修改也強制寫入,并更新文件的修改時間。
:x 寫入文件并退出。僅當文件被修改時才寫入,并更新文件修改時間,否則不會更新文件修改時間。
擴展資料
vi命令詳解:
基本上vi可以分為三種狀態(tài),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:
1) 命令行模式command mode)
控制屏幕光標的移動,字符、字或行的刪除,移動復制某區(qū)段及進入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。
3) 底行模式(last line mode)
將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號……等。
不過一般在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。
先按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當做文件內(nèi)容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按下Esc鍵即可。
3、末行模式
末行模式也稱 ex 轉(zhuǎn)義模式。在命令模式下,用戶按:鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個:作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。
末行命令執(zhí)行完后,vi 自動回到命令模式。
參考資料:百度百科-vi
vim可以分為三種狀態(tài),分別是 命令行模式(command mode) 、 輸入模式(Insert mode) 和 底行模式(last line mode) ,這 3 種工作模式可隨意切換,如下圖所示。
使用vim編輯文件時,默認處于命令行模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動光標的位置,還可以對文件內(nèi)容進行復制、粘貼、替換、刪除等操作。
下圖所示是vim處于命令行模式的狀態(tài)示意圖。
在輸入模式下,vim可以對文件執(zhí)行寫操作,類似于在Windows系統(tǒng)的文檔中輸入內(nèi)容。
使vim進行輸入模式的方式是在命令模式狀態(tài)下輸入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具體功能下表所示),當編輯文件完成后按 esc 鍵即可返回命令模式。
下圖所示為vim處于輸入模式模式下的示意圖。
底行模式用于對文件中的指定內(nèi)容執(zhí)行保存、查找或替換等操作。
使vim切換到底行模式的方法是在 命令行模式 狀態(tài)下按 : 鍵(注意是英文符號),此時vim窗口的左下方出現(xiàn)一個 : 符號,這是就可以輸入相關(guān)指令進行操作了。
指令執(zhí)行后vim會自動返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下圖所示為vim進入底行模式后的狀態(tài)。
對于新手來說,經(jīng)常不知道自己處于什么模式。不論是自己忘了,還是不小心切換了模式,都可以按一次 esc 鍵返回命令行模式。如果你多按幾次 esc 鍵后聽到"嘀————"的聲音,則代表你已經(jīng)處于命令行模式了。
打開文件
打開文件時光標處于文件尾部
打開文件時,光標定位到第幾行
字符移動
這些移動鍵都可以加上數(shù)字(5h:向左移動5個字符格)
單詞移動
行內(nèi)跳轉(zhuǎn)
行間移動
在底行模式下,直接給出行號,實現(xiàn)跳轉(zhuǎn)
用法:起始地址,結(jié)束地址 s @要替換內(nèi)容@替換后內(nèi)容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a換替換成A,全局替換
顯示取消行號
設(shè)定自動縮進(寫腳本時)
查找到的文本高亮顯示
語法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :個人配置文件,每個用戶的家目錄中,若不存在,手動創(chuàng)建
對于第一次用vim的童鞋,有幾點需要提醒一下:
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進入vi編輯器后的默認模式。任何時候,不管用戶處于何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字符都被當作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應的動作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會響鈴報警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當作文件內(nèi)容保護起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來我們按i,然后鍵盤隨便輸入寫內(nèi)容。
然后按ESC重新進入到命令模式。
在命令模式的情況下,我們按:,進入到了末行模式。
我們輸入wq!,然后回車,強行保存退出。
下次我們再打開對應文件(可用less filename命令打開),即可看到內(nèi)容已經(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 恢復上一步被撤銷的操作
選項設(shè)置:
all:列出所有選項設(shè)置情況
term:設(shè)置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉(zhuǎn)到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當前行
寄存器操作:
“?nyy:將當前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數(shù)字
ndd:將當前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號刪除寄存器中。
在linux終端下用命令編輯一個文件并保存的具體操作步驟如下:
1、首先打開命令控制臺找到要編輯的文件,執(zhí)行命令ls看看下面有幾個文件,我這個下面有個index.php文件。
2、然后執(zhí)行命令vi index.php。
3、這個時候如果想修改這個文件的內(nèi)容,按下間鍵盤上的'i'鍵,最下方就會變成INSERT,就可以修改了。
4、寫個echo的代碼進行保存 Esc+:+wq 這個是保存,回車保存。
5、保存完成以后,再次打開這個文件會發(fā)現(xiàn)剛才寫入的代碼已經(jīng)保存到里面了。
6、不保存的命令Esc+:+q!,通過以上步驟即可實現(xiàn)在linux終端下用命令編輯一個文件并保存。
當前題目:linux編輯完命令 linux編輯常用命令
本文來源:http://chinadenli.net/article48/hpiihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、標簽優(yōu)化、定制開發(fā)、電子商務、虛擬主機、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)