1.IO重定向
I/O重定向是一个过程,这个过程捕捉一个文件、命令、程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件、命令、程序或脚本。
文件描述 | 文件名 | 类型 | 硬件 |
---|---|---|---|
0 | stdin | 标准输入文件 | 键盘 |
1 | stdout | 标准输出文件 | 显示器 |
2 | stderr | 标准错误输出文件 | 显示器 |
输出重定向:是指命令的结果不再输出到终端上,而是输出到其它地方,一般是文件中。这样做的最大好处就是把命令的结果保存起来
输入重定向:指的是’重新指定设备’来代替键盘作为新的输入设备
符号 意义
1>或> 把标准输出重定向到文件
2> 把标准错输出重定向到文件1
- cat和>符号结合使用成为简易文本编辑器
cat > filename
# 1.cat命令后不加任何参数时,cat命令的输入是标准输入,即键盘输入
# 2.I/O重定向符号">"将键盘输入写入文件
# 3.将写入的文件作为输出放入filename
# 4."Ctrl+D"组合键结束编辑
“>>“和”>”(符号符号左边输出作为右边输入(标准输出))
- ">>"符号将标准输出追加到已有文件的内容之后
- ">"符号将文件的原有文件覆盖,然后写入标准输出的内容
">|"符号
">|"符号是强制覆盖文件的符号
">|“与shell的noclobber选项有关,如果noclobber选项开启,表示不允许覆盖任何文件,而”>|"符号则可以不管noclobber选项的作用,强制将文件覆盖
"<"符号(符号右边输出作为左边输入(标准输入))
"<"是I/O重定向的输入符号,它可将文件内容写到标准输入之中
2. 管道
命令从标准输入到读取数据,并将数据发送到标准输出的能力,是使用了名为管道的shell特性。使用管道操作符“|”
可以把一个命令的标准输出传送到另一个命令的标准输入中。
sort
: 排序,将输入排序uniq
:报错或忽略文件中重复的行wc
:打印行数、字数和字节数grep
:打印匹配行head/tail
:打印文件的开头部分/结尾部分head命令将输出文件的前10行,tail命令则输出文件名的最后10行。也可以通过-n
参数来修改输出的行数tee
: 从stdin读取数据,并同时输出到stdout和文件