第六周作业 bash编程学得好痛苦啊,啊啊啊~~需要挺住!

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

VIM很强大,但是万变不离其宗,最核心的三模式以下图表示:

第六周作业 bash编程学得好痛苦啊,啊啊啊~~需要挺住!

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

:%s/^[[:blank:]]\+.*/\0#/g

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

:%s/^[[:space:]]\+//g

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

:%s/^#[[:blank:]]\+//g

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

:1,3s/^/\0#/g

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

:%s/\(enabled\|gpgcheck\)=0/\1=1/g

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

* */4 * * * /usr/bin/cp /etc /backup/etc-$(date +%Y%m%d%H%M)/

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

* * * * 2,4,6   /usr/bin/cp /var/log/messages /backupmessages_logs/messages-$(date +%Y%m%d)

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

* */2 * * * /usr/bin/grep -E "S.*" /proc/meminfo>>/stats/memory.txt

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

* 9-18/2 * * 1-5        /usr/bin/echo "howdy"

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间; 在此目录创建100个空文件:file1-file100

[root@centos7 ~]# cat testdir
#!/bin/bash
#Author:Jerry

cd /tmp && mkdir testdir-$(date +%Y%m%d%H%M%S)

cd testdir-$(date +%Y%m%d%H%M%S)

for i in {1..100}; do
    touch file$i
done




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

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

[root@centos7 ~]# sed -n '2~2p' /etc/passwd |cut -d ":" -f1
bin
adm
sync
halt
operator
ftp
avahi-autoipd
systemd-network
polkitd
apache
abrt
unbound
saslauth
amandabackup
geoclue
setroubleshoot
ntp
nfsnobody
qemu
mysql
pulse
gnome-initial-setup
sshd
tcpdump
hadoop
testbash
nologin
user1

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

#!/bin/bash
#

    for i in {10..19};do
            if id user$i ;then
                    echo "user$i exists."
            else
                    useradd user$i
                    echo "user$i" | passwd --stdin user$i
            fi
    done

14、在/tmp/创建10个空文件file10-file19; 把file10的属主和属组改为user10,依次类推。

#!/bin/bash
#
            cd /tmp/
    for i in {10..19};do
            if [ -e file$i ] ;then
                    echo "file$i exists."
                    chown user$i:user$i file$i
            else

                    touch file$i
                    chown user$i:user$i file$i
            fi
    done

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

赞 (0)
N24_JerryN24_Jerry
上一篇 2016-12-19 14:38
下一篇 2016-12-19 15:42

相关推荐

  • N28-第三周

    1. 列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。
    2. 取出最後登入到當前系統的用戶的相關信息。
    3. 取出當前系統上被用戶當做其默認shell的最多的那個shell。
    4. 將/etc/passwd中的第三個字段數值最大的後10個用戶的信息全部改為大寫後保存至/tmp/maxusers.txt文件中。
    5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6. 列出/etc目錄下所有以.conf結尾的文件的文件名,並將其名字轉換為大寫後保存至/tmp/etc.conf文件中。
    7. 顯示/var目錄下一級子目錄或文件的總各數。
    8. 取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9. 將/etc/fstab和/etc/issue文件的內容合併為同一個內容後保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法並完成以下練習:
    (1) 創建組distro,其GID為2016。
    (2) 創建用戶mandriva,其ID號為1005,基本組為distro。
    (3) 創建用戶mageia,其ID號為1100,家目錄為/home/linux。
    (4) 給用戶mageia添加密碼,密碼為mageedu。
    (5) 刪除mandriva,但保留其家目錄。
    (6) 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin。
    (7) 修改slackware的默認shell為/bin/tcsh。
    (8) 為用戶slackware新增附加組admins。

    2017-12-19
  • 初识Linux—-小练习

    1、怎样更改命令提示符的颜色?     步骤一:通过 echo $PS1 命令显示当前提示符格式;     步骤二:通过cat /etc/DIR_COLORS 命令,查询需要颜色的编号;     步骤三:打开.bashrc文件,命令为nano  .bashrc,进入后添加,如图: &nbs…

    2017-02-18
  • vim文本编辑器和sed用法汇总

    1. Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进 和增加了很多特性。 VIM是纯粹的自由软件。 2. vim的三种工作模式: (1) 编辑模式:也叫命令模式,可以执行个各种快捷键的命令 (2) 插入模式:在文本文件中可以直接输入内容。 (3) 末行模式:红帽官方叫扩展命令行模式vim内置命令行接口  注:vi…

    Linux干货 2016-08-12
  • MySQL与nfs的实验

    (1) 创建一个共享mydata,路径为/mysql/data,客户端1挂载至/mydata;而后客户端1主机安装mysql或mariadb,将数据目录设定为/mydata,要确保mysql服务能正常 运行,但数据目录位于samba server上; (2) 客户端2主机使用类似客户端1主机的方式挂载mydata共享至本地的/mydata目录,而后,直接安装…

    Linux干货 2016-10-30
  • Linux文件目录的权限

     Linux是多用户多任务的分时操作系统,如果每个人都对文件和目录都是随便访问的话,难么你的文件很有可能会被他人删除或修改,从而丢失数据。为此系统对文件增加了权限的机制来防止这种事情的发生。对文件而言,用户被分为三类:属主(onwer)、属组(group)、和其他(other)。常规的权限分为:读(r readable)、写(w writable)…

    Linux干货 2016-08-07
  • Centos6.9 配置静态IP

    Centos6.9 配置静态IP修改步骤

    2018-03-26

评论列表(2条)

  • N24_yezi
    N24_yezi 2016-12-19 19:55

    兄弟出品,必属精品啊

    • N24_Jerry
      N24_Jerry 2016-12-20 15:14

      @N24_yezi:多谢班长捧场