test test 条件判断运算符1> 字符串:str1 = str2 相等 str1 != str2 不想等str1 > str2 大于str1 小于-z str1 为空2> 整数:n1 -eq n2 等于n1 -ne n2 不等于 n1
Shell 参数 1> ${0} 命令本身2> ${1} 第一个参数3> ${#} 参数的个数4> ${*} 参数列表5> shift 左移, 参数个数会减1 shift 2 左移 2 位, 参数个数会减2
单引号,双引号, expr 1>单引号: 忽略所有的特殊符号, 内部禁止文件名替换2> 双引号: 除了 $ \ ` 这三个不忽略,其他都忽略, 内部禁止文件名替换3> `` 或者 $() 命令替换4> expr 只能用来做整数的 + - \* / 运算, 浮点数需要用awc, bccount=$(expr 1 + 2)
grep grep pattern files1> -i: 忽略大小写 grep -i 'the'2> -v: 反转3> -l: 只显示文件名 grep -l 'the' me | wc -l4> -n: 显示行好
Sed Sed 编辑行数据, stream editor的缩写, 不会修改源文件1> 替换 sed 's/Unix/UNIX/' me 将行中的第一个Unix改为UNIX sed 's/Unix/UNIX/g' me 将行中所有的Unix改为UNIX sed '1,5s/Unix/UNIX/g' me 将前5行中所有的Unix改为UNIX
Paste Paste 把多个/1个 文件中的行合并成一行, 与 cut 相反1> -d 指定分隔符 cut -d : names numbers2> -s 把1个文件中的行合并为一行 ls | paste -d ' ' -s
简明正则 1> 行(1) ^ 行首(2) $ 行尾2> 字符(1) . 任意一个字符(2) [] 指定范围内的任意一个字符(3) [^] (2)反转(4) () 字符串 并放到寄存器中 从1开始,引用是用\13> 个数(1) * >=0(2) ? ==1(3) {} ==, >=,
Shell 职责 1) 执行命令: 过滤多余空格* 扫描命令和参数* 如果内建命令则直接执行,若非, 则在磁盘上寻找,申请kernel执行2) 变量和文件名替换3) IO重定向4) 管道线连接5) 环境控制6) 解释性语言