马哥教育网络班21期第六周作业

详细总结VIM编辑器的使用并完成以下练习题

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

cp /etc/rc.d/rc.sysinit /tmp
vim /tmp/rc.sysinit
:%s/^[[:space:]]\+/#/g

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

cp /boot/grub/grub.conf /tmp
vim /tmp/grub.conf
:%s@^[[:space:]]\+@@g

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

:%s@^#[[:space:]]\+@@g

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

:1,3s/^/#/g

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

:%s/\<enabled=0\>/enabled=1/g
:%s/\<gpgcheck=0\>/gpgcheck=1/g

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

# mkdir /backup
# crontab -l
0 */4 * * * /bin/cp -a /etc/ /backup/etc-$(date +%Y%m%d%H%M) &>/dev/null

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

0 0 * * 2,4,6 /bin/cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d) &>/dev/null


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

0 */2 * * * /bin/egrep '^(S|s)' /proc/meminfo >> /stats/memory.txt &>/dev/null

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

0 8-18/2 * * 1-5 /bin/echo "howdy" &>/dev/null

脚本练习题

10、创建目录/tmp/testdir-当前日期时间;在此目录创建100个空文件:file1-file100

[root@rhel-6 test]# cat test1.sh
#!/bin/bash
TestDir=/tmp/testdir-$(date +%Y%m%d%H%M)
TestLog=${TestDir}/failure.log
mkdir ${TestDir} &>/dev/null
[[ $? -eq 0 ]] && echo "Create ${TestDir} success."
for (( i = 1; i < 101; i++ )); do
        touch ${TestDir}/file$i || echo "Failure:file$i" >> ${TestLog}
done
if [[ -s "${TestLog}" ]]; then
        cat ${TestLog}
else
        echo 'Create file1-file100 success.'
fi
[root@rhel-6 test]# sh test1.sh
Create /tmp/testdir-201608132309 success.
Create file1-file100 success.

12、显示/etc/passwd文件中谓语第偶数行的用户的用户名

[root@rhel-6 test]# cat test2.sh
#!/bin/bash
NO_passwd=$(cat /etc/passwd | wc -l)
echo 'The UserName list is:'
#for (( i = 0; i <= ${NO_passwd}; i+=2 )); do
for i in $(seq 2 2 ${NO_passwd});do
        head -n $i /etc/passwd | tail -n 1 | cut -d':' -f1
done
[root@rhel-6 test]# sh test2.sh
The UserName list is:
bin
adm
...
...

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

[root@rhel-6 test]# cat test3.sh
#!/bin/bash
for i in {10..19}; do
        id user$i &>/dev/null
        if [[ $? -eq 0 ]]; then
                echo "user$i exist."
                echo user$i | passwd --stdin user$i &>/dev/null
                [[ $? -eq 0 ]] && echo "user$i password change success." || echo "user$i password change failed."
        else
                useradd user$i
                echo "user$i" | passwd --stdin user$i &>/dev/null
                [[ $? -eq 0 ]] && echo "Create user$i success." || echo "Creat user$i failure."
        fi
done
[root@rhel-6 test]# useradd user13
[root@rhel-6 test]# sh test3.sh
Create user10 success.
...
user13 exist.
user13 password change success.
Create user14 success.
...

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

[root@rhel-6 test]# cat test4.sh#!/bin/bashTmpFile=/tmp/filefor i in {10..19}; do        if [[ -f "${TmpFile}$i" ]]; then                echo "${TmpFile}$i exist."                chown user$i:user$i ${TmpFile}$i && echo "${TmpFile}$i: owner and group change to user$i:user$i"        else                touch "${TmpFile}$i"                 if [[ $? -eq 0 ]]; then                        echo "${TmpFile}$i create success."                        chown "user$i:user$i" ${TmpFile}$i && echo "${TmpFile}$i: owner and group change to user$i:user$i"                else                        echo "${TmpFile}$i create failure."                fi        fi     done[root@rhel-6 test]# touch /tmp/file12[root@rhel-6 test]# sh test4.sh/tmp/file10 create success./tmp/file10: owner and group change to user10:user10/tmp/file11 create success./tmp/file11: owner and group change to user11:user11/tmp/file12 exist./tmp/file12: owner and group change to user12:user12......

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

(0)
N21-chenggbN21-chenggb
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • diy自己的linux

    准备一台liunx的机器,我用的是liunx虚拟机,Centos6.8的镜像。 单独加载一块硬盘,我加载了一块20G的硬盘,然后用fdisk /dev/sdb进行分区,sdb1用来作为将来系统的/boot分区,所有100M就可以了,sdb2用来作为将来系统的/分区,我给了10G。然后将两个分区格式化为ext4系统。 mkdir /mnt/boot mkdir…

    Linux干货 2016-09-13
  • 20161028第9天作业

    20161028第9天作业 1、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问” 2、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率率,如果超过80%,就发广播…

    Linux干货 2016-10-30
  • Linux正则表达式及文件查找

    1、显示当前系统上root、fedora或者user1用户的默认shell. #   grep  -E   “^(root|fedora|user1)”   /etc/passwd | cut -d: -f1,7     2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,…

    2017-10-22
  • 马哥教育网络班22期第四周课程练习1

    1.cp -r /etc/skel/ /home/tuser1 && chmod -R 600  /home/tuser1 2.max=`cat /etc/group |awk -F":" '{print $3}'|sort -nr| head -n1`|sed -i '$a had…

    Linux干货 2016-09-05
  • ps常用命令

    Linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 5. …

    Linux干货 2017-07-02
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。  cp -rf /etc/skel/  /home/ mv /home/skel /home/tuser1 chmod  -R 700 /home/tuser1 或chmod -R  …

    Linux干货 2016-12-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 15:07

    写的很好,排版也很棒,加油