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

相关推荐

  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限;          [root@yangjifeng~]# cp -a /etc/skel /home/tuser1 [root@yangjife…

    Linux干货 2017-08-28
  • Linux系统grep正则表达式

    一、grep命令的使用 首先,我们来了解grep命令,grep (global search regular expression and printing),全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Linux中的grep命令包括、grep, egrep和fgrep 。egrep是grep…

    Linux干货 2017-04-23
  • Linux之文件管理命令

      Linux文件管理类命令 Linux一切皆文件,所以熟悉文件管理命令对我们来说至关重要 文件查看命令 cat命令:文本文件查看工具 命令用法:         cat [OPTION]… [FILE]… 常用选项:  &nbsp…

    Linux干货 2016-11-04
  • 使用安装光盘恢复rpm软件包

    rpm作为linux最重要的软件管理工具,有着不可或缺的地位,连yum都要依赖于rpm的存在才能正常使用,所以掌握rpm的恢复还是很重要的,下面就来看一下如何恢复rpm。       卸载rpm软件包 [root@localhost ~]$ rpm -e rpm err…

    Linux干货 2016-08-25
  • magedu_20160804

    文本处理工具和grep过滤工具以及正则表达式    一.文本处理工具相关命令    前面课程中曾经使用过cat,head,tail命令查看相关文件,head,tail分别查看文件开头、结尾的行信息。对于特定想要显示的信息则需要特定的文本查看指令,比如cut,sort,paste,uniq等。如下内容分别对每个…

    Linux干货 2016-08-08
  • ​redis cluster 安装指南

    公司的很多项目在使用redis主从。由于coder的各种毁灭性操作,迫切需要一个能带故障恢复的架构。因此新版的cluster,开始了测试。 一、Cluster 理论基础 Cluster介绍 Redis集群是一个提供在多个Redis间节点间共享数据的程序集。 Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis…

    Linux干货 2016-02-14

评论列表(1条)

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

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