2016-9-11第六週做業

  • cp [OPTION]... SOURCE(原文件)... DIRECTORY(目錄)shell

  • sed [options] 'command' file(s)編程

    -i∶直接修改讀取的檔案內容,而不是由螢幕輸出。bash

  • vi中的末行模式:ssh

    #,+#從左側#表示的行起始,加上右側#表示的行數;編輯器

    %:全文  ide

    s:在末行模式下完成查找替換操做
    s/要查找的內容/替換爲的內容/修飾符
    要查找的內容:可以使用模式
    替換爲的內容:不能使用模式,但可使用\1,\2,...等後向引用符號;還可使用"g"引用前面查找時查找到的整行內容;
    oop

  • crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
    spa

    -e [UserName]: 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,若是你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(好比說 setenv VISUAL joe)
    -r [UserName]: 刪除目前的時程表
    -l [UserName]: 列出目前的時程表
    -v [UserName]:列出用戶cron做業的狀態
    命令行

    crontab -e   crontab

    # 此時會進入 vi 的編輯畫面讓您編輯工做!注意到,每項工做都是一行。

    #分 時 日  月 周      |<==============任務的完整命令行
       * */2 */1 * *        grep "^S" /proc/meminfo

  • cut [OPTION]... [FILE]...
    -d DELIMITER: 指明分隔符
    -f FILEDS:
    #: 第#個字段
    #,#[,#]:離散的多個字段,例如1,2,4
    #-#:連續的多個字段,例如1-6

一、複製/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以致少一個空白字符開頭的行的行首加#;

  1. [root@loaclhost ~]# cp /etc/rc.d/rc.sysinit /tmp/

  2. [root@loaclhost ~]# sed -i 's/\(^[[:space:]]\)/#\1/g' /tmp/rc.sysinit

  1. [root@loaclhost ~]# cp /etc/rc.d/rc.sysinit /tmp/

  2. [root@loaclhost ~]# vi /tmp/rc.sysinit

  3. 在末行模式下輸入

  4.  :%s/^[[:space:]]/#&/g

二、複製/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;

  1. [root@loaclhost ~]# cp /boot/grub/grub.conf /tmp/

  2. [root@loaclhost ~]# sed -i 's/^[[:space:]]\+//g' /tmp/grub.conf

  1. [root@loaclhost ~]# cp /boot/grub/grub.conf /tmp/

  2. [root@loaclhost ~]# vi /tmp/grub.conf

  3. 在末行模式下輸入

  4. :s/^[[:space:]]\+//g

三、刪除/tmp/rc.sysinit文件中的以#開頭,且後面跟了至少一個空白字符的行行的#和空白字符

  1. [root@loaclhost ~]# sed -i 's/^#[[:space:]]\+//g' /tmp/rc.sysinit

  1. [root@loaclhost ~]# vi /tmp/rc.sysinit

  2. 在末行模式下輸入

  3.  :%s/^#[[:space:]]\+//g

四、爲/tmp/grub.conf文件中前三行的行首加#號;

  1. [root@loaclhost ~]# sed -i '1,+2s/^/#&/g' /tmp/grub.conf

  1. [root@loaclhost ~]# vi /tmp/grub.conf

  2. 在末行模式下輸入

  3. :1,+2s/^/#&/g

五、將/etc/yum.repos.d/CentOS-Media.repo文件中全部的enabled=0或gpgcheck=0的最後的0修改成1;

  1. [root@loaclhost /]# sed -i '/enabled/s/0/1/g;/gpgcheck/s/0/1/g;' /etc/yum.repos.d/CentOS-Media.repo

  1. [root@loaclhost ~]# vi /etc/yum.repos.d/CentOS-Media.repo

  2. 在末行模式下輸入

  3. :%s/enabled=0/enabled=1/g

    :%s/gpgcheck=0/gpgcheck=1/g

六、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名爲形如etc-201608300202

  1. [root@loaclhost /]# cat /do/crond-shell.sh

    #!/bin/bash

    cd /

    tar zcf /backup/etc-`date +\%Y\%m\%d\%H\%M` ./etc > /dev/null 2>&1

  2. [root@loaclhost ~]# chmod +x /do/crond-shell.sh

  3. [root@loaclhost /]# crontab -e
    crontab: installing new crontab
    00 */4 * * * sh /do/crond-shell.sh

[root@loaclhost /]# crontab -e
crontab: no changes made to crontab
00 */4 * * * cp -r /etc/ /backup/etc-`date +%Y%m%d%H%M`

七、每週2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20160830

  1. [root@loaclhost /]# cat /do/week-shell.sh

    #!/bin/bash

    cd /

    tar zcf /backup/messages-'date+%Y%m%d' ./var/log/messages > /dev/null 2>&1

  2. [root@loaclhost ~]# chmod +x /do/crond-shell.sh

  3. [root@loaclhost /]# crontab -e

    crontab: no changes made to crontab

    00 2 * * */2,4,6 /do/week-shell.sh > /dev/null 2>&1

  1. [root@loaclhost /]# crontab -e

    crontab: no changes made to crontab

    00 2 * * */2,4,6 cp -r /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`

八、天天每兩小時取當前系統/proc/meminfo文件中的全部以S開頭的信息至/stats/memory.txt文件中

[root@loaclhost /]# crontab -e

crontab: no changes made to crontab

00 */2 */1 * * grep "^S" /proc/meminfo >> /stats/memory.txt

九、工做日的工做時間內,每兩小時執行一次echo "howdy"

[root@loaclhost /]# crontab -e

crontab: no changes made to crontab

00 9-18/2 * * */1-5 echo "howdy"

腳本編程練習

十、建立目錄/tmp/testdir-當前日期時間;

  1. [root@loaclhost /]# cat mkdir.sh
    #!/bin/bash
    mkdir -pv /tmp/testdir-$(date +%F-%H-%M-%S)

  2. [root@loaclhost /]# chmod +x mkdir.sh

  3. [root@loaclhost /]# ./mkdir.sh
    mkdir: 已建立目錄 "/tmp/testdir-2016-08-16-22-50-03

十一、在此目錄建立100個空文件:file1-file100

  1. [root@loaclhost testdir-2016-08-16-22-50-03]# cat mkdir1-100.sh
    #!/bin/bash
    for i in {1..100};do
        mkdir file$i
    done

  2. [root@loaclhost testdir-2016-08-16-22-50-03]# chmod +x mkdir1-100.sh

  3. [root@loaclhost testdir-2016-08-16-22-50-03]# ./mkdir1-100.sh

  4. [root@loaclhost testdir-2016-08-16-22-50-03]# ls
    file1    file16  file23  file30  file38  file45  file52  file6   file67  file74  file81  file89  file96
    file10   file17  file24  file31  file39  file46  file53  file60  file68  file75  file82  file9   file97
    file100  file18  file25  file32  file4   file47  file54  file61  file69  file76  file83  file90  file98
    file11   file19  file26  file33  file40  file48  file55  file62  file7   file77  file84  file91  file99
    file12   file2   file27  file34  file41  file49  file56  file63  file70  file78  file85  file92  mkdir1-100.sh
    file13   file20  file28  file35  file42  file5   file57  file64  file71  file79  file86  file93
    file14   file21  file29  file36  file43  file50  file58  file65  file72  file8   file87  file94
    file15   file22  file3   file37  file44  file51  file59  file66  file73  file80  file88  file95

十二、顯示/etc/passw d文件中位於第偶數行的用戶的用戶名;

  1. [root@loaclhost ~]# sed -n 'p;n' /etc/passwd | cut -d: -f1
    root
    daemon
    lp
    shutdown
    mail
    operator
    gopher
    nobody
    saslauth
    sshd
    mageia
    bash
    basher
    user1
    hadoop

1三、建立10用戶user10-user19;密碼同用戶名;

[root@loaclhost ~]# cat /do/useradd.sh
#!/bin/bash
for i in {10..19};do
    if id user$i &>/dev/null;then
    echo "user$i exists."
    else
    useradd user$i
    if [ $? -eq 0 ];then
        echo "user$i" | passwd --stdin user$i &> /dev/null
        echo "Add user$i finished."
    fi
    fi
done
[root@loaclhost ~]# chmod +x /do/useradd.sh
[root@loaclhost ~]# ../do/useradd.sh
UserAdd user10 finish.
UserAdd user11 finish.
UserAdd user12 finish.
UserAdd user13 finish.
UserAdd user14 finish.
UserAdd user15 finish.
UserAdd user16 finish.
UserAdd user17 finish.
UserAdd user18 finish.
UserAdd user19 finish

1四、在/tmp/建立10個空文件file10-file19;

[root@loaclhost home]# cat /do/file.sh
#!/bin/bash
for i in {10..19};do
    touch /tmp/file$i
done
[root@loaclhost home]# chmod +x /do/file.sh
[root@loaclhost home]# ../do/file.sh
[root@loaclhost home]# ll /tmp/ | grep 'file'
-rw-r--r--.   1 root   root       0 8月  16 23:17 file10
-rw-r--r--.   1 root   root       0 8月  16 23:17 file11
-rw-r--r--.   1 root   root       0 8月  16 23:17 file12
-rw-r--r--.   1 root   root       0 8月  16 23:17 file13
-rw-r--r--.   1 root   root       0 8月  16 23:17 file14
-rw-r--r--.   1 root   root       0 8月  16 23:17 file15
-rw-r--r--.   1 root   root       0 8月  16 23:17 file16
-rw-r--r--.   1 root   root       0 8月  16 23:17 file17
-rw-r--r--.   1 root   root       0 8月  16 23:17 file18
-rw-r--r--.   1 root   root       0 8月  16 23:17 file19

1五、把file10的屬主和屬組改成user10,依次類推。

[root@loaclhost home]# cat /do/file-user.sh
#!/bin/bash
cd /tmp
for i in {10..19};do
    chown user$i:user$i /tmp/file$i

done

[root@loaclhost home]# chmod +x /do/file-user.sh
[root@loaclhost home]# ../do/file-user.sh

[root@loaclhost home]# ll /tmp/ | grep 'file'-rw-r--r--.   1 user10 user10     0 8月  16 23:17 file10-rw-r--r--.   1 user11 user11     0 8月  16 23:17 file11-rw-r--r--.   1 user12 user12     0 8月  16 23:17 file12-rw-r--r--.   1 user13 user13     0 8月  16 23:17 file13-rw-r--r--.   1 user14 user14     0 8月  16 23:17 file14-rw-r--r--.   1 user15 user15     0 8月  16 23:17 file15-rw-r--r--.   1 user16 user16     0 8月  16 23:17 file16-rw-r--r--.   1 user17 user17     0 8月  16 23:17 file17-rw-r--r--.   1 user18 user18     0 8月  16 23:17 file18-rw-r--r--.   1 user19 user19     0 8月  16 23:17 file19

相關文章
相關標籤/搜索