解释:
输入输出设备是计算机基本组成部分之一。
- 系统有设定的默认设备:
- 默认输出设备(标准输出):stdout,1。
- 默认输入设备(标准输入):stdin,0。
- 标准错误输出:STDERR,2。
- 标准输入:键盘。
- 标准输出和错误输出:显示器。
管道和重定向
- 输出重定向;
- >:使用命令cat /etc/passwd:则会使文件中的内容打印到屏幕上,这就是默认输出设备;而使用命令cat /etc/passwd > aaa:则会将文件中的内容输出到文件aaa中去,这就是输出重定向。
- 使用 > 重定向输出,会覆盖目标文件中原有内容。
- >>:追加输出重定向,使用该符号,不会覆盖目标文件中原有内容,而是在文件后面追加输出。
- 2>:重定向错误输出。
- 2>>:追加重定向错误输出。
- &>:重定向标准和错误输出。
- &>>:没有这个。。。
- 输入重定向;
- <:cat < /etc/passwd:从文件中输入,而不是键盘。
- <<:<<:END:此处生成文档,一般为END,EOF(结束符)。
- set:可以关闭或开启一个功能,使用man指令查找帮助使用,例如:
- -C:禁止对已经存在文件进行覆盖重定向。
- +C:关闭上述功能。
- 管道:命令
- 命令1|命令2|命令3…:前一个命令的输出作为后一个命令的输入。
- tee:读取输入,输出到文件和屏幕。
正则表达式
REGEXP(REGular EXPression)
- 原则:
- 尽可能长的匹配(贪婪模式)。
- 部分匹配。
- 元字符:注意与文件名通配区分
- . :匹配任意单个字符。
- *:匹配其前面的字符任意次(包括0次)。
- .*:任意长度的任意字符。
- \?:匹配前面字符1次或0次。
- \{m,n\}:匹配其前面的字符至少m次,至多n次。
- []:匹配指定范围内的任意单个字符。可参考文件名通配;
- [^]:匹配任意范围外的任意单个字符。
- 位置锚定:
- ^:锚定行首,此字符后面的任意内容必须出现在行首。
- $:锚定行尾,此字符前面的任意内容必须出现在行尾。
- ^$:匹配空白行。
- \<或者\b:锚定词首。其后面的任意字符必须作为单词首部出现。
- \>或者\b:锚定词尾。其后面的任意字符必须作为单词尾部出现。
- 分组:
- ():后向引用;括起来的部分可以被后面引用。
- \1:引用第一个小括号括起来的内容。
- \2:同上,等等。
扩展正则表达式
- 元字符:
- 包含以上所有字符且不用使用反斜线 \ 。
- +:匹配其前面字符至少一次
- |:或者符号,例如a|bc:匹配a或者bc。(a|b)c:匹配ac或bc。