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)
N24_VCN24_VC
上一篇 2016-12-18 16:53
下一篇 2016-12-18 17:18

相关推荐

  • 8月5日第七节课作业

    一、当天练习 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使 用两种方式) …

    Linux干货 2016-08-08
  • shell脚本之变量、运算、条件测试。

    概述 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令; 编程语言: 低级:             汇编 高级:…

    Linux干货 2016-08-15
  • MySQL系列之一键安装脚本—-单实例/多实例

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1440414       最近在搞MySQL,由于经常测试一些东西。因此,就写了一个一键安装脚本。 脚本用途: 用于在…

    Linux干货 2016-08-15
  • shell脚本的if语句

                                  第一篇  shell脚本中的if语句 一、shell脚本的语句控制        □前面提到了过程式…

    Linux干货 2016-08-19
  • 系统启动和内核管理

    Linux组成 Linux:kernel+rootfs kernel:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure,无返回值; 函数调用:function;有返回值,可以赋值于变量中; 程序:二进制执行文件 包括根目录以及包…

    Linux干货 2017-05-14
  • MySQL复制详解

    目录:        1、简介        2、原理        3、常见复制架构        4、一主一丛异步复…

    Linux干货 2015-10-01

评论列表(1条)

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

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