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

相关推荐

  • DNS服务器之理论基础

    一、什么是DNS     DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。     在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识…

    Linux干货 2015-04-29
  • 08.08 笔记总结

    1. 使用sed显示特定行  sed -n '20p' /etc/passwd  // 显示/etc/passwd中第20行 命令相当于  cat /etc/passwd | head -20 | tail -1 2. sed -ibak '/^UUID.*/d' /etc/fstab &…

    Linux干货 2016-08-12
  • N26-博客作业-week16

    1、源码编译安装LNMP架构环境 IP:192.168.12.137 Nginx:1.8.1 MariaDB:5.5.57 PHP:5.6.31 安装开发环境包组 yum groupinstall “Development Tools” “Server Platform Development” -y 安装开发程序包 yum install pcre-dev…

    2017-08-04
  • Linux基础指令(1)

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关实例演示  文件管理工具:cp mv rm cp命令 : 单源复制: cp [option]… [-T]  SOURCE DEST     -bash-4.1# …

    Linux干货 2016-11-09
  • 使用Nmap扫描系统风险点

    0x00 迅速了解Nmap Nmap是一款扫描目标网络信息的工具,可以是黑客用来探测主机信息,收集情报的神器。也可以是运维人员扫描网络环境,及时发现系统漏洞的好帮手。 0x01 它的功能 1、主机发现(Host Discovery)#探测目标网络环境中有哪些主机是可以进行通信的,当然你也可以用ping命令试一下 2、端口扫描(Port S…

    Linux干货 2015-04-19
  • vim编译器与shell脚本简介

    一、vim文本编译器       vi:Visual Interface,文本编辑器;   文本: ASCII Unicode  文本编辑种类:行编辑器:sed  ;全屏编辑器:nano,vi ,vim ;其他编辑器:gedit(图形),g…

    Linux干货 2016-11-24

评论列表(1条)

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

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