linux的vi命令編輯后wq與x的區(qū)別只有一個(gè)。
創(chuàng)新新互聯(lián),憑借十余年的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上1000+案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)公司。
這兩者一般情況下沒(méi)度什么不一樣,但是在編程方面,對(duì)編輯源文件可能會(huì)產(chǎn)生重要影響。因?yàn)槲募词箾](méi)有修改,":wq"強(qiáng)制更新文件的修改時(shí)間,這樣回會(huì)讓make編譯整個(gè)項(xiàng)目時(shí)以為文件被修改過(guò)了,然后就得答重新編譯鏈接生成可執(zhí)行文件。
這可能會(huì)產(chǎn)生讓人誤解的后果,當(dāng)然也產(chǎn)生了不必要的系統(tǒng)資源花銷。
:wq 強(qiáng)制性寫入文件并退出百。即使文件沒(méi)有被修改也強(qiáng)制寫入,并更新文件的修改時(shí)間。
:x 寫入文件并退出。僅當(dāng)文件被修改時(shí)才寫入,并更新文件修改時(shí)間,否則不會(huì)更新文件修改時(shí)間。
擴(kuò)展資料
vi命令詳解:
基本上vi可以分為三種狀態(tài),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:
1) 命令行模式command mode)
控制屏幕光標(biāo)的移動(dòng),字符、字或行的刪除,移動(dòng)復(fù)制某區(qū)段及進(jìn)入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。
3) 底行模式(last line mode)
將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號(hào)……等。
不過(guò)一般在使用時(shí)把vi簡(jiǎn)化成兩個(gè)模式,就是將底行模式(last line mode)也算入命令行模式command mode)。
Linux中沒(méi)這個(gè)命令;
只是在vi中有這個(gè)指令;
q表示退出;
w表示保存退出;
q!表示強(qiáng)制退出。
linux命令是對(duì)Linux系統(tǒng)進(jìn)行管理的命令,
對(duì)于Linux系統(tǒng)來(lái)說(shuō),無(wú)論是中央處理器、內(nèi)存、磁盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo),還是用戶等都是文件,
Linux系統(tǒng)管理的命令是它正常運(yùn)行的核心,與之前的DOS命令類似,
linux命令在系統(tǒng)中有兩種類型:內(nèi)置Shell命令和Linux命令,
想要在Linux系統(tǒng)之中隨心所欲的行走那就離不開(kāi)掌握常用的Linux命令。
vi 編輯器里。
先 按一下 ESC 退出,然后 按 : 鍵,然后輸入 wq 保存并退出的意思,再打回車,即可退出編輯狀態(tài)。
使用 gcc -o C源文件
即可編譯。
1 29
lzbltx
2010-10-11 超過(guò)23用戶采納過(guò)TA的回答
關(guān)注
:wq是vi的編輯命令,vi編輯命令中“:”命令最后輸入回車鍵執(zhí)行。找一個(gè)LINUX入門的書(shū),學(xué)習(xí)一下簡(jiǎn)單的vi命令就可以編輯程序了。
0果在命令行下使用gedit, 關(guān)閉程序窗口(一般先保存文件),就自動(dòng)退到命令行界面。
如果在命令行下使用vim,先按下ESC退出編輯模式,然后輸入:wq 保存并退出或者q退出或者q!強(qiáng)制退出,從而回到命令行界面。
擴(kuò)展資料:
linux常見(jiàn)命令:
命令
apropos whatis 顯示和word相關(guān)的命令。 參見(jiàn)線程安全
man -t man | ps2pdf - man.pdf 生成一個(gè)PDF格式的幫助文件
which command 顯示命令的完整路徑名
time command 計(jì)算命令運(yùn)行的時(shí)間
time cat 開(kāi)始計(jì)時(shí). Ctrl-d停止。參見(jiàn)sw
nice info 運(yùn)行一個(gè)低優(yōu)先級(jí)命令(這里是info)
renice 19 -p $$ 使腳本運(yùn)行于低優(yōu)先級(jí)。用于非交互任務(wù)。
目錄操作
cd - 回到前一目錄
cd 回到用戶目錄
(cd dir command) 進(jìn)入目錄dir,執(zhí)行命令command然后回到當(dāng)前目錄
pushd . 將當(dāng)前目錄壓入棧,以后你可以使用popd回到此目錄
文件搜索
alias l='ls -l --color=auto' 單字符文件列表命令
ls -lrt 按日期顯示文件. 參見(jiàn)newest
ls /usr/bin | pr -T9 -W$COLUMNS 在當(dāng)前終端寬度上打印9列輸出
find -name '*.[ch]' | xargs grep -E 'expr' 在當(dāng)前目錄及其子目錄下所有.c和.h文件中尋找'expr'. 參見(jiàn)findrepo
find -type f -print0 | xargs -r0 grep -F 'example' 在當(dāng)前目錄及其子目錄中的常規(guī)文件中查找字符串'example'
find -maxdepth 1 -type f | xargs grep -F 'example' 在當(dāng)前目錄下查找字符串'example'
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done 對(duì)每一個(gè)找到的文件執(zhí)行多個(gè)命令(使用while循環(huán))
find -type f ! -perm -444 尋找所有不可讀的文件(對(duì)網(wǎng)站有用)
find -type d ! -perm -111 尋找不可訪問(wèn)的目錄(對(duì)網(wǎng)站有用)
locate -r 'file[^/]*\.txt' 使用locate 查找所有符合*file*.txt的文件
look reference 在(有序)字典中快速查找
grep --color reference /usr/share/dict/words 使字典中匹配的正則表達(dá)式高亮
歸檔 and compression
gpg -c file 文件加密
gpg file.gpg 文件解密
tar -c dir/ | bzip2 dir.tar.bz2 將目錄dir/壓縮打包
bzip2 -dc dir.tar.bz2 | tar -x 展開(kāi)壓縮包 (對(duì)tar.gz文件使用gzip而不是bzip2)
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' 目錄dir/壓縮打包并放到遠(yuǎn)程機(jī)器上
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 dir_txt.tar.bz2 將目錄dir/及其子目錄下所有.txt文件打包
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents 將目錄dir/及其子目錄下所有.txt按照目錄結(jié)構(gòu)拷貝到dir_txt/
( tar -c /dir/to/copy ) | ( cd /where/to/ tar -x -p ) 拷貝目錄copy/到目錄/where/to/并保持文件屬性
( cd /dir/to/copy tar -c . ) | ( cd /where/to/ tar -x -p ) 拷貝目錄copy/下的所有文件到目錄/where/to/并保持文件屬性
( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ tar -x -p' 拷貝目錄copy/到遠(yuǎn)程目錄/where/to/并保持文件屬性
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' 將整個(gè)硬盤備份到遠(yuǎn)程機(jī)器上
Linux下vi命令編輯器怎樣編輯及保存退出方法如下:
1、如圖,vi 文件名,接著按回車即可打開(kāi)對(duì)應(yīng)的文件,如果沒(méi)有對(duì)應(yīng)的文件,那么vi命令就會(huì)自動(dòng)創(chuàng)建一個(gè)新的。
2、如圖,vi打開(kāi)文件后是命令模式狀態(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來(lái)保存,x命令可以保存編輯好的文件。
6、也可以用到wq來(lái)保存,如果是q!則不保存的。
7、然后查看,查看用到了cat 文件名哦。
8、如圖所示,vi編寫的內(nèi)容可以看到,這表明保存成功。
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進(jìn)入vi編輯器后的默認(rèn)模式。任何時(shí)候,不管用戶處于何種模式,按下ESC鍵即可進(jìn)入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符都被當(dāng)作編輯命令來(lái)解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會(huì)響鈴報(bào)警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開(kāi)命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當(dāng)作文件內(nèi)容保護(hù)起來(lái),并將其顯示在屏幕上。在文本輸入過(guò)程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的說(shuō)明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動(dòng)回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實(shí)例演示
首先我們使用命令 vi filename 打開(kāi)一個(gè)文件,這個(gè)時(shí)候進(jìn)入到的是命令模式
接下來(lái)我們按i,然后鍵盤隨便輸入寫內(nèi)容。
然后按ESC重新進(jìn)入到命令模式。
在命令模式的情況下,我們按:,進(jìn)入到了末行模式。
我們輸入wq!,然后回車,強(qiáng)行保存退出。
下次我們?cè)俅蜷_(kāi)對(duì)應(yīng)文件(可用less filename命令打開(kāi)),即可看到內(nèi)容已經(jīng)更改。
補(bǔ)充:
(1)末行模式下:q! 【強(qiáng)制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個(gè)!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個(gè)z即可退出。
更多命令
進(jìn)入vi的命令:
vi filename :打開(kāi)或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開(kāi)文件,并將光標(biāo)置于第n行首
vi + filename :打開(kāi)文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開(kāi)文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename….filename :打開(kāi)多個(gè)文件,依次進(jìn)行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。
插入文本類命令:
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開(kāi)一行
O:在當(dāng)前行之上新開(kāi)一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開(kāi)始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標(biāo)處開(kāi)始及其后的n-1個(gè)字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標(biāo)開(kāi)始處向文件尾搜索pattern
?pattern:從光標(biāo)開(kāi)始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復(fù)上一步被撤銷的操作
選項(xiàng)設(shè)置:
all:列出所有選項(xiàng)設(shè)置情況
term:設(shè)置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number:顯示行號(hào)
report:顯示由面向行的命令修改過(guò)的數(shù)目
terse:顯示簡(jiǎn)短的警告信息
warn:在轉(zhuǎn)到別的文件時(shí)若沒(méi)保存當(dāng)前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開(kāi)始
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 :保存當(dāng)前文件
:e filename:打開(kāi)文件filename進(jìn)行編輯
:x:保存當(dāng)前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當(dāng)前行
寄存器操作:
“?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個(gè)字母,也可以是一個(gè)數(shù)字
ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。