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
下一篇 2016-10-31

相关推荐

  • Linux nginx服务之反向代理

                       Linux nginx服务之反向代理 Nginx服务之反向代理: GSLB:Global Service LB 全局服务负载均衡: SLB:Service LB 应用程序发布: 灰度模型:   ngx_http_…

    系统运维 2016-11-18
  • 通配符、正则表达式小计

    基本通配符:    *: 匹配任意长度的任意字符;    ?: 匹配任意的单个字符;    []: 匹配指定范围内的任意单个字符;    [^]: 匹配非指定范围内的任意单个字符;   简单示例:   &nbs…

    Linux干货 2017-03-16
  • N22-℡浮生.若夢 ╮第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; ~]# mke2fs -t mkfs.ext4 -b 2048 -L MYDATA -m 2 /…

    Linux干货 2016-11-14
  • nginx rewrite实战

    nginx rewrite实战 nginx rewrite实战 nginx rewrite实战 nginx rewrite 正则表达式匹配 多目录转成参数 目录对换 目录自动加“/” ,这个功能一般浏览器自动完成 禁止htaccess 禁止多个目录 禁止以/data开头的文件,可以禁止/data/下多级目录下.log.txt等请求 禁止单个文件 给favic…

    Linux干货 2016-11-17
  • linux文件权限

                                                      &nbsp…

    Linux干货 2016-08-04
  • Linux 性能监控、测试、优化工具

    Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 BrendanD. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。    和 Br…

    Linux干货 2015-03-03

评论列表(1条)

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

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