12月12 日
Shell脚本支持条件测试 条件测试的方式有:整数测试、字符测试、文件测试、text后面跟测试内容,例如 1>2 结果是;0或者非0 ,整数测试: -eq 等于、-gt大于,-lt 小于、-ne不等于、-le小于等于 。字符串测试 :!=表示不等于。文件测试: -L/-h
File测试一个文件是否为符号链接文件 、 -o 测试文件属主、-G 测试文件属主是否是自己
前面加一个!表示取反、-a-o表示链接两个条件的
-a 表示与 、-o表示或。
短路操作: &&表示与 、|| 表示或 、 &&||表示链接俩个完整的语句或命令。
Sort 排序
Sort-o /tmp/passwd 表示排序输出位置
Sort-n 表示以数据值来排序
Sort-u 排序完毕把重复的行去掉
Sort-r 按逆序排序。
Sort-f 排序时忽略大小写。
Diff/patch 生成补丁/打补丁, diff不仅可以比较 两个文件也可以比较两个目录。
Tr 转换字符集 例如 tr ‘a-z’‘A-Z’把小写的转换为大写的。
Sed :  行编辑器 一次处理一行 是一个非交互式的编辑器 没有破坏性,sed 还支持sed 脚本。
-n 只显示匹配到道且被处理的内容,例如 sed-n‘/root/p’ etc/psddwd
-i直接编辑源文件
S 用一个字符串来替换另一个 ,例如 sed ‘s/root/ROOT/g /etc/passwd.
Sed也可以允许指定查找范围 add1,add2s/// 例如:sed ‘1,5d/root/ROOT/g’ /etc/passwd $表示最后一行,例如:10,$s/root/ROOT/g   指定范围可以从行到行 例如:/root/,/student/s/root/ROOT/     &表示替代前面括号中出现的字符(引用整个串,而不是括号里面的串)例如:sed ‘s/r..t/&able àsed ‘s/root/rootable 或者sed ‘s/r\(..\)t/R\1T/g’ /etc/passwd
如果出现像ftp:// 这样// 多的 为了区分 可以加反斜杠\\ 进行转译。
a\ 在搜索到的行后面追加一行sed ‘/baseurl/a \enable=0’ server.repo 
\i在搜索到的行前面追加一行 
\n 表示换行符
-e 表示链接两个条件
-f 表示从这个文件中 读取 条件并应用到文件中
Vi 编辑器
Vi 是一个模拟化的编辑器 有三种常见模式 : 默认模式下是命令模式 ,输入模式 ,末行模式 。
I 和a 可以从命令模式切换到输入模式。
从 输入 命令 按 ESC 键
从 命令 到末行 输入冒号 :
从 行到 命令 按ESC 键
在vi 编辑器里面输入 zz 表示保存退出、打开vi编辑器:1、vim   2、vim后跟路径    退出::wq保存退出 :q
:q!   :w! 
Vim +n后跟文件名 进入文件让光标处在第n行    vim+/redhat 后跟文件名 打开后进入第一行存在redhat的地方
如果打开vi 编辑器在直接跳到 第十行 ,例如 vim +10 rc.sysinit
Vi 光标移动 ,左 h ,下j, 上k , 右 l ,都表示一次只能移动一个字符。
在行内移动 ^ 移动到行首 , $ 行尾 、0 零 绝对行首。
W 一次移动以个单词到下一个单词词首。
B 上一个单词词首如不在当前词首那么先跳到当前词首 在跳到上一个单词词首
E 下一个单词词尾    同上
行间跳转 用NG 4G就是第四行 8G 即使第八行。在末行模式下直接输入数字也可以跳转。
在句之间跳转 用左右括号()、在段落之间跳转用 {}。
在当前光标所在行的下方插入一个新行用小写o ,大写o 是在上方插入一个新行。
大写C删除光标所在行并转入输入状态,小写c 删除光标所在单词并转入输入状态。
r 替换 光标所在处单个字母的替换,R覆盖模式 在此模式下所有的操作都覆盖原先的内容。
删除操作
小写x 删除光标所在处后面的内容 , 大写x 删除光标所在处前的内容。
d 按两下 删除光标所在行, D删除光标所在行 但空白行还留下 位置不会发生改变。
复制粘贴
yy 复制一行 、 3yy复制3行。
小写p 复制当前光标下的一行,P 当前改变上的一行
 “.” 表示当前光标所在处,
如果想从当前行删除倒数第二行用: . ,$-1d
V表示可视模式 ,小写v 以字符为单位按字符选取, 大写v 以行为单位(以对角线为单位的矩形块)
查询功能   / 
例如:搜索以pro靠头的单词, / \<pro[^[:space:]]*\>
以$开头后面至少一个大写字母 : / \$[[:apper:]]\ {1,\}
小写n 表示上一个, 大写n 表示下一个。
/pattern 搜索符合条件的字符     ?pattern 查找匹配项
查找并替换 需要在末行模式下进行
撤销操作
u 表示undo 撤销最近一次操作 ,U用来撤销最近一次的所有操作(最多50次),ctrl+r 撤销上一次操作, . 表示重做 再一次执行上一次操作,
vim 可以跟多个文件 a b c d 等文件 。next 下一个文件,prev 前一个文件, first 第一个文件 ,last 最后一个文件。
小写-o 用于水平分割窗口 ,大写-o 用于垂直分割窗口。
如何定vim 显示特性
直接用 set 命令
在 冒号模式下输入 set number 显示行号 ,set autoindent 自动缩进(set ai), set ignorecase 忽略大小写(set ic)
循环
if [ ]; then
…..
…..
else
fi
循环分支:while循环 for循环 until循环。
Whilel [ ] ; do
…….
done
区别 条件不满足就循环
Until [ ] ; do
……..
done
 maill 命令 给用户发邮件,mail root 给root 发邮件 ,cc 表示邮件发给谁。
quit 退出mail , -s 加入邮件主题。
Function 函数 功能
两种ing格式声明函数 : 1、function name {内容},2、namen () {内容}。
函数可以实现代码重用。
改变字体颜色 echo –e “\033[33mhow aie you?\033[0m” 表示给how are you 显示颜色。
Ping –c 指ping的次数 ,ping-W 指ping不通的等待时间。