N25第六周作业

vim 是vi编辑的升级版,同样有三种工作模式:编辑、命令和一般 模式

blob.png

#:指定行号位置

#,#:指定多少行到多少行

#,+#:指定范围,多少行开始,加#

$:最后一行

.:当前行

.,$-1,当前行到倒数第二行

1,$:全文

%:全文

/从上往下,?:从下往上 搜索

/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行

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

要查找的内容:可以使用正则表达式

替换内容:不能使用正则表达式,但可以引用

 vim操作多文件功能

 vim  file1 file2….

   文件间切换:

    :next(n) 下一个文件

:prev(N) 上一个文件

:first 第一个文件

:last 最后一个文件

    :files 列出所有文件

:wqall 保存全部退出

:wall  全部保存不退出

:qall  全部退出不保存

vim -o  file1 file2 ,,,水平分割

vim -O file1 file2…  垂直分割

ctrl+w,s 垂直分割

ctrl+w,v 水平分割

 

可以自定义一些vim特性,编辑:~/.vimrc

set ai  自动缩进 noai

set si

set ci  ;C风格缩进

set showmatch  括号匹配高亮度 noshowmatch

set hlsearch  ;搜索高亮 nohlsearch

syntax on   ;语法高亮 syntax off

set ic  ; noic 忽略大小写

help 获取帮助 help subject

实例:

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

:%s/^\([[:space:]]\+\)/#\1/g 或者:%s/^\([[:space:]].*\)/#\1/g

 blob.png

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

:%s/^[[:space:]].*//g

blob.png 

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

:%s/^#[[:space:]]\+\([^[:space:]].*\)/\1/g 或者 :%s/^#[[:space:]]\+\([^[:space:]]\+\)/\1/g

注意:前者后面的是贪吃模式,没有关系,但是前面的\+就不能换成.*

 blob.png

blob.png

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

:1,3s/^.*/#&/g

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

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

blob.png

 blob.png

 

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

0  */4  *  *  *  cp  -rf  /etc/   /backup/etc-$(date +\%Y\%m\%d\%H\%M)

 blob.png

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

0 0 * * 2,4,6 cp -f /var/log/messages /backup/messages_logs/messages-$(date +\%Y\%m\%d)

 blob.png

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

 0 */2 * * *    grep -i "^s" /proc/meminfo  >> /stats/memory.txt

 blob.png

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

0 */2 * * 1-5  echo "howdy"

 blob.png

脚本编程练习

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

 blob.png

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

 blob.png

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

如果cat -n 的话,显示行号,很容易看出来,但是后边的cut就要变了

cat -n  /etc/passwd  | awk NR%2==0 | cut -d ':' -f 1 | grep -E "\<[[:alpha:]].*" -o

 blob.png

blob.png

 

原创文章,作者:不忘初衷,如若转载,请注明出处:http://www.178linux.com/66403

(0)
不忘初衷不忘初衷
上一篇 2017-01-10
下一篇 2017-01-11

相关推荐

  • 网络班第七周 作业

    1、创建一个10G分区,并格式为ext4文件系统 (1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 创建了一个20G的SCSI硬盘 fdisk /dev/sdb 创建ext4文件系统 ~]# mke2fs -…

    2017-09-16
  • 文本处理工具之grep

                    文本处理工具之grep 一、grep的简介 1、grep是一个文本过滤器的工具,它根据用户指定的模式(pattern)对目标文本进行匹配检查,并将匹配的行打印到标准输出或输出重定向。 2、模式:由文本字符或正则表达式组成 3、正则表达式分…

    2017-05-06
  • Linux用户和组管理

        登录Linux时我们都需要输入账号和密码,但Linux只会识别账号所对应用ID号,这个ID号就称为UID。     同理每个用户组也都拥有相对应的组ID号,即GID。     Linux根据/etc/passwd文件的内容来查找当前…

    Linux干货 2015-04-26
  • bash 函数

        函数可以让多条shell的命令组成语句块,实现代码重用和模块化编程。让我们在不用重复编写一些脚本,下面让我们来了解函数。 1,函数的简介 函数在脚本中使用应先定义,声明,再可以调用。 函数function 是由若干条shell 命令组成的语句块,实现代码重用和模块化编程。 函数与shell 程序形式上是相似的,…

    Linux干货 2016-08-24
  • N25第九周博客作业

    1、 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/sh lg=0 nlg=0 while read line;do   if [[ “${line}” =~“/sbin/nol…

    Linux干货 2017-03-06
  • 马哥教育网络班22期+第12周课程练习

    1、请描述一次完整的http请求处理过程; 1. 建立或处理连接:接收请求或拒绝请求; 2. 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; 3. 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; 4. 访问资源:获取请求报文中请求的资源; 5. 构建响应报文…

    Linux干货 2016-11-28