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

# cp /etc/rc.d/rc.sysinit /tmp/
# vim /tmp/rc.sysinit

    替换命令: %s@^[[:space:]]\+@#&@g

    如图中的13、16、20-21行:

    Linux作业6_第1张图片    

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

# cp /boot/grub/grub.conf /tmp/
# vim /tmp/grub.conf

    替换命令: %s/^[[:space:]]\+//g

    替换后的结果如图中的15-17行:    wKiom1fLtJGwBMdqAABvXvFr5aw248.png

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

# vim /tmp/rc.sysinit

    使用vim替换命令: %s/^#[[:space:]]\+//g

    替换前:

    Linux作业6_第2张图片

    替换后:

    Linux作业6_第3张图片

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

# vim /tmp/grub.conf

    vim替换命令:1,3s/^/#/

    替换前:

    wKioL1fLt0TTPuDxAAAzXBOZyT8460.png

    替换后:

    wKioL1fLuH7hb-eDAABEJ2I1kNg396.png

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

    使用vim打开文件,并用替换命令进行修改,替换命令::%s#enabled=0#enabled=1#

    替换前:

    Linux作业6_第4张图片

    替换后:

    Linux作业6_第5张图片

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

    使用crontab -e命令创建一条计划任务,内容如下:

crontab -e

0 */4 * * * /usr/bin/tar -cJf /backup/etc-$(date +"\%Y\%m\%d\%H\%M").tar.xz /etc/ &> /dev/null

    结果:

    wKiom1fUNWHgt7hRAAAnxTyk4GE371.png        

    说明:

    每4个小时归档压缩(xz)/etc目录,保存至/backup目录下

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

    使用crontab -e命令创建一条计划任务,内容如下:

0 0 * * 2,4,6 /usr/bin/tar -cJf /backup/messages_logs/messages-$(date +"\%Y\%m\%d").tar.xz /var/log/messages/ &> /dev/null

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

# crontab -e
0 */2 * * * /usr/bin/grep '^S' /proc/meminfo > /stats/memory.txt

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

# crontab -e
0 9-17/2 * * 1-5 /usr/bin/echo 'howdy'

脚本编程练习

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

#!/bin/bash
#
dateTime=$(date +"%Y%m%d%H%M")
dir=/tmp/testdir-$dateTime

if [ -d $dir ]; then
    echo "$dir already existed!"
else
    mkdir $dir &> /dev/null
fi

   结果:

    wKiom1fU9YbDTLwvAAAoW4RrOYw798.png

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

#!/bin/bash
#
dateTime=$(date +"%Y%m%d%H%M")
dir=/tmp/testdir-$dateTime
if [ -d $dir ]; then
    echo "$dir already existed!"
else
    mkdir $dir &> /dev/null
fi
cd $dir
for i in {1..100}; do
    touch file$i
done

   结果:

    wKiom1fU_S_B4POpAAB5QDa538o578.png

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

#!/bin/bash
#
userNum=$(cat /etc/passwd | wc -l)
i=2
while [ $i -le $userNum ] 
do
    echo "Line $i: $(head -$i /etc/passwd | tail -1 | cut -d: -f1)"
    let i=i+2
done

     结果:

    Linux作业6_第6张图片

13、创建10用户user10-user19;密码同用户名;

#!/bin/bash
#

if [ ! $UID -eq 0 ]
then
    echo "Please login root."
    exit 1
fi

for i in $(seq 10 19)
do
    if id user$i &> /dev/null
    then
        echo "$user$i already existed!"
    else
        useradd user$i && echo "user$i" | passwd --stdin user$i &> /dev/null && echo "Add user$i finished."
    fi
done

   结果:

    Linux作业6_第7张图片

14、在/tmp/创建10个空文件file10-file19;

#!/bin/bash
#
for i in $(seq 10 19)
do
    if [ -e /tmp/file$i ]
    then
        echo "file$i already existed!"
    else
        touch /tmp/file$i && echo "file$i finished!"
    fi
done

    结果:

    Linux作业6_第8张图片

15、把file10的属主和属组改为user10,依次类推。   

#!/bin/bash
#
for i in {10..19}
do
    if [ -e /tmp/file$i ]
    then
        chown user$i:user$i /tmp/file$i && ls -l /tmp/file$i
    else
        echo "/tmp/file$i not exist!"
    fi
done

    结果:

    Linux作业6_第9张图片