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.www58058.com/68282

(0)
JLJL
上一篇 2017-02-13
下一篇 2017-02-13

相關推薦

  • keepalived雙主模型的實現

    一、簡介  keepalived 簡介:是服務器高可用的一個重要軟件,它的核心組件有vrrp ,stack, checker ,ipvs, warpper, watch dog  它是vrrp協議的實現,原生設計目的為高可用ipvs服務;keepalived能夠通過配置文件中定義生成ipvs規則 并能夠對RS的健康狀態進行檢測;vrrp_…

    Linux干貨 2014-05-22
  • 一、循環語句:for, while, until 循環執行:將某代碼段重復運行多次重復運行多少次:循環次數事先已知循環次數事先未知有進入條件和退出條件 1.for……do……done for 變量 in 列表 ; do    循環體done 執行機制:依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中…

    Linux干貨 2016-08-19
  • AWK文本工具和軟件包管理

    AWK文本工具 兩種版本1.nawk ??2.gawk gawk ?? 模式掃描和處理語言 選項: -F 指明輸入時用到的字段分隔符 -v ?var=value:自定義變量 基本格式: awk [options] ’program’???file…. program:pattern{action statrments;………

    Linux干貨 2018-03-15
  • 實現NFS為lamp環境web站點提供共享存儲

    1.實驗需求 (1)nfs server導出/data/application/web,在目錄中提供wordpress; (2)nfs client掛載nfs server導出的文件系統,至/var/www/html; (3)客戶端1(lamp)部署wordpress,并讓其正常訪問,要確保正常發文章,上傳圖片。 (4)客戶端2(lamp),掛載nfs se…

    Linux干貨 2017-05-02
  • 馬哥教育N22期第六周作業

    關于vim編輯器使用方法整理 編輯器分為文本編輯器、全屏編輯器、模式化編輯器 vim是最常用的編輯器之一,是vi的增強版 基本模式分為編輯模式、命令模式、輸入模式、末行模式 下面我們介紹一下vim編輯器常用方法: 打開文件 vim +#:打開文件后,直接光標處于第#行行首 +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配 +…

    Linux干貨 2016-10-09
  • CentOS 5和6的啟動流程

    一、Linux組成     1. linux:kernel+rootfs         kernrl的作用:進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能      &nbsp…

    Linux干貨 2016-09-18

評論列表(1條)

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

    sed默認是不修改源文件的,修改源文件需要加”-i”選項,加油!?。?/p>

欧美性久久久久