linux入门之I/O重定向

我们知道,执行一个shell命令行时通常会执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件。

若想将信息的输出方式进行转换则可以进行输入输出重定向

1 、输入重定向
     cat > test.txt
     进行键盘输入
     结束ctrl+d

[root@mmmm ~]# cat >test.txt
hhhddddkkkkvvveeeeekkkksss
[root@mmmm ~]# cat test.txt
hhhddddkkkkvvveeeeekkkksss

     重定向到多个目标(tee)

命令1 | tee[-a ] 文件名| 命令2
把命令1的STDOUT保存在文件中,做为命令2的输入
-a 追加

使用:

保存不同阶段的输出

复杂管道的故障排除

同时查看和记录输出

[root@localhost ~]# echo 1.5+3 |tee ha.txt |bc
4.5
[root@localhost ~]# echo 1.5+3 |tee ha.txt

2、输出重定向

> 或 1> 表示正确输出重定向
     > 若文件不存在,则创建,若文件已存在,则覆盖

    >> 若文件不存在,则创建,若文件已存在,则追加

[root@localhost ~]# echo 1.5+3 |tee ha.txt
1.5+3
[root@localhost ~]# echo 'hello' >wsy.txt
[root@localhost ~]# echo 'hello' >ha.txt
[root@localhost ~]# cat wsy.txt
hello
[root@localhost ~]# cat wsy.txt
hello
[root@localhost ~]# echo 'i am fine' >>ha.txt
[root@localhost ~]# cat ha.txt
hello
i am fine
2> 表示错误输出重定向
    2> 若文件不存在,则创建,若文件已存在,则覆盖
    2>> 若文件不存在,则创建,若文件已存在,则追加


&> 表示全部输出重定向(正确错误都定向)
    &> 若文件不存在,则创建,若文件已存在,则覆盖
    &>> 若文件不存在,则创建,若文件已存在,则追加

1>&2  表示将正确结果转换为错误结果
2>&1  表示将错误结果转换为正确结果



猜你喜欢

转载自www.cnblogs.com/w-s-y/p/9338374.html