一、複製/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以致少一個空白字符開頭的行的行首加#;編程
答:可以使用vim的查找替換功能完成;vim
命令以下:bash
[root@csd ~]# cp /etc/rc.d/rc.sysinit /tmp ##複製文件 [root@csd ~]# vim /tmp/rc.sysinit ##vim編輯該文件
命令結果以下(下圖紅框爲與上圖對比效果):編輯器
二、複製/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;ide
答:命令以下spa
[root@csd ~]# cp /boot/grub/grub.conf /tmp ##複製文件至/tmp下 [root@csd ~]# vim /tmp/grub.conf ##vim編輯該文件
結果以下:3d
三、刪除/tmp/rc.sysinit文件中的以#開頭,且後面跟了至少一個空白字符的行行的#和空白字符orm
答:使用vim編輯器查找替換功能blog
結果以下:crontab
四、爲/tmp/grub.conf文件中前三行的行首加#號;
答:
結果以下:
五、將/etc/yum.repos.d/CentOS-Media.repo文件中全部的enabled=0或gpgcheck=0的最後的0修改成1;
答:
:%s/enabled=0/enabled=1 ##查找替換"enabled=0"爲"enabled=1" :%s/\(gpgcheck=\)0/\11 ##查找替換"gpgcheck=0"爲"gpgcheck=1",可以使用條件引用
修改"enabled=0"爲"enabled=1",命令以下:
(注:下圖演示的文件爲/etc/yum.repos.d/rhel-source.repo)
結果以下:
修改"enabled=0"爲"enabled=1",命令以下:
結果以下:
六、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名爲形如etc-201608300202
答:命令以下:
00 */4 * * * root /bin/usr/tar -cjf /backup/etc-`date +%y%m%d%H%M` /etc
(注:執行計劃任務,可直使用crontab -e來編輯。格式爲「分 小時 日 月 星期 命令」)
查看計劃任務:
七、每週2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20160830
答:00 6 * * 2,4,6 root /bin/cp /var/log/messages /backup/messages_logs/messages-`date +%y%m%d`.bak
計劃任務以下:
八、天天每兩小時取當前系統/proc/meminfo文件中的全部以S開頭的信息至/stats/memory.txt文件中
答:00 */2 * * * cat /proc/meminfo | grep "^S.*" >> /stats/memory.txt
計劃任務入下:
九、工做日的工做時間內,每兩小時執行一次echo "howdy"
答:00 */2 * * 1-5 /usr/bin/echo "howdy"
計劃任務以下:
腳本編程練習
十、建立目錄/tmp/testdir-當前日期時間;
答:
#/bin/bash export dirtime=`date +%y%m%d%H%M%S` ##定義一個名稱爲當前時間的變量 mkdir /tmp/testdir-$dirtime ##建立以當前時間爲名稱的文件夾
結果以下:
十一、在此目錄建立100個空文件:file1-file100
答:
#/bin/bash export dirtime=`date +%y%m%d%H%M%S` ##定義一個名稱爲當前時間的變量 mkdir /tmp/testdir-$dirtime ##調用變量建立以當前時間爲名稱的文件夾 for f in {1..100};do ##循環次數 touch /tmp/testdir-$dirtime/file$f ##在規定的文件夾內建立文件 done
結果以下:(mk已用alias定義,alias=./test1.sh)
十二、顯示/etc/passw d文件中位於第偶數行的用戶的用戶名;
答:
#bin/bash export nu=2 ##定義一個變量,做爲循環中的對比條件 for idnum in {1..100};do ##循環次數 cat /etc/passwd -n | egrep "\b$nu[[:space:]]\b*" ##輸出在passwd文件中以該變量開頭且後面跟一個空格的內容 let nu+=2 ##因爲要輸出passwd文件中全部的偶數,咱們讓變量自加2 done ##完成循環後退出
結果以下:(mk已用alias定義,alias=./test1.sh)
1三、建立10用戶user10-user19;密碼同用戶名;
答:
#/bin/bash export u=10 ##定義一個變量爲10 for username in {1..10};do ##循環10次 if id user$u &> /dev/null;then ##條件判斷,用於判斷用戶是否已存在 echo "用戶 user$u 存在" else useradd user$u ##若不存在則添加該用戶 echo "user$u" | passwd --stdin user$u >> /dev/null ##修改用戶密碼同用戶名 echo "用戶 user$u 添加成功,密碼同用戶名。請及時修改" let u+=1 ##讓變量自加1 fi ##條件判斷完成 done ##完成循環後退出
1四、在/tmp/建立10個空文件file10-file19;
答:
#/bin/bash export i=10 ##定義一個變量爲10 for t in {1..10};do ##循環10次 if test -e /tmp/file$i;then ##"test"判斷文件是否存在,存在則爲真,不然爲假 echo "文件已存在" else touch /tmp/file$i ##建立文件 let i+=1 ##讓變量自加1 fi ##判斷結束 done ##完成循環後退出
結果以下:(mk已用alias定義,alias=./test1.sh)
1五、把file10的屬主和屬組改成user10,依次類推。
答:
#/bin/bash export i=10 ##定義一個變量爲10 for t in {1..10};do ##循環10次 chown user$i:user$i /tmp/file$i ##修改文件的屬組和屬主爲user+當前變量 echo "文件user$i 屬組屬主已修改" let i+=1 ##讓變量自加1 done
結果以下:(mk已用alias定義,alias=./test1.sh)