第六周作业

vim编辑器的使用

vim在工作过程中有三种模式:编辑模式、输入模式、末行模式

编辑模式:也叫命令模式,键盘操作常被理解为编辑命令。

输入模式:在文本文件中输入内容。

末行模式:vim内置的命令行接口,执行vim的内置命令。

vim的使用

打开文件:#vim [OPTIONS]…[FILE]…

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

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

 

模式转换

  1. ESC键:可以从输入模式转换到编辑模式

  2. 编辑模式–>输入模式可以使用以下命令:

    i:在光标所在处的前方转换为输入模式

    a:在光标所在处的后方转换为输入模式

    o:在光标所在行的下方新建一个空行并转换为输入模式

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

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

    O:在光标所在行的上方新建一个空白行

  3. 编辑模式–>到末行模式:直接输入冒号(:)即可在窗口的左下方显示冒号;

  4. 末行模式–>到编辑模式:敲击ESC按键

  5. 输入–>编辑–>末行:输入模式不能直接栓还到末行模式

 

退出文件:在末行模式下执行

         :q 退出

         :q!不保存直接退出

         :wq 保存并退出

         :x 保存退出

         :wq! 强制保存退出

         :w /PATH/TO/SOOOMEWHERE 保存至某路径

    注意:编辑模式下直接使用快捷键ZZ也可实现保存退出

 

光标的移动

        h:左    l:右    j:下    k:上

        同时还支持数字跳转:#{h|l|j|k} 表示跳#个字符

 

单词间移动:

        w:下一个单词词首

         e:下一个单词词尾

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

        #{w|e|b}跳#个单词

 

行内移动:

        ^:行首第一个非空白字符

        0:绝对行首

        $:绝对行尾

 

句子间移动:

        (:移动到上一句句首

        ):移动到下一句句尾

 

段落间移动:

        {:移动到上一段段首

        }:移动到段尾或下一段段首

 

行间移动:

        #G:跳转到#行

          G:最后一行

         1G,gg:第一行

        

 

练习:

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



%s@^\([[:space:]]\{1,\}.*\)@#\1@g

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



%s@^[[:space:]]\{1,\}@@

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



%s@^#[[:space:]]\{1,}@@g

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

1,3s@^@#@g

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

%s@\(enabled|gpgcheck\)=0@\1=1@g

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

crontab -e
0 */4 * * * /bin/tar -czf /backup/etc-`date +%Y%m%d%H%M` /etc

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

crontab -e
0 0 2,4,6 * * /bin/tar -czf /backup/messages_logs/message-`date +%Y%m%d` /var/log/messages

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

crontab -e
0 */2 * * * /bin/grep "^S\+" /proc/meminfo > /stats/memory.txt

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

crontab-e
0 (9-17)/2 * * 1-5 /bin/echo "howdy"

脚本编程练习

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

!#/bin/bash
mkdir /tmp/testdir-`date +%Y%m%d%H%M%S`

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

!#/bin/bash
for num in {1..100}; do
    touch file"$num"
done

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

#!/bin/bash 
sed -n ‘n;p’ /etc/passwd | cut -d: -f 1 

 

原创文章,作者:M36-Masuri,如若转载,请注明出处:http://www.178linux.com/67504

(0)
M36-MasuriM36-Masuri
上一篇 2017-07-03 23:48
下一篇 2017-07-04 12:58

相关推荐

  • week3

    一,列出当前系统上所有已经登录的用户的用户名,注意,同一个用户登录多次只显示一次即可 who | cut -d' ' -f1 | sort -u 二,取出最后登录到当前系统的用户相关信息 who | cut -d'&nb…

    Linux干货 2016-11-15
  • 磁盘管理的补充及扩展

    磁盘管理的补充及扩展 挂载点和/etc/fstab(配置文件) 使用mount命令挂载为临时挂载开机重启后就会自动卸载,为了永久挂载必须写在配置文件中! 配置文件系统体系  被mount、fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount  -a 命令挂载/etc/fstab中的所有文件系…

    Linux干货 2016-08-30
  • vim编辑器

    vim编辑器    模式化编辑器                        &nbsp…

    Linux干货 2016-08-10
  • Shell脚本使用示例

    目录如下:  1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中 3、编写脚本/root/bin/disk.s…

    Linux干货 2016-08-30
  • redis + keepalived 双主模型

    redis + keepalived 双主模型 架构图:    1.vip默认绑定在redis主上,由redis主提供服务,redis从为备用节点。(实际上提供服务的只是vip) 2.当redis主挂掉,vip会默认漂移至redis从。由redis从提供服务,redis主已经挂掉。 3.当redis主已经恢复,redis从继续提供服务和挂…

    Linux干货 2016-06-23
  • 2

    2

    Linux干货 2018-03-26