自动添加脚本说明
map <F5> ms:call AddTile()<cr>'s ##设定快捷键
function AddTile()
call append(0,"# Author :wang")
。。。
endfunction
常用命令
1.diff
作用1:
比较两个文件的不同
使用方法:
diff 文件1 文件2
显示结果的参数:
a ##添加
c ##改变
d ##删除
作用2:
给文件打补丁
前提条件:
需要下载patch
使用方法:
diff -u 文件1 文件2 > file.path ##最好以path结尾
patch 文件1|2 file.path ##文件1或2都可以,这个补丁是双向的,执行文件1就把文件2的内容修改到文件1中,执行文件2就把文件1的内容执行到文件2中
patch -b 文件 file.path ##修改文件,并备份修改之前的原文件
2.grep
作用:
筛选
使用方法:
grep 关键字 文件名 ##筛选文件中含有关键字的行
grep -n 。。。 ##加行号显示
grep -3 ##显示筛选结果和其上下三行
grep -A3 ##显示筛选结果和其下三行
grep -B3 ##显示筛选结果和其上三行
grep -i ##不区分关键字大小写
grep -v ##反向筛选,不显示含关键字的行
grep -E ##多条件筛选,后面可以添加多个筛选条件
grep ^test 文件名 ##行首出现test的行(必须行首就是test 空格都不行)
grep test$ 。。 ##行尾出现test的行
grep "\<test" ##以test开头的字符串的行(只包含数字字母下划线的串)
grep "test\>" ##以test结尾的字符串的行
3.cut
作用:切片字符串
使用方法:
cut -c 1-4|1,4 ##切1-4个字符或第1和第4个字符
cut -d 分隔符 -f 1-4|1,4 ##切以分隔符分隔的1-4个分隔的段或第1和第4个分隔的段
4.awk
作用:切片字符串
使用方法:
awk -F 分隔符 'BEGIN {print A} {print $1} END{print B} ' 文件名
A 在切片之前的输出,可以是字符串也可以是变量
$1 切以分隔符分隔的第一个分隔段
B 在切片之后的输出,可以是字符串也可以是变量
-v 引入变量
cut 与 awk 在分隔方面的区别:
主要的区别在于对空格的分隔,cut识别每一个空格
awk只识别每一个字符串之间的空格,多少数量以一个来计
5.echo
使用方法:
echo 字符串 ##显示字符串
echo -n ##不换行显示
echo -e "\033[31m字符串\033[0m" ##改变颜色
\033[ 两个都是格式必须存在不能改变
31m字符串表示颜色红色
0m表示背景色此为默认
echo -e "\r \r" ##回删之前打印的
6.sed
sed 's/sbin/westos' 文件名 ##将文件中的sbin字符串替换成westos与vim中命令用法一样
s 可以前面加数字,数字 表示多少行到多少行之间的替换
s 也可以前面加/字符串/,/字符串/ 表示那个字符串到那个字符串之间的替换
-e 加多个''命令
sed 5d 文件名 ##删除第五行,并显示
sed 5p 文件名 ##复制第五行,并显示
sed -n 5p 文件名 ##只显示第五行
变量
环境级:只针对当前环境有效,环境关闭,变量失效
export A=1 ##设置环境变量A=1,在shell中
用户级:只针对用户有效
vim /root/.bash_profile ##编写配置文件
export A=1 ##设置用户级环境变量
source /root/.bash_profile ##编写完成后需要加载
系统级:整个系统都有效
vim /etc/profile ##编写配置文件
export A=1 ##设置系统级环境变量
source /etc/profile ##编写完成后需要加载
命令别名设定
环境级:
alias xie='vim'
unalias xie
用户级:
vim ~/.bashrc
alias xie='vim'
source ~/.bashrc
系统级:
vim /etc/bashrc
alias xie='vim'
source /etc/bashrc
变量的定义
USER=root ##直接定义变量名和值
$0 $1 $2 $n $* $# $? ##脚本中默认的变量
$0 ##脚本名
$1 ##执行时后面跟的第一串字符
$2 ##执行时后面跟的第二串字符
$n ##执行时后面跟的第n串字符
$* ##执行时后面跟的第所有字符
$# ##执行时后面跟的字符串个数
$? ##执行的返回值 0 表示正确执行
read -p "" IP ##设定输入提示语,并将输入的值给设定的变量
TEST() ##创建一个函数
{}
TEST ##直接用名称调用
变量的比较
test 变量1 比较符号 变量2
变量也可以是数字字符串
常见的比较符号 "=","!=",">","<"
更多的可以查看man test
[变量1 比较符号 变量2] 与test用法一样
特殊字符的转义
\ 只能转义单个字符
'' 强引用,包含的所有字符均为显示意思(转义)
"" 弱引用,包含的"!","$","\","`"不能转义
运算
运算法则: ++ -- += -= + - * / ** %
运算命令:
$[ 3+2 ]
$((3+2))
let A=3+2
expr 3+2 ##数字与运算符之间必须有空格,*必须转义,并且没有**
常用语句
1.for do done
2.while do done
3.if then elif then else fi
4.case $ in
)
;;
*)
seac
5.语句 && echo yes || echo no
6.自动应答需要下载expect软件,并且编写时以.exp结尾
文件头为:
#!/usr/bin/expext
set timeout 2 ##设置输入的变量个数
set Num [lindex $argv 0] ##输入的变量
set Num2 [lindex $argv 1]
spawn 文件名|命令 ##需要应答的文件或命令
expect {
":关键字" {send} ##匹配关键字应答
}
expect eof ##应答完关闭命令状态
interact ##应答万保持命令状态
map <F5> ms:call AddTile()<cr>'s ##设定快捷键
function AddTile()
call append(0,"# Author :wang")
。。。
endfunction
常用命令
1.diff
作用1:
比较两个文件的不同
使用方法:
diff 文件1 文件2
显示结果的参数:
a ##添加
c ##改变
d ##删除
作用2:
给文件打补丁
前提条件:
需要下载patch
使用方法:
diff -u 文件1 文件2 > file.path ##最好以path结尾
patch 文件1|2 file.path ##文件1或2都可以,这个补丁是双向的,执行文件1就把文件2的内容修改到文件1中,执行文件2就把文件1的内容执行到文件2中
patch -b 文件 file.path ##修改文件,并备份修改之前的原文件
2.grep
作用:
筛选
使用方法:
grep 关键字 文件名 ##筛选文件中含有关键字的行
grep -n 。。。 ##加行号显示
grep -3 ##显示筛选结果和其上下三行
grep -A3 ##显示筛选结果和其下三行
grep -B3 ##显示筛选结果和其上三行
grep -i ##不区分关键字大小写
grep -v ##反向筛选,不显示含关键字的行
grep -E ##多条件筛选,后面可以添加多个筛选条件
grep ^test 文件名 ##行首出现test的行(必须行首就是test 空格都不行)
grep test$ 。。 ##行尾出现test的行
grep "\<test" ##以test开头的字符串的行(只包含数字字母下划线的串)
grep "test\>" ##以test结尾的字符串的行
3.cut
作用:切片字符串
使用方法:
cut -c 1-4|1,4 ##切1-4个字符或第1和第4个字符
cut -d 分隔符 -f 1-4|1,4 ##切以分隔符分隔的1-4个分隔的段或第1和第4个分隔的段
4.awk
作用:切片字符串
使用方法:
awk -F 分隔符 'BEGIN {print A} {print $1} END{print B} ' 文件名
A 在切片之前的输出,可以是字符串也可以是变量
$1 切以分隔符分隔的第一个分隔段
B 在切片之后的输出,可以是字符串也可以是变量
-v 引入变量
cut 与 awk 在分隔方面的区别:
主要的区别在于对空格的分隔,cut识别每一个空格
awk只识别每一个字符串之间的空格,多少数量以一个来计
5.echo
使用方法:
echo 字符串 ##显示字符串
echo -n ##不换行显示
echo -e "\033[31m字符串\033[0m" ##改变颜色
\033[ 两个都是格式必须存在不能改变
31m字符串表示颜色红色
0m表示背景色此为默认
echo -e "\r \r" ##回删之前打印的
6.sed
sed 's/sbin/westos' 文件名 ##将文件中的sbin字符串替换成westos与vim中命令用法一样
s 可以前面加数字,数字 表示多少行到多少行之间的替换
s 也可以前面加/字符串/,/字符串/ 表示那个字符串到那个字符串之间的替换
-e 加多个''命令
sed 5d 文件名 ##删除第五行,并显示
sed 5p 文件名 ##复制第五行,并显示
sed -n 5p 文件名 ##只显示第五行
变量
环境级:只针对当前环境有效,环境关闭,变量失效
export A=1 ##设置环境变量A=1,在shell中
用户级:只针对用户有效
vim /root/.bash_profile ##编写配置文件
export A=1 ##设置用户级环境变量
source /root/.bash_profile ##编写完成后需要加载
系统级:整个系统都有效
vim /etc/profile ##编写配置文件
export A=1 ##设置系统级环境变量
source /etc/profile ##编写完成后需要加载
命令别名设定
环境级:
alias xie='vim'
unalias xie
用户级:
vim ~/.bashrc
alias xie='vim'
source ~/.bashrc
系统级:
vim /etc/bashrc
alias xie='vim'
source /etc/bashrc
变量的定义
USER=root ##直接定义变量名和值
$0 $1 $2 $n $* $# $? ##脚本中默认的变量
$0 ##脚本名
$1 ##执行时后面跟的第一串字符
$2 ##执行时后面跟的第二串字符
$n ##执行时后面跟的第n串字符
$* ##执行时后面跟的第所有字符
$# ##执行时后面跟的字符串个数
$? ##执行的返回值 0 表示正确执行
read -p "" IP ##设定输入提示语,并将输入的值给设定的变量
TEST() ##创建一个函数
{}
TEST ##直接用名称调用
变量的比较
test 变量1 比较符号 变量2
变量也可以是数字字符串
常见的比较符号 "=","!=",">","<"
更多的可以查看man test
[变量1 比较符号 变量2] 与test用法一样
特殊字符的转义
\ 只能转义单个字符
'' 强引用,包含的所有字符均为显示意思(转义)
"" 弱引用,包含的"!","$","\","`"不能转义
运算
运算法则: ++ -- += -= + - * / ** %
运算命令:
$[ 3+2 ]
$((3+2))
let A=3+2
expr 3+2 ##数字与运算符之间必须有空格,*必须转义,并且没有**
常用语句
1.for do done
2.while do done
3.if then elif then else fi
4.case $ in
)
;;
*)
seac
5.语句 && echo yes || echo no
6.自动应答需要下载expect软件,并且编写时以.exp结尾
文件头为:
#!/usr/bin/expext
set timeout 2 ##设置输入的变量个数
set Num [lindex $argv 0] ##输入的变量
set Num2 [lindex $argv 1]
spawn 文件名|命令 ##需要应答的文件或命令
expect {
":关键字" {send} ##匹配关键字应答
}
expect eof ##应答完关闭命令状态
interact ##应答万保持命令状态