马哥教育网络班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

相关推荐

  • 第一周学习总结

    俗话说,好记性不如烂笔头,在当今移动互联网横行的时代,烂笔头就是网络,而笔记本就是各种平台。 作为一个IT人,有人突然问你计算机是啥,你可能不会像学文科的人一样给他说,就是电脑啊。这时候就是凸显IT知识技能的时候了,那么我下面就给您慢慢的道来。 在1946年美籍匈牙利人冯·诺依曼首次提出了自己的计算机体系理论,简称冯·诺依曼体系,主要是说计算机由五大基本部件…

    2017-12-14
  • find命令基本应用

       简单的find命令查找 Find +路径+条件(支持文件通配)+找到后执行的操作 条件: 可根据文件类型查找:-type   f为普通文件 d为目录文件 l为链接文件(常用) 可根据属主和属组查找:-uid  -gid 可根据时间戳来查找:alime(查看时间)ctime(文件属性更改时间)m…

    Linux干货 2017-04-11
  • Linux网络管理基础

    Linux网络管理基础 动态路由 Bonding Network Teaming 静态路由实验 Linux的网络管理,了解基本的网络知识是基础,除此,要掌握好ifconig命令、ip命令、nmcli命令(CentOS 7),以及涉及到网络的配置文件。 配置动态路由: 通过守护进程获取动态路由,安装quagga包,支持RIP、OSPF、BGP,通过命令vtys…

    Linux干货 2016-09-09
  • bash 基础特性1

    bash 基础特性 命令模式 systemctl set-default multi-user.target 图形模式 systemctl set-default graphical.target   # rmdir [OPTION]…DIRECTORY…-p:删除某录后,如果其父目录为空,则一并删除之-v:显示过程# mk…

    Linux干货 2017-06-01
  • 马哥教育21期网络班—第二周课程+练习

    目录管理类命令: mkdir, rmdir, tree mkdir mkdir [options] /path/to/somewhere -p: 存在于不报错,且可自动创建所需的各目录; -v: 显示详细信息 -m MODE: 创建目录时直接指定权限; tree tree:  需要安装  yum -y install …

    Linux干货 2016-06-29
  • 用户管理和组管理

         Linux是一个多用户多任务的系统 ,因此学习用户管理和组管理,对我们工作和学习有很大的帮助。用户是你登录这个操作系统的凭证,因此用户的创建和修改,删除是用户管理的基本工作,所以你掌握这些,对你的工作有很好的帮助。 用户账号管理 /etc/passwd username:x: UId:gid:comment:…

    Linux干货 2016-08-10