vi和nano实用操作
三-五、vi多行操作
刪除:處于命令模式時(shí),(dG將光標(biāo)所在行以下的行刪除;d1G將光標(biāo)到第一行刪除;這兩個(gè)操作很猛)
:1 d(刪除第一行)
:1,10d(刪除第一到第十行)
:set nu顯示行號(hào),獲取行號(hào)可大批量刪除連續(xù)的行。
光標(biāo)模式,dd刪除光標(biāo)所在行,Ndd刪除光標(biāo)所在行以及往下N行
復(fù)制:光標(biāo)位置yy復(fù)制當(dāng)前行,p粘貼;Nyy復(fù)制當(dāng)前行往下N行。
命令行模式下輸入
6,9 co 12
復(fù)制第6行到第9行之間的內(nèi)容到第12行后面。
剪切:
dd:剪切光標(biāo)所處當(dāng)前行
n + dd:剪切光標(biāo)所在行及以下共 n 行
按 p 粘貼在光標(biāo)所在行
螢?zāi)簧蟽H列出 /etc/man_db.conf 的第 11 到第 20 行,且有行號(hào)存在?
答:
我們可以透過(guò) cat -n 來(lái)帶出行號(hào),然後再透過(guò) head/tail 來(lái)擷取資料即可!所以就變成如下的模樣了:
cat -n /etc/man_db.conf | head -n 20 | tail -n 10
cat:concatenate(連續(xù)的)
/string #向后搜索字符串內(nèi)容
?string #向前搜索
:r filename #在光標(biāo)下讀入filename的文件內(nèi)容
vi中替換:
:s/ab/cd/ #替換光標(biāo)當(dāng)前行的第一個(gè)ab為cd;
:s/ab/cd/g #替換當(dāng)前行所有的ab為cd
:2s/ab/cd/ #替換指定行(第二行)的ab為cd
:%s/ab/cd/g 替換所有行的ab為cd,不帶g則替換每行的第一個(gè);
設(shè)置自動(dòng)縮進(jìn):set ai(autoindent);取消set noai
并排打開(kāi)兩個(gè)文件:vi -o f1 f2 #上下打開(kāi)兩個(gè)文件,ctrl+w,方向鍵切換光標(biāo);vi -O f1 f2#左右并排打開(kāi)
nano多行操作:
復(fù)制,粘貼,剪切:
ctrl+6標(biāo)記文件開(kāi)頭,移動(dòng)光標(biāo)選擇文本塊(反白顯示),ctrl+k剪切,ctrl+u原地復(fù)制,之后光標(biāo)可以移動(dòng)到需要粘貼的地方,反復(fù)ctrl+u。(暫時(shí)沒(méi)找到只是復(fù)制的操作,不需要cut的情況下)
dd文件復(fù)制和轉(zhuǎn)換:
dd if=/dev/zero of=user_id ?bs=1M count=100 #if輸入文件,of輸出文件,bs每塊大小,count(copy only N input blocks),生成100M的空文件user_id
seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1 #批量生成1000000個(gè)1k大小的空文件,會(huì)快速耗盡文件系統(tǒng)inode;
建議在一個(gè)空文件夾內(nèi)生成,不然利用rm -rf *.bat無(wú)法刪除,會(huì)顯示-bash: /bin/rm: Argument list too long,可通過(guò)刪除文件夾刪除。
拷貝文件時(shí),排除某些不需要的文件:
1)使用xargs來(lái)做:
ls /tmp/test/ |grep -v .gz |xargs -i cp -r /tmp/test/{} /tmp/test_cp
2)使用find+cpio的方式:
find /tmp/test/ |grep -v .gz |cpio -pdm /tmp/test_cp/
3) 使用rsync來(lái)做:
rsync -avp --exclude = /tmp/test/xxx ?/tmp/test_cp/
?
總結(jié)
以上是生活随笔為你收集整理的vi和nano实用操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: qsv视频转码
- 下一篇: Linux-网络管理