第六周

 

第6周

 

1

复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
cp /etc/rc.d/rc.sysinit ; sed -i 's@^[[:space:]]\+@#@g' rc.sysinit

2

复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
cp /boot/grub/grub.conf ; sed '/^[[:space:]]\+/d' grub.conf

3

删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
sed  '/^#[[:space:]]\+/d' rc.sysinit

4

为/tmp/grub.conf文件中前三行的行首加#号;
sed -n '1,3s@^@#@gp ' grub.conf

5

将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
sed -r 's@([enabled|gpgcheck])=0@\1=1@' epel.repo

6

每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
0 */4 * * * /bin/cp -ar /etc /backup/etc-$(date "+%Y%m%d%H%M%S")

7

每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402
0 0 2,4,6 * * /bin/cp -ar /var/log/messages /backup/messages_logs/messages$(date "+%Y%m%d)

8

每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
0 */2 * * * cat /proc/meminfo|grep -i '^s'>>/stats/memory.txt

9

工作日的工作时间内,每两小时执行一次echo "howdy"
0 */2 1-5 * echo "howdy"

10

创建目录/tmp/testdir-当前日期时间; 
 #!/bin/bash
 mkdir /tmp/testdir-$(date "+%Y%m%d%H%M%S")

11

在此目录创建100个空文件:file1-file100
#!/bin/bash
declare -i i=1
while [ $i -le 100 ];do
    touch file$i
    let i++
done

12

 显示/etc/passwd文件中位于第偶数行的用户的用户名;
 cat  /etc/passwd|sed -n '2~2p'|cut -d: -f1

13

 创建10用户user10-user19;密码同用户名;
 #!/bin/bash
 for i in {10..19};do useradd user$i;passwd --stdin user$i ;done

14

在/tmp/创建10个空文件file10-file19; 
#!/bin/bash
for i in $(seq 10 19);do touch /tmp/file$i ;done

15

把file10的属主和属组改为user10,依次类推。
#!/bin/bash
for i in {10..19};do chown file$i:file$i file$i;done

vim编辑器

vim是什么?

    vi:Virtual Interface,是一种文本编辑器,所谓文本数据基于文本编码的文件.常见的文本编码有ASCLL码、UNICODE码等等.

    文本编辑器分为两种:
        行编辑器: 一行行的编辑文件,例sed.
        全屏编辑器: 全屏编辑文件,例 nano ,vim.
    vim 即 Vi IMproved.vi的提升版,vim是模式化的编辑.

vim工作模式

    vim在工作过程中分为三个模式.分别为命令模式、输入模式、末行模式;
        命令模式: 在编辑模式下所执行的特定命令.也称为编辑模式.
        输入模式: 用于输入文本信息.
        末行模式: vim内置的命令行接口,执行vim的内置命令.

vim.png

    模式切换
        1 Esc键和":"用于切换模式
        2 命令模式 --> 输入模式
            i: 在光标所在处开始输入
            a: 在光标所在处的后方开始输入
            o: 在光标所在处的下方新建一空行开始输入   
            I: 在光标所在行首开始输入
            A: 在光标所在行尾开始输入
            O: 在光标所在上方新建一空行开始输入
        3 输入模式 --> 命令模式
                键入Esc
        3 命令模式 --> 末行模式
                使用":"
        4 末行模式 --> 命令模式
                键入Esc

vim基础使用

打开文件

    vim [options] [file ..]
         options:
            +[num]: 打开第一个文件,光标将放置于指定的行的行首.
            +/{pat}: 打开第一个文件,光标将放置在第一个被模式匹配到的行的行首.

退出文件

    打开文件时,默认处于命令模式.

        命令模式的退出
            ZZ:保存退出
        末行模式的退出
            :q          ///退出
            :q!         ///不保存退出
            :wq         ///保存退出
            :wq!        ///强制保存退出,先后顺序不能颠倒
            :x          ///保存退出

命令模式下
    光标移动
        字符间移动
         h 左
         l 右
         k 上
         j 下

        单词间移动
         w 跳至下一个单词的词首
         e 跳至下一个单词的词尾
         b 跳至上一个单词的词首

         注意: 
         支持数字移动: #{h|l|j|k|w|e|b}  \\\一次移动多少字符,跳多少单词

        行间移动
          ^ 跳至行首(非空字符行首)
          $ 跳至行尾
          0 跳至行首(绝对行首)


        句子间移动
           (  上一句
           )  下一句

        段落间移动
            {  上一段
             } 下一段

    编辑命令

        字符编辑:
            x     ///删除当前光标字符
            #x    ///删除当前光标开始的#个字符

            结合命令:   
            xp     ///将前后字符对换位置


        删除,负责,修改命令;c,y与d用法相同
        编辑命令可与光标移动命令和数字移动结合使用(以d命令为例):
            dw
            de
            db
            d^
            d$
            d0
            d[h|j|k|l]
            dd              ///删除当前行
            #COMMAND        ///命令操作数量,例如3dd,删除三行

        粘贴命令:
        p: 粘贴,粘贴内容为上一次操作编辑的内容;
            如果内容为字符串,则粘贴至光标后方;
            如果内容为行,则粘贴至光标行的下一行;
        P: 粘贴,粘贴内容为上一次操作编辑的内容;
            如果内容为字符串,则粘贴至光标前方;
            如果内容为行,则粘贴至光标行的上一行;

        替换命令:
            r: 替换,替换单个字符
                rCHAR
            R: 替换,进入替换模式,在此模式下可替换所有文本;

        其他编辑命令:

            可视化编辑:
                v: 按字符选定
                V: 按行选定

                结合编辑命令使用

            撤销操作命令(undo):
                u: 撤销上一步操作
                 #: 撤销上#步操作

            撤销此前的撤销:
                Ctrl+r

            重复执行上一次操作:
                .

    翻屏操作
        Ctrl+f : 向下翻一屏
        Ctrl+b : 向上翻一屏
        Ctrl+d : 向下翻半屏
        Ctrl+u : 向上翻半屏
        Enter  : 向下翻一行

    vim自带的练习教程:vimtutor


末行模式下
    地址定界
        :start_1[,End_2]

        .: 光标所在行;
        #: 指定特定为#行,例如5,则为第5行;
        #,#: 左边指定起始行,右边指定结束行;
        #,+#: 左边指定起始行,右边指定向下偏移行数;
        %: 代表全文;
        $: 末行;
        /part1/,$: 左边为第一次模式匹配到的行,右边为末行;
        /part1/,/part2/: 左边为左侧模式匹配第一次匹配到的行,右边为右侧模式匹配第一次匹配到的行;

        可结合编辑命令一起使用,
            d
            c
            y
            w  /some/where/file        ///保存至指定文件
            r  /some/where/file        ///将指定文件读入指定位置

        练习:
            1 写出第一次行首为#,至行首不为#的行,复制
                :/^#/^[^#]/y
            2 第一行至倒数第二行,删除
                :1,$-1d
            3 删除全文 
                :%d
            4 vim编辑/etc/fstab,将/etc/issue文件内容读入最后一行
                :$r /etc/issue

    查找
        /PATTERN : 从当前光标处,到末尾查询匹配到的字符串
        ?PATTERN : 从当前光标处,到行首查询匹配到的字符串
            n: 下一个匹配到的字符串,与命令查询方向一致
            N: 上一个匹配到的字符串,与命令查询方向相反

    查找并替换:
        s:末行模式的命令
        使用格式:
            s/要查找的内容/替换为的内容/修饰符

            要查找的内容: 可以使用正则表达式
            要替换的内容: 不能使用正则表达式,但可以引用;
                引用:
                    后项引用
                    引用查询模式匹配到的全部文本,使用&符号;
            修饰符:
                i: 忽略大小写;
                g: 全局替换(默认为替换第一个匹配到的字符串);

        分割符可以为多种:
            s@@@
            s###

        练习:
            1、复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符;
                %s@^[[:space:]]\+@@
            2、复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令为/tmp/functions文件的每个以空白字符开头的行的行首加上#;
                %s@^[[:space:]]\+[^[:space:]]@#&@g
            3、为/tmp/grub2.cfg文件的前三行的行首加上#号;
                1,3s@^@#@g
            4、将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替换为enabled=1,所有gpgcheck=0替换为gpgcheck=1;
                %s@\(enabled\|gpgcheck\)=0@\1=1@g

vim多文件编辑:

多文件:
    vim FILE1 FILE2 ...

    在文件间切换:
        :first    ///第一个文件
        :last     ///最后一个文件
        :prev     ///上一个文件
        :next     ///下一个文件

    退出所有文件:
        :wqall   <-->    :wqa         ///退出并保存所有文件
        :qall    <-->    :qa          ///退出所有文件
        :wall    <-->    :wa          ///保存所有文件

多窗口:
    -o : 水平分割窗口
    -O : 垂直分割窗口

切换窗口:
    Ctrl+w --> ARROW(h,j,k,l,w)

注意:单文件也可分割为多窗口编辑查看;
    Ctrl+w --> s : 水平分割窗口
    Ctrl+w --> v : 垂直分割窗口

vim相应配置文件

末行模式下使用配置命令,只生效于当前vim进程;
全局配置:   /etc/vimrc               
个人配置:   ~/.vimrc (默认不存在,需手动创建)

记录vim操作历史:  ~/.viminfo

定制vim的工作特性:

    1、行号
        显示:set number, 简写为set nu
        取消显示:set nomber, set nonu
    2、括号匹配高亮
        匹配:set showmatch, set sm
        取消:set nosm
    3、自动缩进
        启用:set ai
        禁用:set noai
    4、高亮搜索
        启用:set  hlsearch
        禁用:set nohlsearch
    5、语法高亮
        启用:syntax on
        禁用:syntax off 
    6、忽略字符大小写
        启用:set ic
        禁用:set noic
    7、设置tab键缩进4个字符
         set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)

    获取帮助:
        :help
        :help subject

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

(0)
N25_sadanN25_sadan
上一篇 2017-02-13
下一篇 2017-02-13

相关推荐

  • 推荐-LVS原理详解

    LVS原理详解 LVS原理详解 LVS简介 LVS结构与工作原理 一.LVS的结构 二.LVS内核模型 三.LVS的包转发模型 1.NAT模型: 2.DR模型: 3.TUN模型: 四.LVS的调度算法 LVS的调度算法分为静态与动态两类。 1.静态算法(4种):只根据算法进行调度 而不考虑后端服务器的实际连接情况和负载情况 2.动态算法(6种):前端的调度器…

    Linux干货 2016-03-27
  • 我们都在前行的路上

    我们都在前行的路上         从0到1是一种突破,年少轻狂到心有余而力不足,力挽狂澜到恬淡人生需伏地脚踏实地地前行,漂泊在一线都市,立足我图网,途径百胜,一次机缘巧合转战阿里,对于一个工作6年的弄潮儿,他将所有经历的化作前行的动力和坚韧不拔的耐力,也许不经意,但却理所当然,…

    Linux干货 2016-11-03
  • linux学习心得

    Linux学习心得 之前没怎么了解过linux运维,机缘巧合来到了这里,刚刚开始一脸蒙圈,或者说现在仍然是,不过最大的收获是我在这里真正认真学习了,有了一个端正的态度,一切都是好的开始。 这一周,我学习了linux的发展史,如何安装系统,一些简单的命令等。。。。下面我一一介绍一下,初学者,可能简单粗暴,多多指教! 系统安装: 1:首先用光盘进行linuxIS…

    2017-07-16
  • windows server 2008 r2 每隔一段时间自动关机

    首先来说一下我的狗血经历:     话说作为一个地铁汪,每天背着电脑从房山到朝阳那简直就是能累死我的节奏,所以我跟公司申请我不要用自己的笔记本了(补助我不要了)。最后公司把一台不用的server 2008r2给我用,12G内存,志强CPU,跑虚拟机杠杠的。 但是噩梦开始了,我发现一个特点,这台server 2008 r…

    2015-11-26
  • linux发展史

    通过本篇文章,读者可以了解Linux的基本概念、历史、发展情况; 首先,我们通过简单的介绍Linux,了解什么是linux以及它的发展背景; 前言:操作系统介绍 内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序; 内核能够控制硬件,比如:让CPU可以运算、让硬盘可以读写数据…

    Linux干货 2016-10-14
  • N29 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux干货 2018-03-05

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:12

    很不错,再接再励。