N25 – Week6 作业

春节过去了,我们又开学了,又可以写博客,做作业了,好开心.N25 - Week6 作业

下面是第6周的博客作业:

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

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

[root@dhcp-10-129-6-166 ~]# head -30 /tmp/rc.sysinit | sed 's@^[[:space:]]@#&@g'
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
#
#
# # Rerun ourselves through initlog                                                // 通过 /sbin/initlog 命令重新运行自己
# if [ -z "$IN_INITLOG" -a -x /sbin/initlog ]; then                            // 条件是 :如果 IN_INITLOG 变量的值不为空,且 /sbin/initlog 可执行
#     exec /sbin/initlog -r /etc/rc.d/rc.sysinit                                // 调用 exec /sbin/initlog ,-r 是表示运行某个程序,为了将rc.sysinit的运行信息记到syslog里(/var/log/messages)
#        fi
#
#         ######################################################################################################################################################
#
#          HOSTNAME=`/bin/hostname`                            # 取得主机名
#          HOSTTYPE=`uname -m`                                    # 取得主机类型
#          unamer=`uname -r`                                          # 取得内核的 release 版本(例如 2.4.9.30-8)
#          eval version=`echo $unamer | awk -F '.' '{ print "(" $1 " " $2 ")" }'`            # 取得版本号
#
#               if [ -f /etc/sysconfig/network ]; then                # 如果存在 /etc/sysconfig/network ,则执行该文件。
#                   . /etc/sysconfig/network                             # network 文件主要控制是否启用网络、默认网关、主机名
#                       fi
#                       if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then            # 如果执行 network 文件后 HOSTNAME 为空或者为 "(none)" ,
#                           HOSTNAME=localhost                                                        # 则将主机名设置为 "localhost"
#                               fi
#
#
#                                 # Mount /proc and /sys (done here so volume labels can work with fsck)        # 接下来是挂载 /proc 和 /sys ,这样 fsck 才能使用卷标
#                                 mount -n -t proc /proc /proc                                                                      #  -n 表示不写 /etc/mtab ,这在 /etc 所在的文件系统为只读时用。因为此时的/还是只读的

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

[root@dhcp-10-129-6-166 ~]# sed 's@^[[:space:]]*@@g' /tmp/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -s $prefix/grubenv ]; then
load_env
fi
...

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

root@dhcp-10-129-6-166 ~]# head -30 /tmp/rc.sysinit | sed 's@^#[[:space:]]*@@g'
!/bin/bash

/etc/rc.d/rc.sysinit - run once at boot time



 # Rerun ourselves through initlog                                                // 通过 /sbin/initlog 命令重新运行自己
 if [ -z "$IN_INITLOG" -a -x /sbin/initlog ]; then                            // 条件是 :如果 IN_INITLOG 变量的值不为空,且 /sbin/initlog 可执行
     exec /sbin/initlog -r /etc/rc.d/rc.sysinit                                // 调用 exec /sbin/initlog ,-r 是表示运行某个程序,为了将rc.sysinit的运行信息记到syslog里(/var/log/messages)
         fi

          ######################################################################################################################################################

           HOSTNAME=`/bin/hostname`                            # 取得主机名
           HOSTTYPE=`uname -m`                                    # 取得主机类型
           unamer=`uname -r`                                          # 取得内核的 release 版本(例如 2.4.9.30-8)

           eval version=`echo $unamer | awk -F '.' '{ print "(" $1 " " $2 ")" }'`            # 取得版本号

                if [ -f /etc/sysconfig/network ]; then                # 如果存在 /etc/sysconfig/network ,则执行该文件。
                    . /etc/sysconfig/network                             # network 文件主要控制是否启用网络、默认网关、主机名
                        fi

                        if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then            # 如果执行 network 文件后 HOSTNAME 为空或者为 "(none)" ,
                            HOSTNAME=localhost                                                        # 则将主机名设置为 "localhost"
                                fi


                                  # Mount /proc and /sys (done here so volume labels can work with fsck)        # 接下来是挂载 /proc 和 /sys ,这样 fsck 才能使用卷标
                                  mount -n -t proc /proc /proc                                                                      #  -n 表示不写 /etc/mtab ,这在 /etc 所在的文件系统为只读时用。因为此时的/还是只读的

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

[root@dhcp-10-129-6-166 ~]# sed '1,3s@^.*@#&@' grub.cfg.head3
##
## DO NOT EDIT THIS FILE
##

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

[root@dhcp-10-129-6-166 ~]# sed -r 's@(enabled|gpgcheck)=0@\1=1@g' /etc/yum.repos.d/CentOS-Media.repo
# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-7.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c7-media [command]
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

6. 每4小时执行一次对/etc目标的备份,备份至/backup目录中,保存的目录名为刑如etc-201504020202

[root@dhcp-10-129-6-166 ~]# cat /var/spool/cron/root
0 */4 * * * root find /etc | cpio -oc > /backup/etc-$(date +%Y%M%d)

7. 每周2,4,6备份/var/log/messages文件至/back/massages_logs/目录中,保存的文件名刑如message-20150402

0 0 * * */2 root find /var/log/messages | cpio -oc > /back/message_logs/message-$(date +%Y%M%d)

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

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

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

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

脚本编程练习:

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

11. 在此目录创建100个空文件;file1-file100

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

[root@dhcp-10-129-6-166 ~]# cat ./my_shell/week6
!#/bin/bash
#create a directory under /tmp and named following by testdir-CURRENTDATE.
declare TEST_DIR=testdir-$(date +%Y%M%d)
mkdir /tmp/$TEST_DIR
#create 100 new empty file under the directory just created.
#use while struction to realize this
declare I=1
while [ $I -le 100 ]; do
        touch /tmp/$TEST_DIR/FILE$I
        let I++
done
#print out user name of even number line in file /etc/password
sed -n 'n;p' /etc/passwd | cut -d: -f 1
[root@dhcp-10-129-6-166 ~]#

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

(0)
JLJL
上一篇 2017-02-13 11:37
下一篇 2017-02-13 15:44

相关推荐

  • 第一周linux学习总结

    1、描述计算机的组成及其功能
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux干货 2017-12-04
  • Linux(Debian系)常用运维命令节选之一

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查看PCI信息:lspci (相比cat /proc/pci更直观) 查看内存信息:cat /proc/meminfo 查看USB设备:cat /proc/bus…

    Linux干货 2016-10-30
  • 马哥教育网络20期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel /home/tuser1 ~]# chmod -R go-r /home/tuser1 2、编辑/etc…

    Linux干货 2016-07-04
  • varnish详解

      第一章    http缓存的基础概念 1、程序运行时具有局部性特征 时间局部性缓存的数据往往被打有时间缀,具有定期失效的特征,过期后会从源服务器检验请求验证是否需要重新拉取数据,某数据被访问后,该数据往往会再次在短时间内被访问到。 空间局部性被访问数据的周边数据被访问的概率会比其它常规数据访问大很多,所以这些访问数…

    Linux干货 2016-11-15
  • 马哥教育网络班22期+第1周课程练习

    一、计算机组成部分及其功能:硬件系统和软件系统     1、计算机的硬件系统组成及其功能:         运算器:处理数据的算术运算及逻辑运算即数据加工处理;         控制器:根据…

    Linux干货 2016-08-15
  • N25-第八周作业

    第八周 1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash # ip=172.16.250. for i in {1..254}; do if ping -w 1 -c 1 $ip$i &> /dev/n…

    Linux干货 2017-03-09

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-10 15:40

    sed默认是不修改源文件的,修改源文件需要加”-i”选项,加油!!!