vi和nano实用操作
三-五、vi多行操作
刪除:處于命令模式時,(dG將光標所在行以下的行刪除;d1G將光標到第一行刪除;這兩個操作很猛)
:1 d(刪除第一行)
:1,10d(刪除第一到第十行)
:set nu顯示行號,獲取行號可大批量刪除連續的行。
光標模式,dd刪除光標所在行,Ndd刪除光標所在行以及往下N行
復制:光標位置yy復制當前行,p粘貼;Nyy復制當前行往下N行。
命令行模式下輸入
6,9 co 12
復制第6行到第9行之間的內容到第12行后面。
剪切:
dd:剪切光標所處當前行
n + dd:剪切光標所在行及以下共 n 行
按 p 粘貼在光標所在行
螢幕上僅列出 /etc/man_db.conf 的第 11 到第 20 行,且有行號存在?
答:
我們可以透過 cat -n 來帶出行號,然後再透過 head/tail 來擷取資料即可!所以就變成如下的模樣了:
cat -n /etc/man_db.conf | head -n 20 | tail -n 10
cat:concatenate(連續的)
/string #向后搜索字符串內容
?string #向前搜索
:r filename #在光標下讀入filename的文件內容
vi中替換:
:s/ab/cd/ #替換光標當前行的第一個ab為cd;
:s/ab/cd/g #替換當前行所有的ab為cd
:2s/ab/cd/ #替換指定行(第二行)的ab為cd
:%s/ab/cd/g 替換所有行的ab為cd,不帶g則替換每行的第一個;
設置自動縮進:set ai(autoindent);取消set noai
并排打開兩個文件:vi -o f1 f2 #上下打開兩個文件,ctrl+w,方向鍵切換光標;vi -O f1 f2#左右并排打開
nano多行操作:
復制,粘貼,剪切:
ctrl+6標記文件開頭,移動光標選擇文本塊(反白顯示),ctrl+k剪切,ctrl+u原地復制,之后光標可以移動到需要粘貼的地方,反復ctrl+u。(暫時沒找到只是復制的操作,不需要cut的情況下)
dd文件復制和轉換:
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個1k大小的空文件,會快速耗盡文件系統inode;
建議在一個空文件夾內生成,不然利用rm -rf *.bat無法刪除,會顯示-bash: /bin/rm: Argument list too long,可通過刪除文件夾刪除。
拷貝文件時,排除某些不需要的文件:
1)使用xargs來做:
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來做:
rsync -avp --exclude = /tmp/test/xxx ?/tmp/test_cp/
?
總結
以上是生活随笔為你收集整理的vi和nano实用操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qsv视频转码
- 下一篇: rpm安装java_【CentOS】rp