• Shell输入/输出重定向


    Shell输入/输出重定向

    ================================摘自菜鸟教程===================================

    大多数unix系统命令从你的终端接受输入并将所产出的输出发送到终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好就是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。

    重定向命令列表如下:

    命令

    说明

    command >file

    将输出重定向到file

    command<file

    将输入重定向到file

    command>>file

    将输出以追加的方式重定向到file

    n>file

    将文件描述符为n的文件重定向到file

    n>>file

    将文件描述符为n的文件以追加的方式重定向到file

    n>&m

    将输出文件mn合并

    n<&m

    将输入文件mn合并

    <<tag

    将开始标记tag和结束标记的tag之间的内容作为输入

    备注:文件描述符0通常是标准输入(STDIN),1是标准输出(STDOUT),2是标准错误输出(STDERR

    1、输出重定向

    a、输出重定向

    该种方式如果原文件存在会覆盖掉原文件内容。

    重定向一般通过在命令之间插入特定的符号来实现。

    last >/home/log/1/last.log
    

     备注:

    last命令执行后,并没有在中终端显示服务器登录信息,这是因为输出已经被从默认的标准输出设备(终端)重定向到指定文件。

    b、以追加的方式输出重定向

    该种方式如果援文件存在不会覆盖源文件内容。

    last >>/home/log/1/last.log
    

    2、输入重定向

    wc -l <run.log

     同时替换输入输出

    wc -l <run.log >run1.log
    

    3、重定向深入

    一般情况下,每个unix/Linux命令运行时都会打开三个文件;

    a、标准输入文件(STDIN):stdin的文件描述符为0,unix程序默认从stdin读取数据;

    b、标准输出文件(STDOUT):stdout的文件描述符为1,unix程序默认从stdout输出数据;

    c、标准错误文件(STDERR):stderr的文件描述符为2,unix程序会向stderr流中写入错误信息;

    默认情况下,command>file将stdout重定向到file,command<file将stdin重定向到file

    如果希望stderr重定向到file

    cat /etc 2>/home/log/1/run.log

     如果希望stderr以追加的方式重定向到fie

    cat /etc 2>>/homg/log/1/run.log
    

     如果希望将stdout和stderr合并后重定向到file

    ###将标准输出和标准错误输出到文件
    command >file 2>&1
    ###将标准输出和标准错误以追加的方式输出到文件
    command >>file 2>&1
    

     如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到/dev/null;

    /dev/null是一个特殊的文件,写入到她的内容都会被丢弃;如果尝试从该文件读取内容,那什么也读取不到。但是/dev/null文件非常有用,将命令的

    输出重定向到它,会起到禁止输出的效果。

    如果希望屏蔽stdout和stderr,可以这样写:

    command >/dev/null 2>&1
    
  • 相关阅读:
    Docker+Nginx 部署Vue+Element前端项目
    MySql取字段逗号分隔的第一个
    Mysql数据库中从表字段中存储了主表以逗号隔开的主键ID,现需求查询从表数据以及以逗号隔开的字段改为主表名称隔开(group_count() find_in_set())
    IIS 错误500.21解决方法
    IIS 出现500.19 错误处理解决方式
    Linux中vim的三种模式
    Centos7 .Net Core 使用Supervisor守护进程,进行后台运行
    Nginx反代理ASP.NET Core项目
    C# vb .net实现圆角矩形特效滤镜
    C# vb .net实现旋转特效滤镜
  • 原文地址:https://www.cnblogs.com/tengjiang/p/11507710.html
Copyright © 2020-2023  润新知