马哥教育网络班22期+第6周课程练习 忍者乱太郎喻成

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

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#
cp /etc/rc.d/rc.sysinit /tmp
方法一 vim法
在vim下用 : 进入命令行模式
  

  %s/^ /#\1/g

方法二 sed法

sed "s/\(^ \)/#\1/g" /tmp/rc.sysinit > tmp
cat tmp > /tmp/rc.sysinit
rm tmp

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
    cp /boot/grub/grub.conf /tmp/
vim法
命令行模式下使用

%s/^ .*//g

sed法

sed "s/^ .*//g" /tmp/grub.conf >tmp
cat tmp > /tmp/grub.conf
rm tmp

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

:%s/^\s\+//g

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

0,3s/^/#/g

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

%s/enabled=0/enabled=1/g

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

mkdir /backup
crontab -e #设置crontab任务
加入行 
* */4 * * * tar -cvf /backup/etc-$(date "+%Y%m%d%H%M") /etc

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

mkdir /backup

crontab -e #设置crontab任务
加入行

* * * * 2,4,6 cp /var/log/messages /backup/messages_logs/messages-$(date "+%Y%m%d")

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

mkdir stats
touch /stats/memory.txt

crontab -e #设置crontab任务
加入行

* */2 * * * cat /proc/meminfo/S* >> /stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo ""howdy""
crontab -e #设置crontab任务
加入行

* 8-17/2 * * 1-5 echo "\"howdy\""

脚本编程练习
10、创建目录/tmp/testdir-当前日期时间;

mkdir /tmp/testdir-$(date +"%Y%m%d")

11、在此目录创建100个空文件:file1-file100
写一个脚本文件并执行
#!/bin/bash

cd /tmp
for i in $(seq 1 100);do
    touch file-$i
done


12、显示/etc/passwd文件中位于第偶数行的用户的用户名;
写一个脚本文件并执行

#!/bin/bash

declare -i i=0;
cat /etc/passwd | while read -r line; do
        if [ $[ $i%2 ]  == 0 ]; then
                echo $(echo $line | cut -d":" -f1);
        fi
        i=$i+1;
done
        

13、创建10用户user10-user19;密码同用户名;
写一个脚本并执行
#!/bin/bash

for i in $(seq 10 19);do
        useradd user$i -p user$i;
done

14、在/tmp/创建10个空文件file10-file19;
写脚本
#!/bin/bash

for i in $(seq 10 19);do
    touch /tmp/file-$i
done

15、把file10的属主和属组改为user10,依次类推。
写脚本
#!/bin/bash

for i in $(seq 10 19);do
    chown user$i:user$i /tmp/file$i
done

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

(0)
chengyuchengyu
上一篇 2016-10-24 09:11
下一篇 2016-10-24 09:11

相关推荐

  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • N25_第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或者处理连接:建立请求或拒绝请求     2)接收请求:接收来自于网络上的主机请求报文中对特定资源的一次请求的过程;     3)处理请求:对请求报文进行解析,主要获取客户端请求的…

    Linux干货 2017-03-06
  • Linux启动之grub详解,故障排除,自建linux

    概述     上篇我们以CentOS6为例介绍了一下系统启动流程,本篇将承接上篇,详细的介绍一下系统启动流程中的grub,以及系统启动过程中的各种故障的排除,以及利用现有内核自己构建一个能够正常启动的简单Linux系统。具体分为一下几个部分:     1、grub相关概念详解 &…

    Linux干货 2016-09-13
  • 设计模式 ( 二十 ) 访问者模式Visitor(对象行为型)

    特此说明:对访问者模式理解不是特别透彻,若有误,请指正,谢谢! 1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。 例子1:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购…

    Linux干货 2015-04-07
  • Python入门之迭代,列表解析,生成器及文件操作

    迭代器是访问集合元素的一种方式,迭代器包含了__iter__()(返回迭代器对象本身)next()(返回迭代器的下一个元素)迭代器只能往前不会退后 以下类型支持迭代 序列类型:list,str,tuple 非序列类型:dict,file 自定义类 通过内建的函数iter()或对象自带方法__iter__可以获取迭代器对象 l1=range(5) iter1=…

    Linux干货 2015-12-13
  • 安装MariaDB

    1、安装MariaDB 安装命令 yum -y install mariadb mariadb-server安装完成MariaDB,首先启动MariaDB systemctl start mariadb设置开机启动 systemctl enable mariadb接下来进行MariaDB的相关简单配置 mysql_secure_installation首先是…

    Linux干货 2017-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-25 13:13

    相关知识扩展的很好,但排版有点欠火候,你可以咨询一下455568219