Linux基础知识(六)-vim编辑器,crontab计划任务,bash脚本循环

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

[root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp
[root@localhost ~]# vim /tmp/rc.sysinit
:%s@^[[:space:]]\+@#&@g
# %表示全文,@分隔符,&表示前面匹配到的全部文本,g表示全局

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

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

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

:%s@^#[[:space:]]\+@@g

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

:1,3s@.*@#&@

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 * * * cp /etc /backup/etc-$(date +%Y%m%d%H%M) &> /dev/null

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

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

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

[root@localhost ~]# mkdir /stats
[root@localhost ~]# touch /stats/memory.txt
* */2 * * * cat /proc/meminfo | grep "^[S|s]" >> /stats/memory.txt

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

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

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

#!/bin/bash
mkdir /tmp/testdir-$(date +%F%H%M%S)

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

#!/bin/bash
dirname=testdir-$(date +%F%H%M%S)       #要求是在此目录存放,所以应当记录这个变量
mkdir /tmp/$dirname
touch /tmp/$dirname/file{1..100}

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

sed -n 'n;p' /etc/passwd |awk -F: '{print $1}'

脚本:

#!/bin/bash
#显示偶数行的用户的用户名
for i in $(seq 2 2 100); do
        sed -n ${i}p /etc/passwd | cut -d: -f1
done    
echo -----------或者------------
awk "NR%2==0" /etc/passwd | cut -d":" -f1

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

#!/bin/bash
#创建10个用户user10-user19,密码同用户名
for((i=10;i<=19;i++)) {
    useradd user$i
    if [ $? -eq 0  ]; then
         echo user$i | passwd --stdin user$i &> /dev/null
         echo "user$i用户添加成功" 
    else
        echo "user$i 用户添加失败"
    fi
    
}
###或者###
for i in {10..19};
do
useradd user$i
if [ $? -eq 0  ]; then
     echo user$i | passwd --stdin user$i &> /dev/null
     echo "user$i用户添加成功" 
else
    echo "user$i 用户添加失败"
 fi
done

1477847002177.jpg

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

touch /tmp/file{10..19}

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

#!/bin/bash
#批量修改文件的属组,属主,修改为和文件名一样的.
for i in {10..19};
do
    touch /tmp/file$i
    if [ $? -eq 0 ];then
        echo "file$i文件创建成功"
        chown user$i:user$i /tmp/file$i
        if [ $? -eq 0  ];then
             echo "file$i属组属主修改成功:$(ls -li /tmp/file$i)"
        else
             echo "file$i属组修改失败"
        fi
    else
        echo "file$i文件创建失败"
    fi
done

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

(0)
luoluoluoluo
上一篇 2016-10-31 00:40
下一篇 2016-10-31 07:11

相关推荐

  • LVS负载均衡WordPress

    LVS:        LVS是四层协议的开源负载均衡器,工作在netfilter框架INPUT链中,它根据不同的算        法将用户的请求调度给后端服务器,它不受sockt套接字文件限制,性能比nginx七层       …

    Linux干货 2017-05-18
  • bash编程基础(二)补

       bash脚本编程         脚本文件格式:         第一行,顶格:#!/bin/bash         注释信息:#         代码注释:  …

    Linux干货 2016-12-23
  • ☞卸载kernel玩一玩

    卸载kernel玩一玩 废话不多说,下面开始卸载内核这一惊险之旅,特别提醒在开始之前做好虚拟机的快照,也许会造成系统无法启动,也许会出现各种错误,也许会笑着删数据库跑路,也许会从入门到放弃,,请系好安全带。  练习 冒泡排序法 #!/bin/bash##Author:jasonmc#Date:2016-08-24#Description:buble…

    Linux干货 2016-08-26
  • ifcfg家族命令介绍

    ifcfg家族命令: ifconfig ifconfig [interface] add<地址>:设置网络设备IPv6的ip地址; del<地址>:删除网络设备IPv6的IP地址; down:关闭指定的网络设备;<硬件地址>:设置网络设备的类型与硬件地址; io_addr:设置网络设备的I/O地址; irq:设置…

    Linux干货 2016-07-29
  • 快速删除无用包组

    快速删除无用组 第一步: [root@cloud ~]# yum grouplist >> list.txt 第二步: 编辑 list.txt把需要留下来的删除 第三步: 创建脚本 remove.sh 运行 #/bin/bash # # while read…

    Linux干货 2016-06-09
  • mogilefs部署

    mogilefs实验环境: 1.需要两台tracker主机 2.一台mariadb 3.nginx_mogilefs_module模块要编译安装 在tracker主机: 1.上下载rpm包 mkdir mogilefs/ cd mogilefs lftp 172.16.0.1 get MogileFS-Server-2.46-2.el7.centos.noa…

    Linux干货 2017-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-01 22:35

    完成的非常好,6、8、9题需要精确到分钟,7题需要精确到分钟、小时哈,加油!