输入/输出设备(INPUT OUTPUT)
系统设定
默认输出设备:标准输出 STDOUT 1
默认输入设备:标准输入 STDIN 0
标准错误输出:STDERR 2
默认标准输入:键盘
默认标准输出和错误输出:显示器
linux I/O重定向
>:覆盖输出
>>:追加输出
set -C:禁止对已经存在的文件使用覆盖重定向
强制覆盖输出:则使用>|
set +C:关闭上述功能
2>:重定向错误输出
2>>:追加方式错误输出
&>:重定向标准输出和错误输出至同一个文件
<:输入重定向
<<:Here Document
例如:cat <<EOF
hello world
EOF
管道:一个命令的输出结果是另一个命令的输入
tee命令:既能在显示器显示,又同时能保存至文件
例如:echo "hellwold" | tee xx.txt
grep,egrep,fgrep
grep:跟进模式搜索文本,并将符合模式的文本显示出来
Pattern:文本字符和正则表达式的元字符组合而成匹配条件
grep 常用选项
-i 忽略大小写
-v 显示没有被匹配的行
-o 只显示被模式匹配得到的字符串
正则表达式:Regular Express,REGEXP
元字符(贪婪模式):
.:匹配任意单个字符
[]:匹配范围内的任意字符
[^]:匹配指定范围外的任意单个字符
字符集合:[:digit:] [:lower:] [:uper:] [:alpha:] [:alnum:] [:punct:]
匹配次数:
*:匹配其前面的字符任意次
.*:任意长度的任意字符
\?:匹配其前面的字符1次或者0次
\(m,n\):匹配其前面的字符至少m次,至多n次
例如:\(1,\) \(1,3\)
位置确定
^:行首
$:行尾
^$:空白行
/<或者\b:锚定词首,其后面的任意字符必须作为单词首部出现
/>或者\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
分组:
\(\)
\(ab\)*
后向引用:
\1:第一个左括号
\2:
\3:
正则表达式:
Basic REGEXP:基本
Extended REGEXP:扩展
grep其他常用选项
-E 使用扩展正则表达式
-A n 同时显示匹配的后面n行的信息
-B n 同时显示匹配的前面n行的信息
-C n 同时显示匹配的前面和后面n的信息
扩展正则表达式:
基本和正则表达式一样,有几个不一样
+:匹配其前面的字符至少1次
{m,n}:不要写反斜杆
a|b:表示a or b
egrep:x相当于 grep -E,扩展grep
fgrep:fast grep,快速grep,不支持正则表达式