Linux基础知识—Vim编辑器/crond周期性任务计划

vim文本编辑

vim是vi文本编辑的增强版本,因其编辑功能强大、且支持各种语言开发环境关键字自动增亮功能,也可称为是开发工具。在Centos7/RHEL7开始,默认将vi定义成vim –color=auto,已经取代了vi的地位。下面总结下关于vim工具的使用

vim有三种模式,每个模式下有其特定的功能;我们可自由在三者之间切换使用:

COMMAND MODE:vim的默认模式(初始模式)

          可以使用方向键来移动光标、可以删除字符或者整行删除、可以复制粘贴等操作

INSERT MODE:vim的编辑模式

          当你按下【a,i,o,A,I,O,R,r】便可从初始的命令模式进入编辑模式,再按下【esc】按键时,便可从输入模式转换到命令模式

COMMAND-LINE MODE:末行模式

          可通过【: / ?】三个符合从命令模式进入末行编辑模式,此模式下可查询、替换、读取其他文件、存盘、退出、界面设置等操作;功能十分强大

Linux基础知识---Vim编辑器/crond周期性任务计划

vim相关命令
zz

       类似于:wq 保存退出

光标跳转

w:下一个词首
e:下一个词尾
b:当前或者前一个词首

行首行尾跳转

^:跳转至行首第一个非空白字符
0:跳转至行首
$:跳转至行尾

行间跳转

nG:跳转至第n行
1G、gg:跳转至第一行行首
G:跳转至末行行首

句间跳转

(:上一句
):下一句

段间跳转

{:上一段
}:下一段

翻屏

ctrl+f:向文件尾部翻一页
ctrl+b:向文件首部翻一页
ctrl+d:向文件尾部翻半页
ctrl+u:向文件首部翻半页

编辑命令

x:删除光标所在位置字符
nyy:复制光标所在往下n行
p:粘贴复制的内容
d:删除命令,可结合光标跳转字符,实现范围删除
dd:删除光标所在行
ndd:光标所在行往下n行删除
u:undo,即撤销操作的意思,可缓存50条记录
ctrl+r:撤销之前的撤销操作

光标位置定界

:start_pos[,end_pos]    
n:  特定的第n行
.:  表示当前行,可+可-
$:  表示最后一行
%:  表示全部内容
m,n:    表示从m行到n行
m,+n:   表示从m行开始的n行内

查找、替换

s/要查找的内容/要替换的内容/修饰符
其中:要查找的内容可使用正则表达式
         要替换的内容不能使用正则表达式,但是可以引用
         修饰符:i  忽略大小写
                g   全局替换
:%s/匹配字符/替换字符/g

平时在写程序时经常会遇到大小写转换的问题,vim中提供了很多非常方便的大小写转换命令,可以快速的进行字母、单词、任意行的大小写转换,可以和vim的光标移动指令组合使用。

~ 将光标下的字母改变大小写

3~ 将光标位置开始的3个字母改变其大小写

g~~ 改变当前行字母的大小写

U 将可视模式下选择的字母全改成大写字母

u 将可视模式下选择的字母全改成小写

gUU 将当前行的字母改成大写

3gUU 将从光标开始到下面3行字母改成大写

guu 将当前行的字母全改成小写

gUw 将光标下的单词改成大写。

guw 将光标下的单词改成小写。

更多技巧可以查看文档

任务计划

bash shell极大的方便了系统管理员的工作,可是有些工作呢不是任何时候都可以人为操作的,根据工作需要,往往有很多工作需要定时定点的去执行;因此Linux为了方便系统管理工作,加入了周期性任务计划管理,Linux下的任务调度分为两类,系统任务调度和用户任务调度。:

crontab用户任务调度

maintains crontab files for individual users这里是一个命令,/usr/bin/crontab;所有的用户crontab文件保存的地方在/var/spool/cron/$USERNAME,/etc/cron.allow或者/etc/cron.deny可限制哪些用户可以使用crontab哪些用户不可以使用crontab,cron.allow优先级比cron.deny高,只需要将用户名编辑入其中一个即可
【SYNOPIS】
    crontab [-u user] file
       crontab [-u user] [-l | -r | -e] [-i] [-s]
       crontab -n [ hostname ]
       crontab -c
【OPTIONS】
    -u  --user  指定用户crontab任务
    -l  列出任务计划
    -r  删除可用的任务计划
    -e  编辑任务计划,类似vi,编辑文件后:wq保存即可
    -i  与-r同用,交互式删除任务计划
    -n  --host  指定用户执行任务计划

其格式如下:
        # For details see man 4 crontabs
        # Example of job definition:
        # .---------------- minute (0 - 59)
        # |  .------------- hour (0 - 23)
        # |  |   .---------- day of month (1 - 31)
        # |  |   |   .------- month (1 - 12) OR jan,feb,mar,apr ...
        # |  |   |   |     .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
        # |  |   |   |    |
        # *  *   *   *    *      command to be executed 
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。   
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”    
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”   
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

/etc/crontab

这是系统级别的任务计划管理文档,可通过直接编辑/etc/crontab文件实现,其格式跟用户crontab编辑格式一样;该进程默认启动;
服务状态:#service crond status 或者 systemctl status crond.service
启动服务:#service crond start 或者 systemctl start crond.service
停止服务:#service crond stop 或者 systemctl stop crond.service

vim练习总结:

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

:%s/^[[:blank:]]\+.*/\0#/g

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

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

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

:%s/^#[[:blank:]]\+//g

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

:1,3s/^/\0#/g

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 * * * /usr/bin/cp /etc /backup/etc-$(date +%Y%m%d%h%M)/

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

* * * * 2,4,6   /usr/bin/cp /var/log/messages /backupmessages_logs/messages-$(date +%Y%m%d)

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

* */2 * * * /usr/bin/grep -E "S.*" /proc/meminfo>>/stats/memory.txt

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

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

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间

    #!/bin/bash
    if [ -d /tmp/testdir-$(date +%Y%m%d) ]
              then
             echo "the dirctory is exist!"
    else
             mkdir -p /tmp/testdir-$(date +%Y%m%d) &&echo "create the dirctory successful!" 
    fi

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

#!/bin/bash
    for ((i = 1; i<=100; i++))
do
        touch /tmp/files/file$i;
done
echo "create 100 files successful!"

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

#!/bin/bash

i=0
for username in `cat /etc/passwd|cut -d: -f1`
do
        i=$(($i+1))
        [ $((i%2)) -eq 0 ] && echo $username;
done

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

#!/bin/bash
for (( i=10;i<20;i++ ))
    do
    id user$i>/dev/null 2>&1;
    if [ $? == 0 ];then
            echo "the user$i is exist!"
    else
            useradd user$i && echo "user$i"|passwd --stdin user$i>>/dev/null 2>&1;
            echo "create user$i successful!"
    fi

done

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

#!/bin/bash
#   
for (( i=10; i<20; i++ ))
    do
        if [ -f /tmp/file$i ];then
           echo "the file$i is exist."
        else
           touch /tmp/file$i && echo "create file$i successful!"
        fi
done

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

(0)
396064847396064847
上一篇 2016-10-31
下一篇 2016-11-01

相关推荐

  • 8.1作业

    创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为“Gentoo Distribution” [root@localhost wang]# useradd -G bin,root -s /bin/csh -c "Gentoo&n…

    Linux干货 2016-08-02
  • Code Review中的几个提示

    Code Review应该是软件工程最最有价值的一个活动,之前,本站发表过《简单实用的Code Review工具》,那些工具主要是用来帮助更有效地进行这个活动,这里的这篇文章,我们主要想和大家分享一下Code Review代码审查的一些心得。 首先,我们先来看看Code Reivew的用处: Code reviews 中,可以通过大家的建议增进代码的质量。 …

    Linux干货 2015-04-03
  • lvs

    1、什么是LVS LVS是Linux Virtual Server的简写,以为Linux虚拟服务器,是一个虚拟服务器集群,其具有很好的可伸缩性、可靠性、可管理性。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务…

    Linux干货 2016-10-29
  • 编写服务脚本/root/bin/testsrv.sh和备份脚本/root/bin/copycmd.sh

    编写服务脚本/root/bin/testsrv.sh,完成如下要求 (1) 脚本可接受参数:start, stop, restart, status (2) 如果参数非此四者之一,提示使用格式后报错退出 (3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功” 考虑:如果事先已经启动过一次,该如何处理? (…

    Linux干货 2016-08-24
  • 管理用户和组。

    用户的概念        对于计算机的应用,我们大多数都是在储存资料、办公娱乐。我们耗费精力与时间把我们喜欢的一些东西寻找下载在我们的计算机中,这台计算机没有一丁点限制,谁都可以进行访问,那我们所进行存储的一些东西就将变得很不安全,但是我们在给计算机创建一个用户并设置密码之后,其他人没获得…

    Linux干货 2016-10-23
  • 磁盘管理详解

    linux系统如何识别硬盘 硬盘类型:        按接口可划分为        并行             &nb…

    Linux干货 2016-08-29

评论列表(1条)

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

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