1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法
命令行模式:
:w 保存
:q 退出
:w! 强制保存
:q! 强制退出
:wq 保存并退出
:set number 显示行号,可缩写为 :set nu
:set nonumber 隐藏行号,可缩写为 :set nonu
查找操作:
/str 或者 ?str 用来搜索 str
按n向下查找,按N反之
替换操作:
使用:s可以替换字符串
:s/str1/str2 替换当前行的第一个str1为str2
:s/str1/str2/g 替换当前行的所有str1为str2
:n,s/str1/str2 替换第n行的第一个str1为str2
:.,s/str1/str2 替换当前行的第一个str1为str2
:%s/str1/str2 替换所有行的第一个str1为str2
:%s/str1/str2/g 替换全局所有str1为str2
分隔符 “/” 可使用其他符号来代替例如:
:s$str1$str2
:s#str1#str2
2、总结脚本中运算符、逻辑运算以及用法
算数运算符
+ 加法
- 减法
* 乘法
/ 除法
% 取余数
例如:
1 + 2
1 - 2
1 * 2
1 / 2
1 % 2
关系运算符,
在[]中比较使用
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
例如:
[ 1 -eq 2 ]
*注意括号和表达式之间必须留有空格不能写成[1 -eq 2]
在[[]]中比较使用
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
例如:
[[ 1 == 2 ]]
*同样括号和表达式要留空格
逻辑运算符
== 是否相等,相等返回真
!= 是否不相等,不相等返回真
例如:
[ 1 == 2 ]
*同样括号和表达式要留空格
3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中
#!/bin/bash
#************************************************
#Author: zero
#Date: 2019-05-19
#File name: backup.sh
#************************************************
echo "backup start"
sleep 1
bacPath="/root/etc`date +%F`/"
mkdir -p $bacPath
cp -av /etc/* $bacPath
echo "backup done"
4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统
#!/bin/bash
#************************************************
#Author: zero
#Date: 2019-05-19
#File name: nologin.sh
#************************************************
read -p "Please input username:" user
id=`id $user |cut -d' ' -f1|grep -oE "[0-9]{3,5}"`
[ "$id" -ge "1000" ] && usermod -L $user && echo "$user have been banned" || echo "fiall! $user is system user"
#!/bin/bash
#************************************************
#Author: zero
#Date: 2019-05-19
#File name: login.sh
#************************************************
read -p "Please input username:" user
id=`id $user |cut -d' ' -f1|grep -oE "[0-9]{3,5}"`
[ "$id" -ge "1000" ] && usermod -U $user && echo "$user is allowed" || echo "fiall! $user is system user"
5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值
#!/bin/bash
#************************************************
#Author: zero
#Date: 2019-05-19
#File name: disk.sh
#************************************************
df |grep /dev/sda|tr -s ' ' "%" |cut -d% -f5|sort -nr|head -1