vim管理及其输入输出

vim管理及其输入输出

    Vimlinux中的一个文本处理器,具有程序编辑能力,而且可以自动以颜色辨别语法错误。Vimvi的进阶版。

1.命令模式下配置vim的工作方式

   复制/etc/passwd到当前工作目录

     

     回车后进入vim的命令模式

     

   :set nu 添加行号

   :set nonu 取消行号

   :set cursorline 显示行线

   :set mouse =a 添加鼠标选择

 

  命令模式下输入 :set nu  **注意英文输入哦

     

 

  回车行号显示

      

     :set cursorline 显示行线 输入后按一下回车键

     

    :set mouse=a 添加鼠标选择(vim内鼠标一般是不起作用的)

     

     **上途中命令行最右边的3%指当前文本内容占整个文本的百分比,326表示当前光标所在位置,第3行第26个字符

 

   以上操作之仅在当前打开的vim中生效,设定永久生效,命令模式下:wq退出当前vim环境,shell命令行后输入vim /etc/vimrc,打开vimrc文件

      

   按i进入编辑模式,**在适当地方写入相应指令如图所示,esc退出编辑模式 :wq保存退出vim

      

  再次进入passwdvim环境可以发现显示行号与行线

    

    

2.vim命令模式下关键字搜索

    / 关键字

    n 向下匹配

    N 向上匹配

  在passwd文件中搜索用户student的信息。

  命令号模式下输入 :/student

    

  回车即可,高亮已经标示出

    

   **n 向下匹配,N 向上匹配,是在命令行模式下哦,并且不需要输入,主意大小写,直接按键盘的字母就可以了。

3.vim命令模式下字符的管理

  复制,粘贴,剪切都是在命令模式下进行的,并且不需要在命令模式下命令行后输入参数的,其中剪切,光标所在位置,剪切后按下esc 然后移动光标到所在位置按p进行粘   贴

  字符的复制

   yl             ##复制1个字母

   y3l           ##复制3个字母

   yw           ##复制1个单词(以实验passwd为例 : / x 算作一个单词,复制删除,剪切时注意哦)

   y3w         ##复制3个单词  

   yy             ##复制光标所在行

   y5y          ##复制光标行在内的5

   p             ##粘贴

  字符的删除

   dl          ##删除一个字母

  d2l         ##删除两个字母

  dw          ##删除一个单词

  d3w         ##删除三个单词dd          ##删除1

  d5d         ##删除5

 

  字符的剪切

    cl        ##剪切一个字母

    c3l      ##剪切3个字母

    cw       ##剪切一个单词

    c3w     ##剪切3个单词

    cc          ##剪切一行

    c3c       ##剪切3

    esc ---> p     ##剪切过后会进入到插入模式,在执行粘贴动作时一定要退出插入模式 

    u              ##撤销操作

    ctrl + r      ##反撤销操作

    

       复制第一行r字母粘贴到'bash'

   键盘操作光标停留在“r”上,依次按下“ y1l”  “end”光标移动到第一行末尾按“p”粘贴

     

     

      将刚才复制的“r”删除

   键盘操作光标停留在“r”上,依次按下“d1l”即可

      

    删除掉了“r”

       

       剪切第一行中前四个字母,粘贴到第2行,并撤销此次所有剪切动作

   键盘操作光标停留在第一行r上,

    

   依次按下c4w ,下图所示已经剪切成功

     

   光标移动到最后,可以按向右方向键也可以直接按end了,光标移动到最后也就是h上后,一定记得按下esc,再按p才能出现以下结果,不然h后会出现一个p哦,四个字母      含: x

     

  连续按下两次u即可撤销操作

    

   按住Ctrl不放的同时,在按下r键进行反撤销操作 (就不演示了)

4.vim的可视化模式

   在命令模式下按“ctrl+v”进入到可视模式,在可视模式下可以区域选择字符,视模式下批量添加字符,ctrl+v 选中要加入字符所在列

     “I”进入插入模式,写入要加入的字符

     esc 完成区块编辑


    ctrl+v,进入可视化模式,左下角一定会出现--VISUAL BLOCK--哦,注意是选区背景成为灰色,按上下左右进行选区(选错了按esc退出可视化模式,再按ctrl+v进入可视化模    式)

   已经显示灰色,选区成功

     

   大写字母模式下,按I,浅灰色消失,进入编辑模式,光标自动跳到第一行第一个字母上,按下shift+3,输入“#”符,

      

   在上边的基础上按下esc (两次哦,第一次退出插入模式,第二次才是完成效果)效果完成

      

5.批量修改字符

   :%s/原有字符/替换后字符 ##只替换每一行中出现的第一个原有字符

   :%s/原有字符/替换后字符/g    ##替换所有

   :1,5s/原有字符/替换后字符/g ##替换1-5

     将刚才的在第一列的每一行的“#”删除,vim命令行模式下输入  :%s/#//g

       

   回车完成替换操作

      

   替换前5行的“#”“@‘,第5行后边的不做替换 输入命令 :15s/#/@/g

       

   只将每一行中第一次出现的sbin替换bin

      

   回车后操作成功,注意第7行和第8行哦

      


6.vim的分屏功能

    ctrl+w  s  ##上下分屏

    ctrl+w  v  ##左右分屏

    ctrl+w  c  ##关闭光标所在屏幕

   ctrl+w 上下左右   ##光标移动到指定屏幕

   :sp file2  ##同时编辑当前文件和file2

 

   上下分屏:按住ctrl不放再按w,然后松开所有按键再按下s,即可;左右分屏,按住ctrl不放再按w,然后松开按v,按住ctrl不放再按w,然后松开按c,关闭光标所在屏    幕,按住ctrl不放再按w,然后松开按四个方向键,光标移动到分屏幕。

       

    :q!强制退出vim passwd,新建文件file,再进入passwd中,命令行输入:sp file,按下回车键

    

    

    将passwd中的第二行复制到file

   键盘操作:在vim passwd 命令行键入:sp file 出现以下工作界面

       

     Crtl+w 松开按键后按下向下的按键,

       

   光标停留在第一行,命令模式下按下yy

       

  

     Ctrl+w up 光标移动到file文件屏幕,按下p进行粘贴

       

   光标移动第一行按下dd删除第一行空白行

      

    Ctrl+w c关闭file文件

  报错:因为内容更改

        

   命令模式下 :wq!强制保存退出

       

 

     :wq保存退出vim passwdshell命令行查看file文件内容

      

   7.  vim光标移动在命令模式下

 (除了移动到特定的某一行需要在命令行输入命令:[digit]外,其他操作在命令模式下,注意大小写直接按相应的字母就可以进行操作了,不再演示)

     :数字  ##移动到指定的行

    G      ##文件最后一行

   gg     ##文件第一行

    i      ##光标所在位置插入

    I      ##光标所在行行首s

 

   a    ##光标所在字符的下一个位置

   A    ##光标所在行行尾

   o    ##光标所在行下一行

   O    ##光标所在行上一行

  s     ##删除光标所在字符插入

   S  ##删除光标所在行插入

     移动到第13行  命令 :13

     

8.vim的退出模式

     q=wuit 退出的意思,w=write 写的意思,!强制,这样就能很好理解这几种退出模式了

    :q ##当用vim打开文件但没有对字符作任何操作时可直接退出

    :q! ##当用vim打开文件并对字符作操作,放弃所有操作退出

    :wq ##保存退出

    :wq! ##强行保存退出,对超级用户及文件所有人生效

   需要说明的是为正常退出的情况,直接关闭vim 或者ctrl+d

       

   再次进入vim时会出现以下内容,发现了“.passwd.swp”的文件,最下边有相应的按键选择,根据自身需要进行相应的操作即可,O打开只读模式,E 进行编辑,R进行恢复 D       删除,Q 退出,A 废除

      

9.vim手册

   vimtutor ##vim的手册

   :q ##退出vimtutor

    

     

10.管理输入输出

     linux系统中,正确输出的编号为1,错误输出编号为2

 

   在系统中用普通用户执行 "student"

     find /etc -name passwd

   因为student用户权限问题会有以下输出

    find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力,报错

    find: ‘/etc/pki/rsyslog’: Permission denied

    find: ‘/etc/audit’: Permission denied

    /etc/passwd ##正确输出

    find: ‘/etc/polkit-1/rules.d’: Permission denied

    find: ‘/etc/polkit-1/localauthority’: Permission denied

    find: ‘/etc/dhcp’: Permission denied

    find: ‘/etc/selinux/targeted/modules/active’: Permission denied

    find: ‘/etc/lvm/archive’: Permission denied

    find: ‘/etc/lvm/backup’: Permission denied

    find: ‘/etc/lvm/cache’: Permission denied

    find: ‘/etc/grub.d’: Permission denied

    /etc/pam.d/passwd ##正确输出

    find: ‘/etc/audisp’: Permission denied

    find: ‘/etc/firewalld’: Permission denied

    find: ‘/etc/cups/ssl’: Permission denied

    find: ‘/etc/ipsec.d’: Permission denied

    find: ‘/etc/libvirt’: Permission denied

    find: ‘/etc/sudoers.d’: Permission denied

    find: ‘/etc/named’: Permission denied

 

    find /etc -name passwd > file ##重定向正确输出(默认为1,你也可以在前边加1

    find /etc -name passwd 2> file ##重定向错误输出

    find /etc -name passwd &> file ##重定向所有输出

   注意: >, 2> ,&>  都会覆盖源文件内容

      >filename ##清空filename

 

    find /etc -name passwd >> file ##追加正确输出

    find /etc -name passwd 2>> file ##追加错误输出

    find /etc -name passwd &>> file ##追加所有输出

   注意:>> 2>> &>> 不会覆盖源文件内容,会把相应的输出字符方到文件的最后


    | 管道,管道的作用是将前一条命令的输出变成管道后命令的输入

 

    ls /bin | wc -l ##统计ls /bin 命令输出的行数

    系统中错误的输出是无法通过管道的。

  用 2>&1 可以把错误的输出编号由2变成1

   tee 复制输出到指定位置

   date |tee file |wc -l ###tee命令复制date命令的输出到file中,并统计输出行数

  

   输入重定向  <

     tr 'a-z' 'A-Z' <file

 

   多行录入

     cat >file <<we

     > hello

     > redhat

     > we

   结束

   操作实验:su -username切换用户stdent ,查找passwd中的文件(不切换的话就全成了正确输出了)

       

   重新定向正确输出,正确输出存在student用户桌面上的file.T,当然我们需要切换当前工作目录

      

   查看file.T

      

  重新定向错误输出,错误输出存在student用户桌面上的file.R,并查看file.R

      

  重新定向所有输出,输出存在student用户桌面上的file.A,并查看file.A

      

   当前工作目录(student用户下的桌面也就是/home/student/Desktop)新建一个文件file

     Vim编辑四行内容分别是1243保存退出后再在student用户身份很下/etc/passwd中的正确输出保存到file文件中,要求不能覆盖源文件内容。

      

  管道 |

    列出/bin下的所有内容

     

   ......(省略很多行)

 

    1587行,很多的,ls /bin 列出此文件的内容后经管道 | 传入下一个命令wc -l 最后显示出结果。

      

 

   错误的输出无法经过管道,比如find /etc/ -name passwd 中的错误输出

   统计find /etc/ -name passwd 中的错误输出的个数,其中2>&1意思是把错误输出编号2转为1,这样才能通过管道执行wc统计命令

      

    tee 复制输出到指定位置 

   查看当前时间保存到file4中 并查看file4内容

   命令: date |tee file4 |cat

     

     

 输入重定向  <

   新建文件westos vim编辑内容 westos WESTOS ,全转为大写后重新定向输入westos

      

 

  多行录入

   cat >file <<we

    > hello

    > redhat

    > we

  结束

     

 

  补充1

   Student自己修改密码的方法之一,已知旧密码为student新密码为westos

    


   sh执行 key时,当然失败了,新密码少于8位,返回去重新设定新密码就ok了

   

  补充2

   重新定向输出错误输出扔进垃圾箱,统计正确输出个数。/dev/null是垃圾箱

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值