IO重定向:
输出重定向:>
特性:覆盖输出
输出重定向:>>
特性:追加输出
# set -C
禁止覆盖输出重定向至已存在的文件;
此时可使用强制覆盖输出:>|
# set +C
关闭上述特性
错误输出流重定向:2>, 2>> 只会将错误的信息输出到指定的地方
合并正常输出流和错误输出流:
(1) &>, &>>
(2) COMMAND > /path/to/somefile 2>&1
COMMAND >> /path/to/somefile 2>&1[root@app1 tmp]# ech "next" > a.txt
-bash: ech: command not found
[root@app1 tmp]# ech "next" > a.txt 2>&1
[root@app1 tmp]# ech "next" &> a.txt
[root@app1 tmp]# ech "next" 2> a.txt
特殊设备:/dev/null,代表空
COMMAND > /dev/null:代表所有的输出信息都不会显示,直接到/dev/null里面去
使用演示:[root@app1 tmp]# echo "hello" > a.txt
[root@app1 tmp]# cat a.txt
hello
[root@app1 tmp]# echo "next" >> a.txt
[root@app1 tmp]# cat a.txt
hello
next
[root@app1 tmp]# ech "next" > a.txt
-bash: ech: command not found
[root@app1 tmp]# cat a.txt
[root@app1 tmp]# ech "next" 2> a.txt
[root@app1 tmp]# cat a.txt
-bash: ech: command not found
[root@app1 tmp]# ech "next" &>> a.txt
[root@app1 tmp]# cat a.txt
-bash: ech: command not found
-bash: ech: command not found
[root@app1 tmp]# ech "next" > /dev/null
-bash: ech: command not found
[root@app1 tmp]# ech "next" &> /dev/null
输入重定向:
输入重定向:<
特性:覆盖输入
输入重定向:<<
特性:追加输入
使用演示:1、
[root@app1 tmp]# cat <a.txt
> I
> wish
> nothing
> but
> the
> best
> for
> you
> !
> EOF
[root@app1 tmp]# cat a.txt
I
wish
nothing
but
the
best
for
you
!
2、
[root@app1 tmp]# cat > a.txt <
> l
> o
> v
> e
> EOF
[root@app1 tmp]# cat a.txt
l
o
v
e
tr命令:
tr [OPTION]... SET1 [SET2]
把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符
用法1:
tr SET1 SET2 < /PATH/FROM/SOMEFILE
用法2:
tr -d SET1 < /PATH/FROM/SOMEFILE
注意:不修改原文件,只显示出来[root@app1 tmp]# tr -d o
l
v
e
[root@app1 tmp]# cat a.txt
l
o
v
e
[root@app1 tmp]# tr "a-z" "A-Z"
L
O
V
E
管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流
COMMAND1 | COMMAND2 | COMMAND3 | ...把/etc/passwd文件的前6行的信息转换为大写字符后输出;
[root@app1 tmp]# head -n 6 /etc/passwd | tr 'a-z' 'A-Z'
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
tee命令:将前一个命令的执行结果通过管道覆盖到一个文件中[root@app1 tmp]# cat a.txt | tee b.txt
l
o
v
e
[root@app1 tmp]# cat b.txt
l
o
v
e