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/
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值