vim文本操作、例行性工作、脚本编程_第六周练习(01)

vim文本操作

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

[root@promote /]# cp /etc/rc.d/rc.sysinit /tmp/
[root@promote /]# ls /tmp/rc.sysinit 
/tmp/rc.sysinit
[root@promote /]# vim /tmp/rc.sysinit
#在末行模式下输入:
%s@^[[:space:]]\+@#&@g

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

[root@promote /]# cp /boot/grub/grub.conf /tmp/
[root@promote /]# ls /tmp/grub.conf 
/tmp/grub.conf
[root@promote /]# vim /tmp/grub.conf
#在末行模式下输入:
%s@^[[:space:]]\+@@g

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

[root@promote /]# vim /tmp/rc.sysinit
#在末行模式下输入:
:%s@^#[[:space:]]\+@@g

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

[root@promote /]# vim /tmp/grub.conf
#在末行模式下输入:
1,3s@^@#@

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

[root@promote /]# vim /etc/yum.repos.d/CentOS-Media.repo
#在末行模式下输入:
:%s@\(enabled\|gpgcheck\)=0@\1=1@g
#注意:@@\1=1@中的1,需要转义;

例行性工作

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

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

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

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

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

0  */2  *  *  * cat /proc/meminfo | grep "^S" >> /stats/memory.txt

Q9:工作日的工作时间内,每两小时执行一次echo "howdy";

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

脚本编程练习

Q10:创建目录/tmp/testdir-当前日期时间;

#!/bin/bash
#
mkdir -p /tmp/testdir-$(date +%Y%m%d-%H:%M:%S)

Q11:在此目录创建100个空文件:file1-file100;

#!/bin/bash
#
cd /tmp/testdir-*
for i in {1..100};do
    touch file$i
done

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

#!/bin/bash
#
awk -F: '{if(NR%2!=0) next;print $1}' /etc/passwd

Q13:创建10用户user10-user19;密码同用户名;

#!/bin/bash
#
for ((i=10;i<=19;i++));do
    id user$i &> /dev/null && exit 0 || useradd user$i && echo "user$i" | passwd --stdin user$i
done

Q14:在/tmp/创建10个空文件file10-file19;

#!/bin/bash
#
for ((i=10;i<=19;i++));do
    if [ -a file$i ];then
        continue
    else
        touch /tmp/file$i
    fi
done

Q15:把file10的属主和属组改为user10,依次类推;

#!/bin/bash
#
for ((i=10;i<=19;i++));do
    chown user$i:user$i /tmp/file$i
done

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

(0)
上一篇 2016-12-18 16:53
下一篇 2016-12-18 17:18

相关推荐

  • 马哥教育网络班19期第七周课程练习

    第七周作业 1.创建一个10G分区,并格式化为ext4文件系统:   (1)要求甘block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;   (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@nginx ~]# fdisk /dev/sdd D…

    Linux干货 2016-06-23
  • vim的简单应用

    vim的简单应用         之前我们学习过Linux的思想,其中有一条就是一切皆文本,所以在这里大部分配置文件都是文本模式存在的,那么使用简单的文字编辑器就可以修改配置了,之前我们学习过nano文本编辑器,但是Vim会比nano使用的更为方便,也更强大。 基本现在所有的Li…

    2017-06-17
  • RHCE系列之磁盘加密—-LUKS加密

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1436460        LUKS (Linux Unified Key Setup)为 Linux 硬盘…

    Linux干货 2016-08-15
  • 群集简介和LVS_nat模式配置

    群集简介: 群集(或集群)和称呼来自于英文单词cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋,但无论哪种群集,都至少包括两台节点服务器。而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集…

    Linux干货 2017-02-13
  • 循环语句

    冯罗伊曼体系架构 1. 输入设备 2. 输出设备 3. 存储器 4. 运算器 5. 控制器 转义序列:\\, \t , \r , \n , \”,  \’ Python:是动态语言,强类型语言 算数运算符 + – */ % ** /是自然除,//是整除 位运算符 & |  ~  ^  <<  >> 原码 5=&gt…

    Linux干货 2018-03-26
  • bash中的变量

        对任何一门编程语言来说,最基础的部分就是变量。那什么事变量呢?变量就是把一个已知的可以变动的值,赋给一个固定名字的,用固定的名字代表这个可变动的值。在bash中也不例外,跟大多数编程语言一样,它也有一些自己的语法和规则 bash变量:     1.规则设置:变量和变量的值中间用=连接,=的两…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:25

    从上面脚本看,完成的都不错~~其中可以合并需求,用一个脚本来实现~~继续加油~