一.过滤器
linux系统应用工具主要有三种:交互工具,过滤器,编辑器
1.过滤器:能够接受数据,过滤再输出的工具,对着过滤器和进程,存在着输入源和输出对象。
(1)输入:过滤器的数据来源 标准输入 stdin(0) :default为键盘
(2) 输出:过滤器的数据去向 标准输出 stdout(1) :default为终端屏幕
标准错误输出 stderr(2) :defalult终端屏幕
2. 重定向:标准输入,输出与错误输出,都可以用特定符号改变数据来源或去向
(1)输入重定向
使用 < 来重定向输入源,大多数工具都会以其后的文件名为输入源,有一些过滤器一定需要添加 <以明确输入源
格式: command < file (command命令输入源内容是从file文件中读取)
从当前文档输入
(1) 使用<<让系统将一次键盘的全部命令输入,先送入虚拟的 ‘当前文档’,然后一次性输入
(2)从当前文档输入需要一对字母,符号或字符串作为起始终结标识符
(3)可以选择任意符号作为起始终结标识符
eg: cat > cat.file << ! 输入到cat.file文件中 在终端输入内容 直到遇上 ! 结束
(2)输出重定向
使用>改变数据输出目标 (>会覆盖文件内的内容,>>会追加到文件内,不覆盖)
eg: ls -l > file (将ls -l 查看的内容 输出重定向到file里面,会覆盖file里面的内容)
(3)错误输出重定向
使用 2> 将报错信息重定向到一个文件中
2> 会覆盖掉要输入到文件中的内容
2>> 将报错信息追加到文件中(不覆盖)
3.双重输出重定向
(1)使用 > 和 2> 可以将一次操作的正确,错误输入被单独地送到不同的地方。
find /etc -name passwd 2> stdrr > stdout 查找etc目录下面名为passwd的文件,错误的信息重定向到sdrr文件,正确的信息重定向到stdout文件
(2) 使用 &> 可以将正确的信息,错误的信息送到同一个地方
find /etc -name passwd &> allout
find /etc -name passwd &> allout 2>&1
4.管道
使用 | 将前一个过滤器的输出直接送入后一个过滤器的输入。管道可以将一系列的命令链接起来
eg. ls -l /etc | grep pass 说明:按照列表查找etc下面的名为pass的内容截取出来
ls -l /etc | more 达到翻页
注:管道前过滤器的输出与管道后过滤器的输入数据类型匹配。
重定向管道的常用规范
(1) ls -l | more 分屏显示当前目录下的文件
(2) cat < filea > fileb 拷贝filea到fileb
(3)cat file.* > file 把多个名为file的文件合并成一个file文件
(4)cat filea fileb >file 把filea 和fileb的文件合并一个file文件