vi profile
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),北侖企業(yè)網(wǎng)站建設(shè),北侖品牌網(wǎng)站建設(shè),網(wǎng)站定制,北侖網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,北侖網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 強(qiáng)制保存
編輯到輸入模式:
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、 移動(dòng)光標(biāo)
字符:方向鍵上下左右或者鍵盤kjhl(上下左右)
單詞:w移至下一個(gè)單詞的詞首;e跳至當(dāng)前或下一個(gè)單詞的詞尾;b跳至當(dāng)前或前一個(gè)單詞的詞首
行內(nèi):0絕對行首;^行首的第一個(gè)非空白字符;$絕對行尾
行間:G文章末尾;3G第3行;gg文章開頭
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 刪除、替換單個(gè)字符
x刪除光標(biāo)位置字符;3x刪除光標(biāo)開始3個(gè)字符;r替換光標(biāo)位置字符
dw刪除一個(gè)單詞;4dw刪除光標(biāo)開始的4個(gè)單詞;dd刪除光標(biāo)所在行;5dd刪除光標(biāo)開始的5行
3、復(fù)制粘貼剪切
yw復(fù)制一個(gè)單詞,p在該行粘貼單詞;yy復(fù)制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個(gè)單詞,p再粘貼一個(gè)單詞
4、 撤銷重做
u:撤銷;ctrl+r:重做撤銷的操作;.重復(fù)上一步的操作【假設(shè)先dd,再.,會再執(zhí)行dd命令】
1、 set設(shè)置
set nu
set nonu
set readonly #設(shè)置只讀文件,不能修改,只在當(dāng)前環(huán)境有效,退出文件,再次打開,這個(gè)只讀就無效了
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)行【.】到末尾【$】這個(gè)范圍內(nèi),將after替換為before, 但是如果一行有多個(gè)after的話,只會把第一個(gè)after替換掉 。
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個(gè)after的話,只會把第一個(gè)after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個(gè)after的話,會把該行所有after替換掉,因?yàn)樵诿罾锩婕恿薵 。
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫并替換一行內(nèi)所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數(shù)第5行的數(shù)據(jù)
比如 【:1,4y】 ,表示復(fù)制1到4行,再按p可粘貼這4行
1、vi命令下的查找和替換
1.1 vi下的查找
/helloEnter :向下查找hello匹配字符串
?helloEnter:向上查找hello匹配字符串
使用了查找命令之后,使用如下兩個(gè)鍵快速查找:
n:按照同一方向繼續(xù)查找
N:按照反方向查找
hello是需要匹配的字符串,例如:
/nameEnter? ? ? #查找name
/nameEnter? ? #查找name單詞(注意前后的空格)
除此之外,hello還可以使用一些特殊字符,包括(/、^、$、*、.),其中前三個(gè)這兩個(gè)是vi與vim通用的,“/”為轉(zhuǎn)義字符。
/^nameEnter? ? #查找以name開始的行
/name$Enter? ? #查找以name結(jié)束的行
//^nameEnter? ? #查找^name字符串
1.2 vi下的替換
:s/name/title/? ? ? ? #替換當(dāng)前行第一個(gè) name 為 title
:s/name/title/g? ? #替換當(dāng)前行所有 name 為 title
:n,$s/name/title/? ? #替換第 n 行開始到最后一行中每一行的第一個(gè) name 為 title
:n,$s/name/title/g? ? #替換第 n 行開始到最后一行中每一行所有 name 為 title
#(n 為數(shù)字,若 n 為 .,表示從當(dāng)前行開始到最后一行)
:%s/name/title/? ? ? ? #(等同于 :g/name/s//title/) 替換每一行的第一個(gè) name 為 title
:%s/name/title/g? ? #(等同于 :g/name/s//title/g) 替換每一行中所有 name 為 title
可以使用 #或+ 作為分隔符,此時(shí)中間出現(xiàn)的 / 不會作為分隔符
:s#name/#title/#? ? ? ? 替換當(dāng)前行第一個(gè) name/ 為 title/
:%s+/oradata/apras/+/user01/apras1+ (
使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2.sed和grep配合
命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
作用:將當(dāng)前目錄(包括子目錄)中所有txt文件中的yyyy字符串替換為xxxx字符串。其中,
-i 表示操作的是文件,``括起來的grep命令,表示將grep命令的的結(jié)果作為操作文件。
s/yyyy/xxxx/表示查找yyyy并替換為xxxx,后面跟g表示一行中有多個(gè)yyyy的時(shí)候,都替換,而不是僅替換第一個(gè)
另外,如果不需要查找子目錄,僅需要在當(dāng)前目錄替換,用sed命令就行了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt
3.find命令查找和替換
命令格式:find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字符串|替換后的字符串|g'
#查找替換當(dāng)前目錄下包含字符串并進(jìn)行替換
find -name '*.txt' | xargs perl -pi -e 's|江蘇|上海|g'
#遞歸查找替換
find . -type f -name '*.html' | xargs perl -pi -e 's|蘇州|上海|g'
查找批量替換文件時(shí),去除某種類型的文件,下面表示在./salt/*下的所有文件中,不包括tar.gz結(jié)尾的文件,搜索包含有node01字符串的文件
grep "node01" -rl ./salt/* --exclude=*.tar.gz
其實(shí)這里的 -r表示遞歸,-l表示輸出文件名,
也可以將 -rl替換為-rn,-n表示是哪一行,會輸出行號詳細(xì)信息
grep "node01" -rn ./salt/* --exclude=*.tar.gz
替換字符串:
把./salt/*目前下所有文件進(jìn)行遍歷,查是否包含node01字符串的,不包括tar.gz結(jié)尾的文件。然后把node01用test01進(jìn)行批量替換。
grep "node01" -rl ./salt/*??--exclude=*.tar.gz | xargs sed -i 's/node01/test01/g'
Linux常用的命令可以分為以下幾類:安裝和登錄命令、文件處理命令、系統(tǒng)管理相關(guān)命令、網(wǎng)絡(luò)操作命令、系統(tǒng)安全相關(guān)命令、其它命令。
安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last。
文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln。
系統(tǒng)管理相關(guān)命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab。
網(wǎng)絡(luò)操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup。
系統(tǒng)安全相關(guān)命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
Linux簡介
Linux,全稱GNU/Linux,是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。伴隨著互聯(lián)網(wǎng)的發(fā)展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。
它除了在服務(wù)器方面保持著強(qiáng)勁的發(fā)展勢頭以外,在個(gè)人電腦、嵌入式系統(tǒng)上都有著長足的進(jìn)步。使用者不僅可以直觀地獲取該操作系統(tǒng)的實(shí)現(xiàn)機(jī)制,而且可以根據(jù)自身的需要來修改完善Linux,使其最大化地適應(yīng)用戶的需要。
Linux不僅系統(tǒng)性能穩(wěn)定,而且是開源軟件。其核心防火墻組件性能高效、配置簡單,保證了系統(tǒng)的安全。在很多企業(yè)網(wǎng)絡(luò)中,為了追求速度和安全,Linux不僅僅是被網(wǎng)絡(luò)運(yùn)維人員當(dāng)作服務(wù)器使用,甚至當(dāng)作網(wǎng)絡(luò)防火墻,這是Linux的一大亮點(diǎn)。
sed。
在linux中可以利用sed命令來查找和替換文件中的字符串,該命令采用的是流編輯模式,可以根據(jù)正則表達(dá)式匹配和處理文本文件中的數(shù)據(jù),替換語法為“sed”s/要搜索的字符串或正則表達(dá)式/替換值/g'要執(zhí)行操作的文件名”。