第三周作业

1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法

vim命令行模式常见的快捷方式:


字符间跳转h: 左  l: 右   j: 下   k: 上

                      #command:跳转由#指定一次跳转的字符数   例:5h向左跳转5个字符;6k向上跳三行


单词间跳转w:下一个单词的词首    e:当前或下一单词的词尾     b:当前或前一个单词的词首

                      #COMMAND:由#指定一次跳转的单词数    例 :  5w 跳转到后面第5个单词的词首   3e 跳转到后面数第3个单词的词尾


当前页跳转:H:页首     M:页中间行      L:页底    

                      zt将光标所在当前行移到屏幕顶端   zz:将光标所在当前行移到屏幕中间   zb:将光标所在当前行移到屏幕底端


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


       行间移动G:最后一行    1G, gg: 第一行    


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


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


      删除命令:  d: 删除命令,可结合光标跳转字符,实现范围删除  例:d5l:向后删除5个字符

                         d$: 删除到行尾     d^:删除到非空行首     d0:删除到行首    dd: 删除光标所在的行    #dd:多行删除    D:从当前光标位置一直删                             除到行尾,等同于d$


     复制命令:  y: 复制,行为相似于d命令    y$    y^     y0     yy:复制行    #yy: 复制多行   Y: 复制整行


粘贴命令(p, paste):  p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面

                                   P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面


撤消更改  : 撤销最近的更改    #u 撤销之前多次更改    U 撤消光标落在这行后所有此行的更改吗    按 Ctrl-r 重做最后的“撤消”更改

                   .  重复前一个操作    n. 重复前一个操作n次


vim 中可以使用 :s 命令来替换字符串。

:s/aaa/bbbg  替换当前行的所有hello为sky

:n,$s/aaa/sky 替换第n行开始到最后一行的第一个aaa为bbb

:n,$s/aaa/bbb/g 替换第n行开始到最后一行的所有aaa为bbb

:%s/aaa/bbb    替换每一行的第一个aaa为bbb

:%s/aaa/bbb/g    替换每一行的所有aaa为bbb

2、总结脚本中运算符、逻辑运算以及用法.

bash中的算术运算有: +,   * ,  , %取模(取余), **(乘方)

实现算术运算:

(1) let var=算术表达式    例:运算命令是let b=1 + 2。然后用echo $b来输出b的值。如果没有let,则会输出1+2

(2) var=$[算术表达式]    例: a=$[1+3*4]。然后用echo $a来输出a的值13

(3) var=$((算术表达式))    (4) var=$(expr arg1 arg2 arg3 ...)

(5) declare –ivar= 数值     (6) echo ‘算术表达式’ | bc

乘法符号有些场景中需要转义,如*   expr 5 \* 6    

数值测试-ge是否大于等于  -eq是否等于  -ne是否不等于  -lt是否小于  -le是否小于等于  

逻辑运算:

非:!

! 1 = 0 ! true      ! 0 = 1 ! false

短路运算

短路与 &&;    第一个为0,结果必定为0    第一个为1,第二个必须要参与运算

短路或 ||            第一个为1,结果必定为1    第一个为0,第二个必须要参与运算

异或:^

异或的两个值,相同为假,不同为真

3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中

      #/!bin/bash

     day=`date +%F`

     echo "start backup..."

     cp -av /etc /root/etc$day    - a 归档: 递归、保留文件属性、链接    -v:详细显示命令执行的操作

     echo "finsh"

     unset day    释放变量


结果

4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统


允许普通用户登录


禁止普通用户登录

5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值


脚本内容


结果

你可能感兴趣的:(第三周作业)