首页 > 代码库 > linux学习作业-第六周

linux学习作业-第六周

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

cp /etc/rc.d/rc.sysinit /tmp 
sed ‘s@^[[:space:]]\+@\#&@‘ /tmp/rc.sysinit
替换可用符号s#.#.# s/././  s@.@.@

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

cp /boot/grub/grub.conf /tmp
sed ‘s@^[[:space:]]\+@@‘ /tmp.grub

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

sed ‘/^\#[[:space:]]\+/d‘ /tmp/rc.sysinit
d为删除

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

head -n 3 /tmp/grub.conf |sed ‘s@.*@###&@‘ #用head取前三行,再使用sed添加###;&引用前字段
sed ‘1,3s@.*@###&@‘ /tmp/grub.conf  #头三行添加###并显示全部
sed -n ‘1,3s@.*@###&@p‘ /tmp/grub.conf  #只显示修改的行  -n p 一同使用的效果

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

sed -e ‘s#enabled=0#enabled=1#‘ -e ‘s#gpgcheck=0#gpgcheck=1#‘ /etc/yum.repos.d/CentOS-Media.repo
-e 多处修改时使用

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

mkdir /backup
crontab -e
1 */4 * * * cp /etc/* /backup/etc\-$(date +"%Y%m%d%H%M")
# %必须使用""标注,不让没有效果

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

messages-20160830
mkdir -p /backup/messages_logs
crontab -e 
1 1 * * 2,4,6 cp /var/log/messages /backup/messages_logs/messages\-$(date +"%Y%m%d")
前面必须标注时间,不然会变成每小时每秒执行

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

mkdir /stats
crontab -e
1 */2 * * * grep "^[s,S]" /proc/meminfo >> /stats/memory.txt

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

crontab -e
1 */2 * * 1-5 echo "howdy"


脚本编程练习

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

11、在此目录创建100个空文件:file1-file100

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

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

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

15、把file10的属主和属组改为user10,依次类推。

#!/bin/bash  #脚本开始注明使用shell
#homework 
#V0.0.1 
for num1 in {1..100};do  # for语句,循环数字1-100
        mkdir -p /tmp/testdir\-$(date +%Y%m%d%H%M%S)/"file$num1"
        #无论如何都创建 /tmp/testdir-时间/file1-100目录
        done
sed -n "n;p" /etc/passwd  #显示偶数行有两种模式,其中一种
sed ‘1~2d‘ /etc/passwd  #显示偶数行有两种模式,其中一种
#!/bin/bash
#homework 
#V0.0.1 
for num2 in {10..19};do
useradd "user$num2"  #创建10-19用户
echo "user$num2" |passwd --stdin user$num2  #添加密码
mkdir /tmp/file$num2  #创建对应文件夹
chown "user$num2" /tmp/file$num2  #修改该文件夹权限
done





linux学习作业-第六周