马哥教育网络班22期-第6周博客作业

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

[root@centos6 ~]# cp /etc/rc.d/rc.sysinit /tmp/
[root@centos6 ~]# sed -i 's/^[[:space:]]/#/' /tmp/rc.sysinit

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

[root@centos6 ~]# cp /boot/grub/grub.conf /tmp/
[root@centos6 ~]# sed -i 's/^[[:space:]]//' /tmp/grub.conf

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

[root@centos6 ~]# sed 's@^#[[:space:]]\+@@g' /tmp/rc.sysinit

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

[root@centos6 ~]# sed '1,3s@^.*@#&@g' /tmp/rc.sysinit | head -3
##!/bin/bash
##
## /etc/rc.d/rc.sysinit - run once at boot time

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

sed 's/enabled=0/enabled=1/g;s/gpgcheck=0/gpgcheck=2/g' /etc/yum.repos.d/CentOS-Media.repo | egrep "(enabled|gpgcheck)"

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202

00 */4 * * * root /bin/tar -zcf /backup/etc-`date +%Y%m%d%H%M` /etc

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

00 00 * * 2,4,6 /bin/tar -zcf /backup/messages_logs/messages-`date +%Y%m%d` /var/log/messages

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

[root@centos6 backup]# mkdir /stats
00 */2 * * * /bin/grep '^S' /proc/meminfo >>/stats/memory.txt

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

00 8-17/2 * * 1-5 /bin/echo "howdy"

脚本编程练习

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

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

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

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

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

15、把file10的属主和属组改为user10,依次类推。

#!/bin/bash
#
DIR=/tmp/testdir-`date +%Y%m%d`
touch /tmp/$DIR/file{1..100}
sed -n 'n;p' /etc/passwd|cut -d: -f1
for i in `seq 10 19`;do
   useradd user$i
   echo "user$i" | passwd --stdin user$i
   touch /tmp/file$i
   chown user$i:user$i /tmp/file$i
done

vim编辑器

1 什么是vim编辑器

    vim是模式化的编辑器

    文本编辑器:

    文本:纯文本,ASCII text;Unicode;

    文本编辑种类:

    行编辑器:sed

    全屏编辑器:nano, vi

2 vim基本模式

    编辑模式,命令模式

    输入模式

    末行模式:内置的命令行接口;

2.1 模式转换

2.1.1 编辑模式–>输入模式

    i:insert, 在光标所在处输入;

    a: append,在光标在处后方输入;

    o:在光标所在处的下方打开一个新行;

    I:在光标所在行的行首输入;

    A:在光标所在行的行尾输入;

    O:在光标所在处的上方打开一个新行;

2.1.2 输入模式–>编辑模式

    ESC

2.1.3 编辑模式–>末行模式

    :

2.1.3 末行模式 –> 编辑模式

    ESC

3 打开文件

    # vim [options] [file ..]

    +#:打开文件后,直接让光标处于第#行的行首;

    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

    [root@centos6 ~]# vim +5 /etc/fstab  #打开/etc/fstab文件,让光标处于第5行行首

    [root@centos6 ~]# vim +/UUID /etc/fstab  #打开/etc/fstab文件,让光标处于第一个被匹配到的字符“UUID”行的行首

    [root@centos6 ~]# vim + /etc/fstab   #打开/etc/fstab文件,让光标处于最后一行的行首

4 关闭文件:

4.1 编辑模式下

    ZZ:保存并退出;

4.2 末行模式下

    :q 退出

    :q! 强制退出,不保存此前的编辑操作

    :wq 保存并退出;

    :w, :q

    :x 保存并退出;

    :w /PATH/TO/SOMEFILE 另存为

5 光标跳转

5.1 字符间跳转

    h:左

    j:下

    k:上

    l:右

    #COMMAND:跳转由#指定的个数的字符;

5.2 单词间跳转

    w:下一个单词的词首;

    e:当前或后一个单词的词尾;

    b:当前或前一个单词的词首;

    nCOMMAND:跳转由n指定的个数的单词;

5.3 行首行尾跳转

    ^:跳转至行首的第一个非空白字符;

    0:跳转至行首;

    $:跳转至行尾;

5.4 行间跳转

    nG:n为数字,跳转至这个文件的第n行;

    1G, gg:跳转珐第一行;

    G:跳转至最后一行;

    n+[Enter]键:n为数字,光标向下跳转n行(常用)

5.5 句间跳转:

    )

    (

5.6 段间跳转

    }

    {

5.7 翻屏:

    Ctrl+f:向文件尾翻一屏

    Ctrl+b:向文件首部翻一屏

    Ctrl+d:向文件尾部翻半屏

    Ctrl+u:向文件首部翻半屏

    Enter:按行向后翻

6 vim的编辑命令

6.1 字符编辑

    x:删除光标所在处一个的字符

    X:删除光标所在处之前的一个字符

    nx:n为数字,删除光标所在处起始的n个字符

    xp:交换光标所在处的字符与其后面字符的位置;

6.2 替换命令

    r:替换光标所在处的字符一次

    R:会一直替换光标所在处的字符,直到按下[Esc]键为止(常用)

6.3 删除命令

    dd:删除光标所在处的那一整行(常用)

    ndd:n为数字,删除光标所在的向下n行,例如20dd则是向下删除20行(常用)

    d$:删除从光标所在处到该行行尾的字符

    d^:删除从光标所在处到该行行首的字符

    dw:删除光标所在处的这个单词至下个单词词首

    de:删除光标所在处的这个单词

    db:删除光标所在处前面的一个单词

    d0:那个是数字的0,删除从光标所在处到该行的最前面的一个字符

6.4 粘贴命令

    p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方;(常用)

    P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;(常用)

6.5 复制命令

    yy:复制光标所在的那一行(常用)

    nyy:n为数字,复制光标所在的向下n行,例如20yy则是向下复制20行(常用)

    y1G:复制光标所在行到第一行的所有数据

    yG:复制光标所在行到最后一行的所有数据

    y0:复制光标所在的字符到该行行首的所有数据

    y0:复制光标所在的字符到该行行尾的所有数据

6.6 改变命令(chage,c)

    编辑模式 –> 输入模式,实现删除操作;

    cc:删除光标所在的行,并转换为输入模式;

    ncc:n为数字,删除光标所在的向下n行,并转换为输入模式;例如20cc则是向下删除20行(常用)

6.7 可视化模式

    v:按字符选定;

    V:按行选定;

    结合编辑命令使用:d, c, y

6.8 撤销(undo)操作:

    u:撤销此前的操作;(常用)

    nu:n为数字,撤销此前的n个操作;

    Ctrl+r:恢复此前的撤销(常用)

    .:重复执行前一个编辑操作

    默认可以撤销50个之前的操作

    vim自带的练习教程:vimtutor

7 vim末行模式:

    vim末行模式是内建的命令行接口

7.1 地址定界

    :start_position[,end_position]:起始位置,结束位置

    n:特定的第#行,例如5即第5行;

    .:点号表示当前行;

    $:最后一行;

    n,n:指定行范围,左侧为起始行,右侧为结束行;

    n,+n:指定行范围,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量;例如:3,+7,从第3行开始向后+7行

    .,$-1:表示从当前行到倒数第二行

    1,$:表示从第一行到最后一行;

    %:表示全文

    /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行;

    例如,/first/,$:从第一次能被first匹配到的行开始到最后一行结束;

    /pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行;

    可同编辑命令一同使用,实现编辑操作:

    d、y、c

    w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;

    r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;

    范例:

    :5r /root/test.txt:将/root/test.txt文件中的5行内容添加到当前文件中。

7.2 查找

    /PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;

    ?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;

    n:这个n是英文n按键,继续查找下一个,与命令方向相同;

    N:这个n是英文N按键,继续查找上一个,与命令方向相反;

7.3 查找查找并替换

    s:末行模式的命令;使用格式:

    s/要查找的内容/替换为的内容/修饰符

    要查找的内容:可使用正则表达式;

    替换为的内容:不能使用下则表达式,但可以引用;

    如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;

    直接引用查找模式匹配到的全部文本,要使用&符号;

    修饰符:

    i:忽略大小写;

    g:全局替换,意味着一行中如果匹配到多次,则均替换;

    范例:

        :1,20s/this/THIS/ig:将1到20行的this替换为THIS,并忽略大小写

        可把分隔符替换为其它非常用字符:s@@@、s###

    示例:

        :%s@\<t\([[:alpha:]]\+\)\>@T\1@g:表示把文件中以t开头的单词替换为T开头

        :%s@\<t[[:alpha:]]\+\>@&er@g:表示把文件中以t开头的单词尾部都加上一个er

    练习1、复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符;

        [root@www ~]# cp /etc/grub2.cfg /tmp/

        [root@www ~]# vim /tmp/grub2.cfg 

        :%s@^[[:space:]]\+@@

    练习2、复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令为/tmp/functions文件的每个以空白字符开头的行的行首加上#;

        :%s@^[[:space:]]\+[^[:space:]]@#&@g

    练习3、为/tmp/grub2.cfg文件的前三行的行首加上#号;

    练习4、将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替换为enabled=1,所有gpgcheck=0替换为gpgcheck=1;

        :%s@\(enabled\|gpgcheck\)=0@\1=1@g

8 vim的多文件功能:

8.1 多文件

    vim FILE1 FILE2 …

8.1.1 在文件间切换:

    :next  下一个

    :prev  上一个

    :first   第一个

    :last   最后一个

8.1.2 退出所有文件:

    :wqall 保存所有文件并退出;

    :wall

    :qall

8.2 多窗口

    -o:水平分割窗口

    -O:垂直分割窗口

        在窗口间切换:Ctrl+w, ARROW

        注意:单个文件也可以分割为多个窗口进行查看:

    Ctrl+w, s:水平分割窗口

    Ctrl+w, v:垂直分割窗口

9 vim的环境设置

    注意:在末行模式下的设定,仅对当前vim进程有效;

    永久有效:

        全局:/etc/vimrc

        用户个人:~/.vimrc

    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

    获取帮助: 

        :help 

        :help subject

课外作业:如何设置tab键缩进4个字符;

vim /etc/vimrc 
set ts=4
set expandtab
set autoindent

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

(0)
zhuckeezhuckee
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • 单台主机lnmp+wordpress配置示例

    单台主机lnmp+wordpress fpm配置 ]# yum install php php-fpm php-mysql –y ]# vim /etc/php-fpm.d/www.conf 配置服务监听地址和程序运行者身份 listen = 127.0.0.1:9000 user = nginx group = nginx ]# chown -R ngin…

    Linux干货 2016-11-07
  • 海量数据处理算法—Bloom Filter

    1. Bloom-Filter算法简介         Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。        Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表…

    Linux干货 2015-10-22
  • 网络管理

    网络管理 本章内容 网络概念 OSI模型 网络设备 TCP/IP IP地址 配置网络 实现网络组 测试网络 网络工具 为linux网卡配置ip地址,不是给网卡配置地址,是给内核的网络功能配置,地址是属于内核。为内核配置即时生效,修改配置文件,是永久生效。ifconfig 配置信息,会立即生效,但是重启网络服务或主机,都失效。网络服务/etc/init.d/n…

    Linux干货 2016-09-05
  • 马哥教育21期网络班—第10周课程+练习—-成长进行时–不退步

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> …

    Linux干货 2016-09-15
  • 2017中华数据库与运维大会强势回归!

         时隔一年,2017年中华数据库与运维大会将于06月03日在上海宝丰联大酒店强势回归,届时来自全国各行各业的IT从业人员将欢聚上海,探讨与交流数据库和运维的经验。       自2009年以来,超过4000位技术总监、技术负责人、架构师、项目经理、运维总监、运维经理、DBA经理、DBA、运维…

    2017-02-28
  • 互联网安全之sudo使用指南

    一、前言 sudo是什么? sudo是系统管理指令;由于root用户权限过大,在实际生产过程中很少使用root用户直接登录系统,而是使用普通用户登录系统;但是如果普通用户要对系统进行日常维护操作时需要su到root用户,为了提高安全性,可以使用sudo授权某一用户在某一主机以某一用户身份运行某些命令;从而减少root用户密码知晓人,提高系统安全性。 &nbs…

    2015-06-23