马哥教育网络班21期-第六周课程练习

第六周作业

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

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

[root@qq tmp]# cp /etc/rc.d/rc.sysinit /tmp
[root@qq tmp]# vim rc.sysinit

马哥教育网络班21期-第六周课程练习

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

[root@qq tmp]# cp /boot/grub/grub.conf /tmp
[root@qq tmp]# vim grub.conf

马哥教育网络班21期-第六周课程练习

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

[root@qq tmp]# vim rc.sysinit

马哥教育网络班21期-第六周课程练习

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

[root@qq tmp]# vim grub.conf

马哥教育网络班21期-第六周课程练习

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

[root@qq tmp]# vim /etc/yum.repos.d/CentOS-Media.repo

马哥教育网络班21期-第六周课程练习

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

[root@qq tmp]# crontab -l
0 */4 * * * cp -pa /etc /backup/etc-$(date +\%Y\%m\%d\%H\%M)

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

[root@qq messages_logs]# crontab -l
0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-`date +\%Y\%m\%d\%H\%M`

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

[root@qq stats]# crontab -l
0 */2 * * * sed -n '/^S/p' /proc/meminfo >> /stats/memory.txt

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

[root@qq messages_logs]# crontab -l -u root
0 9-18/2 * * 1-5 echo "howdy"

脚本编程练习

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

[root@qq tmp]# cat testdir.sh 
#!/bin/bash
#
mkdir -pv /tmp/testdir-`date +\%Y\%m\%d\%H\%M`

[root@qq tmp]# bash testdir.sh 
mkdir: created directory `/tmp/testdir-201607311659'
[root@qq tmp]# ls -lht
total 8.0K
drwxr-xr-x. 2 root root 4.0K Jul 31 16:59 testdir-201607311659

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

    [root@qq test]# cat 100file.sh 
#!/bin/bash
#
for i in {1..100}; do
  touch file$i
done
[root@qq test]# ls 
100file.sh  file2   file31  file43  file55  file67  file79  file90
file1       file20  file32  file44  file56  file68  file8   file91
file10      file21  file33  file45  file57  file69  file80  file92
file100     file22  file34  file46  file58  file7   file81  file93
file11      file23  file35  file47  file59  file70  file82  file94
file12      file24  file36  file48  file6   file71  file83  file95
file13      file25  file37  file49  file60  file72  file84  file96
file14      file26  file38  file5   file61  file73  file85  file97
file15      file27  file39  file50  file62  file74  file86  file98
file16      file28  file4   file51  file63  file75  file87  file99
file17      file29  file40  file52  file64  file76  file88
file18      file3   file41  file53  file65  file77  file89
file19      file30  file42  file54  file66  file78  file9
[root@qq test]# ls | wc -l
101

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

[root@qq tmp]# cat shuang_line_passwd.sh 
#!/bin/bash
#
cat -n /etc/passwd | sed -n 'n;p' | cut -d: -f1 
[root@qq tmp]# bash shuang_line_passwd.sh 
     2  bin
     4  adm
     6  sync
     8  halt
    10  uucp
    12  games
    14  ftp
    16  dbus
    18  rpc
    20  rpcuser
    22  haldaemon
    24  saslauth
    26  sshd
    28  tcpdump
    30  rtkit
    32  gdm
    34  user4
    36  user6
    38  user8
    40  user10
    42  user2

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

[root@qq tmp]# cat user10-19.sh 
#!/bin/bash
#
for i in {10..19}; do
  if id user$i &> /dev/null; then
    echo "user$i alreay exist."
  else
    useradd user$i
    [ $? -eq 0 ] && echo user$i | passwd --stdin user$i &> /dev/null
    echo "useradd user$i done"
  fi
done

[root@qq tmp]# bash -x user10-19.sh 
+ for i in '{10..19}'
+ id user10
+ echo 'user10 alreay exist.'
user10 alreay exist.
+ for i in '{10..19}'
+ id user11
+ useradd user11
+ '[' 0 -eq 0 ']'
+ passwd --stdin user11
+ echo user11
+ echo 'useradd user11 done'
useradd user11 done
……
+ for i in '{10..19}'
+ id user19
+ useradd user19
+ '[' 0 -eq 0 ']'
+ passwd --stdin user19
+ echo user19
+ echo 'useradd user19 done'
useradd user19 done

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

[root@qq tmp]# cat 10touch.sh 
#!/bin/bash
#
declare -i i=10

while [ $i -le 19 ]; do
    touch file$i
    let i++
done
[root@qq tmp]# bash -x 10touch.sh 
+ declare -i i=10
+ '[' 10 -le 19 ']'
+ touch file10
+ let i++
+ '[' 11 -le 19 ']'
+ touch file11
+ let i++
+ '[' 12 -le 19 ']'
+ touch file12
+ let i++
+ '[' 13 -le 19 ']'
+ touch file13
+ let i++
+ '[' 14 -le 19 ']'
+ touch file14
+ let i++
+ '[' 15 -le 19 ']'
+ touch file15
+ let i++
+ '[' 16 -le 19 ']'
+ touch file16
+ let i++
+ '[' 17 -le 19 ']'
+ touch file17
+ let i++
+ '[' 18 -le 19 ']'
+ touch file18
+ let i++
+ '[' 19 -le 19 ']'
+ touch file19
+ let i++
+ '[' 20 -le 19 ']'

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

[root@qq tmp]# cat 10touch_OwnGroup.sh 
#!/bin/bash
#
declare i i=10

while [ $i -le 19 ]; do
    chown user$i:user$i file$i
    echo "file$i user and group have changed"
    let i++
done
[root@qq tmp]# 
[root@qq tmp]# bash -x 10touch
10touch_OwnGroup.sh  10touch.sh           
[root@qq tmp]# bash -x 10touch_OwnGroup.sh 
+ declare i i=10
+ '[' 10 -le 19 ']'
+ chown user10:user10 file10
+ echo 'file10 user and group have changed'
file10 user and group have changed
+ let i++
+ '[' 11 -le 19 ']'
+ chown user11:user11 file11
+ echo 'file11 user and group have changed'
file11 user and group have changed
+ let i++
+ '[' 12 -le 19 ']'
+ chown user12:user12 file12
+ echo 'file12 user and group have changed'
file12 user and group have changed
+ let i++
……
+ '[' 19 -le 19 ']'
+ chown user19:user19 file19
+ echo 'file19 user and group have changed'
file19 user and group have changed
+ let i++
+ '[' 20 -le 19 ']'

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

(0)
Net21_仲樂Net21_仲樂
上一篇 2016-08-02 10:52
下一篇 2016-08-02 10:52

相关推荐

  • LVS

    LVS概念 LVS(Linux Virtual Server):Linux 虚拟服务器  LVS是个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,所以说后端的服务称作real server。LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块) LVS的类型 …

    Linux干货 2017-02-17
  • linux基础学习之SElinux

    1、SElinux简介 SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中 2、…

    Linux干货 2016-09-15
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     who | cut -d ' ' -f 1 | uniq 2、取出最后登录到当前系统的用户的相关信息。    egrep "^$(who | tail -1 | cut -d ' …

    Linux干货 2016-12-19
  • 关于shell脚本基础编程第四篇

                                    shell脚本基础编程第四篇本章主要内容:函数 函数 function:     &n…

    系统运维 2016-08-24
  • vsphere虚拟机下的Linux在线移除硬盘后的报错处理(基于LVM)

    1)故障描述( vmware虚拟机,在线移除一块被设置为pv格式的硬盘后,提示unknown device错误): 说明:/dev/sdb1 /dev/sdc1 /dev/sdd1是组成/dev/vg_test/lvm_test的PV,这里我们模拟/dev/sdd1硬盘被直接断电了 [root@docker mnt]# pvdisplay…

    Linux干货 2016-07-29
  • php-fpm

    1.安装 mariadb 服务 修改配置文件 2.musql 安全加强 3.安装 php-fpm php-mysql php-mbstring php-mcrypt 服务 修改配置文件 4.安装httpd服务 加虚拟主机配置文件 5.测试php网页 6.安装myadmin包及测试

    2017-06-07

评论列表(2条)

  • 马哥教育
    马哥教育 2016-08-02 11:43

    写的很好,排版也很棒,加油