美文网首页Linux 学习
从零开始学习Linux(三十三):Shell基础之输入输出重定向

从零开始学习Linux(三十三):Shell基础之输入输出重定向

作者: 通靈鹿小六 | 来源:发表于2020-12-24 07:22 被阅读0次

    1、标准输入输出

    设备 文件名 类型 文件描述
    键盘 /dev/stdin 0 标准输入
    显示器 /dev/stdout 1 标准输出
    显示器 /dev/stderr 2 标准错误输出

    查看/dev目录下面所有的文件信息,如下图所示:

    2、输出重定向

    输出重定向,简单的理解就是改变输出方向。比如将命令执行结果由输出到屏幕改变成输出到文件。

    2.1、标准正确输出重定向
    符号 作用
    命令 > 文件 以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中。
    命令 >> 文件 以追加的方式,把命令的正确输出,输出到指定的文 件或设备当中。

    将date命令结果输出到文件output.txt中,然后查看文件内容:

    2.2、标准错误输出重定向
    符号 作用
    错误命令 2> 文件 以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中。
    错误命令 2>> 文件 以追加的方式,把命令的错误输出,输出到指定的文件或设备当中。

    此种方式很少会用到,因为这要求使用之前我们必须要清楚的知道这是一个错误的命令。

    (1)date命令是正确输出时间的,而datel命令会报错。
    (2)直接执行错误命令 datel >> output.txt ,将结果输出到文件,命令同样报错;
    (3)执行命令 datel 2 >> output.txt,命令同样报错,2和>>之间不能有空格;
    (4)必须使用命令 datel 2>> output.txt,将错误结果输出到文件;

    整个命令执行过程,如下图所示:

    2.3、正确输出和错误输出同时保存
    符号 作用
    命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
    命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
    命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
    命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
    命令 >> 文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中。

    命令 >> 文件 2>&1 和 命令 &>> 文件,这两种保存结果都一样,只不过方式不一样。

    (1)执行命令,将date正确输出结果输出到output.txt;
    (2)执行命令,将datel错误输出结果输出到output.txt;
    (3)查看output.txt文件内容;

    整个执行过程,如下图所示:

    测试 &>> 方式结果一样。

    特殊用法:&>> /dev/null 不管命令是否正确,直接丢弃,不做任何数据保存。

    3、输入重定向

    不通过键盘输入,通过文件输入,在实际场景中应用不多。

    把文件作为命令的输入:命令 < 文件。

    wc命令统计输入的信息,将文件hello.sh作为wc命令的输入,然后进行统计:

    显示结果从左到右依次是:行数、单词数、字节数。

    3.1、wc命令

    命令格式:wc [选项] [文件名];
    选项说明:

    • -l 统计行数;
    • -w 统计单词数;
    • -c 统计字节数;

    相关文章

      网友评论

        本文标题:从零开始学习Linux(三十三):Shell基础之输入输出重定向

        本文链接:https://www.haomeiwen.com/subject/moxcnktx.html