马哥教育网络班21期-第六周课程练习

请详细总结vim编辑器的使用并完成以下练习题

vim编辑器的使用

vim模式:

 a,编辑/命令模式;

 b,insert/输入模式

 c,末行模式

打开文件:

 vim    [option]…    file…

 +#:打开文件后,直接让光标处于第#行行首

 +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

模式转换:

 编辑模式 –> 输入模式

 i:insert ,在光标所在之前输入

 a:append,在光标所在之后输入

 o:在光标所在行下方开始新行

 I:在光标所在行行首输入

 A:在光标所在行行尾输入                    

 O:在光标所在行的上方开始新行

 输入模式 –> 编辑模式    按ESC

 编辑模式 –> 末行模式    按:

关闭文件

 :q    退出

 :q!    不保存修改,强制退出

 :wq    保存退出

 :x    保存退出

 :w    /path/to/somefile    

 ZZ    保存退出

光标跳转

 字符间跳转:h左,j下,k上,l右

 #command:跳转由#指定的个数的字符

 单词间跳转:

 w:下一个单词的词首

 e:当前或下一个单词的词尾

 b:当前或下一个单词的词首

 #command:跳转由#指定的个数的单词

行首行尾跳转:

 ^:跳转至行首的第一个非空白字符

 0:跳转至行首

 $:跳转至行尾

行间移动:

  #G:跳转至指定的#行

  G:最后一行

 1G,gg:第一行

句间移动:

 ):下一句

 (:上一句

 }:下一段

 {:上一段

VIM的编辑命令:

 字符编辑:

  x:删除光标处的字符

   #x:删除光标处以后的#个字符

  xp:交互光标所在处及其后面单个字符的位置

 删除命令:

  d:删除命令,可结合光标跳转字符,实现范围删除

   d$    d^    d0

   dd    删除光标所在整行

 粘贴命令paste:

   p:编辑器缓冲区存储的如果是整行,则粘贴至当前光标所在行的下方,否则,粘贴至当前行的后方

   P:编辑器缓冲区存储的如果是整行,则粘贴至当前光标所在行的上方,否则,粘贴至当前行的前方

 复制命令yank:

   y:复制,命令方式和d命令一样

 改变命令change:

   c:修改,并从编辑模式 –> 输入模式

 替换命令replace:

   r:替换

 可视化模式

  v:按字符选定

  V:按行选定

 Note:经常结合编辑命令,d c y

 撤销此前的编辑undo:

  u:撤销此前的操作

 恢复此前的撤销:

  Ctrl+r

 重复前一次编辑操作:.

 翻屏操作:

  Ctrl+f : 向下翻屏

  Ctrl+b:向上翻屏

  Ctrl+d:向上翻半屏

  Ctrl+u:向下翻半屏

Vim中的末行模式:

 内建的命令行接口

 1. 地址定界

 :start_pos,end_pos

 :m,+n   选定从第m行开始向下的n行

 :.,$    选定当前行到最后一行

 :1,$-1    从第一行到倒数第二行

 :%    全文

 :/pattern1/,/pattern2/    选定从第一次pattern1匹配到的行到第一次被pattern2匹配到的行中间的所有行

  使用方式:

  后跟一个编辑命令

  r    /path/to/somefile    在指定位置插入指定文件中的所有内容

 2. 查找

  /pattern:向下查找

  ?/pattern:向上查找

 3. 查找并替换(分隔符可使用其他字符,例如s#p1#p2#)

  s:在末行模式下完成查找替换操作

  s/查找的内容/替换的内容/修饰符

  s/pattern/替换的内容/修饰符    替换的内容可以使用\1 , \2,还可以使用 & 引用前面查找到的内容

修饰符:

 i:忽略大小写

 g:全局替换,默认替换只替换第一次匹配到的内容

VIM编辑多文件模式

 vim    file1    file2    file3…

 :next    跳转到vim打开的下一个文件

 :prev    跳转到vim打开的前一个文件

 :first    跳转到VIM打开的第一个文件

 :last    跳转到VIM打开的最后一个文件

 :wall    保存所有文件

 :qall    退出所有

VIM窗口分隔模式

 vim -o|O  file1 file2.。。

 -o:水平分割

 -O:垂直分割

 在窗口间切换,Ctrl+w,方向键

 单文件窗口分割

 Ctrl+w,s:split,水平分割

 Ctrl+w,v:vertical,垂直分割

定制VIM的工作特性:

 配置文件:永久有效

 全局:/etc/vimrc

 个人:~/.vimrc

 末行:当前vim进程有效

  1. 行号

  显示:set number,简写set nu

   取消显示:set nonumber,简写 set nonu

  2. 括号匹配

   匹配:set  showmatch,简写为 set  sm

   取消匹配:set nosm

  3. 自动缩进

   缩进:set ai

   取消缩进:set noai

  4. 高亮搜索

   启用:set  hlsearch

   取消:set  nohlsearch

  5. 语法高亮

   启用:syntax on

   取消:syntax off

  6. 忽略大小写

   启用:set ic

   不忽略:set noic

VIM 如何获取帮助

末行模式下使用    :help  command


1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

:%s/^[[:space:]]\+/#/

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

:%s/^[[:space:]]//

3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

:%s/^#[[:space:]]\+//

4、为/tmp/grub.conf文件中前三行的行首加#号;

:1,3s/^/#/

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

:%s/gpgcheck=0/gpgcheck=1/  
:%s/enabled=0/enabled=1/

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202

#!/bin/bash
#
cp -R /etc  /backup/etc-$(date +%Y%m%d%H%M)
crontab -e
0 */4 * * *  /backup.sh

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402

#!/bin/bash
#
cp -R /var/log/messages  /backup/messages_logs/messages-$(date +%Y%m%d)
crontab -e
0 0 * * 2,4,6  /backup.sh

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

#!/bin/bash
#
grep '^S' /proc/meminfo > /stats/memory.txt
crontab -e
0 */2 * * *  /meminfo.sh

9、工作日的工作时间内,每两小时执行一次echo ""howdy""

#!/bin/bash
#
echo "howdy"
crontab -e
0 9-18/2 * * 1-5  /howdy.sh

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间; 

mkdir -p /tmp/testdir-$(date +%F-%T)

11、在此目录创建100个空文件:file1-file100

for i in {1..100};do touch file$i;done

12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

[root@localhost backup]# awk -F: '{if(NR%2==0){print $1}}' /etc/passwd

13、创建10用户user10-user19;密码同用户名;

[root@localhost backup]# for i in {10..19};do useradd user$i;echo "user$i" | passwd --stdin user$i  ;done

14、在/tmp/创建10个空文件file10-file19; 

[root@localhost backup]# for i in $(seq 10 19);do touch file$i;done

15、把file10的属主和属组改为user10,依次类推。

[root@localhost backup]# for i in {1..10};do chown user$i:user$i file$i;done

原创文章,作者:Net21_木头,如若转载,请注明出处:http://www.178linux.com/35605

(0)
Net21_木头Net21_木头
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • 译文-Symbolic一个基于func集中式管理平台[原创]

    Symbolic是一个开源的企业平台,旨在建立、配置和管理您的庞大分布式数据中心为目的开源框架,代表了目前最先进的数据中心解决方案的集中管理平台。 特征 属于RedHat认证协议栈的应用 具于func后端应用 支持 RHEL、Centos及Fedora 先进的拖放标签管理(Ajax) 提供Cobbler支持 灵活管理操作用户、主机 组和权限管理标记 先进的基…

    Linux干货 2015-03-27
  • 6

    请详细总结vim编辑器的使用并完成以下练习题; 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/ rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; #   cp /etc/rc.d/rc.sysinit /tmp/ #   vim…

    Linux干货 2017-02-07
  • 你会用Python写洗脑神曲吗?

    Python实战班-学员学习成果展示 同样是周末,有些人是闲聊着度过,有些人是学习充电度过。 人与人最大的区别,是下班后的时间。看你怎么去利用。 周末时,马哥Python实战班的学员正在认真上课,他们中的不少人,月薪在10k以上,甚至月薪20k以上。 但他们没有虚度周末时光。 #最浪费时间的就是:思而不学+犹豫不决。# 马哥Python实战班二期的小伙伴们才…

    Linux干货 2016-07-05
  • CentOS6下的网络信息配置

    简介     我们都知道在我们互联网中,所有的通信都通过网络来完成的,有了网络当然也要有对应的地址,MAC地址是固定不变的,所以能变的只有IP的地址,那么今天来带给大家如何在CentOS6中如何配置网卡。当然一下的所有命令都是在CentOS6中进行的。 一、网卡的配置文件    1.操作网卡的命令 …

    Linux干货 2017-03-20
  • vsftpd虚拟用户搭建

    首选的FTP服务器搭建方式 安装vsftpd      yum install -y vsftpd      systemctl enable vsftpd     #设置开机启动      systemctl is-enabled vsf…

    Linux干货 2017-04-27
  • 做有高薪有逼格的运维工程师,不会Linux是没有前途的!

    作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。 相对于普罗大众的一无所知,技术圈对运…

    2017-09-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 15:06

    写的很好,排版还可以在漂亮一点,加油