管理及IO重定向
输入设备/输出设备,程序,控制器,运算器,存储器;
地址总线:内存寻址;
数据总线:传输数据
控制总线:控制指令
寄存器:cpu暂时存储器
系统设定:
1、默认输出设备:标准输出STDOUT(显示器)
2、默认输入设备:标准输入STDIN(键盘)
3、标准错误输出STDERR(显示器)
I/O重定向:
>:标准输出重定向,覆盖输出,原有内容会被覆盖;
>>:追加输出,保留原有文件内容;
>|:覆盖输出(强制输出,set命令一样无效);
&|:重定向标准输出或错误输出至同一文件;
2>:错误输出重定向,覆盖输出;
2>>:追加错误输出;
<:输入重定向;
<<:生成文档,文档终止词 ,使用 << 命令从键盘把多行重导向给STDIN,直到 终止词 位置的所有文本都发给STDIN,例如:
set:命令,设定功能,能设定bash的功能开关:
-c:如果文件已存在,禁止使用覆盖重定向;
+c:关闭功能,允许覆盖;
管道:
前一个命令的输出,作为后一个命令的输入,用竖杠 | 表示
tee:命令,读取标准输入到标准输出和文件中,可与管道命令配合使用;
-a:在原有基础上追加输出
grep及正则表达式
在linux中我们会有文本查找以及文本检索的需要,grep命令就是用于文本检索的,可以根据模式去搜索文本,并将符合模式的文本行显示出来。
模式:pattern,文本字符和正则表达式的元字符(元字符是指那些在正则表达式中具有特殊意义的专用字符)组合而成的匹配条件。
grep 选项 模式 文件
-i 忽略大小写
--color 高亮区分
-v 显示无匹配信息
-o 只显示被模式匹配到的字符串
正则表达式(默认贪婪模式):
. :表示匹配任意单个字符;
* :匹配其前面的字符任意次,例如匹配a字母任意次:
.* :匹配任意长度任意字符;
? :匹配其前面的字符一次或零次,一般在使用?的时候需要在其前面使用转义符\;
{m,n}:匹配其前面的字符至少m次,至多n次;
位置锚定:
^ :锚定行首,表示该符号后的任意字符串,必须出现在行首;
$ :锚定行尾,表示改符号前的任意字符串,必须出现在行尾;
^$ :匹配空白行;
[] :匹配指定范围内的任意单个字符,如[a-z]表示匹配一个小写字母;
[^] :匹配指定范围外的任意单个字符,如[^a-z]表示匹配除小写字母外的一个字符;
锚定词首和词尾:
\< :其后面的任意字符必须作为单词首部出现;
\> :其前面的任意字符必须作为单词尾部出现;
分组:
使用()对内容进行分组,将其中内容作为一个整体匹配;
注:几个常用的非贪婪匹配Pattern
*? 重复任意次,但尽可能少重复
+? 重复一次货更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n, m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
网友评论