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
下一篇 2016-12-18

相关推荐

  • CentOS系统启动流程

    Linux系统(Centos 5、6)启动流程 一、POST加电自检 Power-On-Self-Test 按下电源键以后,系统调用存储在ROM中的BIOS和存储在RAM中的CMOS(用来保存各项参数的设定)完成系统硬件状态的检查,如果硬件有问题则提示用户问题严重无法开机的会发出警报声音;硬件自检完成后进入下一步。 二、Boot Sequence与…

    Linux干货 2016-11-24
  • tom猫—–(Tomcat详解)

    目录 安装tomcat tomcat目录结构及配置文件构成以及主配置文件server.xml ,tomcat中的组件 实现反代tomcat的方法 nginx+tomcat cluster http(mod_porxy_http)+tomcat cluster http(mod_porxy_ajp)+tomcat cluster http(mod_jk)+to…

    2017-11-16
  • Http请求流程

    1、http请求流程 1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把www.mycompany.com变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。 DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个…

    Linux干货 2017-02-13
  • Linux文件管理命令详解–cp,mv,rm

    在Linux系统里平时需要对目录文件做一些管理操作,其中最基本的有cp,mv,rm等命令: cp命令:copy 复制   其中包含源文件,目标文件: copy分为单源复制和多源复制,详解如下:               单源复制:cp [option]…[-T] S…

    Linux干货 2016-11-06
  • httpd协议配置进阶

    目录 虚拟主机配置 status状态页面 curl命令 mod_deflate模块 https配置 httpd自带应用程序 虚拟主机配置 有三种实现方案:    基于IP:        为每个虚拟主机准备至少一个IP地址    基于端口:     &nbsp…

    Linux干货 2016-10-31
  • 脚本的进阶与一些基本脚本

    1,脚本中用于表示数字大小写和符号为: -gt(大于)-lt(小于)-ne(不等于)-eq(等于) 格式为 [[空格 ”符号”空格]] 2,测试文件类型的选项 -f(是否为普通文件)-l(是否为链接文件)-d(是否为目录)-e(单独测试文件是否存在) 3,if语句的格式:(其中path代表条件,elif链接多个条件,最后一个条件用else表示) if pat…

    Linux干货 2017-05-22

评论列表(1条)

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

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