输入/输出设备(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,不支持正则表达式