zoukankan      html  css  js  c++  java
  • Linux 重定向f符号

    1. Linux标准输入输出
      Linux标准输入、输出设备主要是键盘和显示器,详细介绍如下表所示。

      Linux标准输入输出
      设备 设备文件名 文件描述符 类型 符号表示
      键盘 /dev/stdin 0(缺省是键盘,为0时是文件或者其他命令的输出) 标准输入 < <<
      显示器 /dev/stdout 1(缺省是屏幕,为1时是文件) 标准输出 > >>
      显示器 /dev/stderr 2(缺省是屏幕,为2时是文件) 标准错误输出 2> 2>>

      注:其中一个>表示:覆盖原文件中的内容;如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候

      两个>即>>表示:追加到原文件中的内容之后;果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响

      2、Linux输出重定向
      输出重定向:改变程序运行的输入来源和输出地点。

      主要的适用方法如下表所示:

      输出重定向
      类型 符号 功能
      标准输出重定向 命令 >文件 以覆盖方式,把命令的正确输出内容输出到指定的文件或设备当中
      命令 >>文件 以追加方式,把命令的正确输出内容输出到指定的文件或设备当中
      标准错误输出重定向 错误命令 2>文件 以覆盖方式,把命令的错误输出内容输出到指定的文件或设备当中
      错误命令 2>>文件 以追加方式,把命令的错误输出内容输出到指定的文件或设备当中
      正确/错误输出同时保存 命令 > 文件 2>&1 以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中
      命令 >> 文件 2>&1 以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中
      命令 &> 文件 以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中
      命令 &>> 文件 以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中
      命令 >>文件1 2>文件2 以追加方式,把命令的正确输出保存在文件1中;以覆盖方式,把命令的错误输出内容保存到文件2中

      3、Linux输入重定向

      输入重定向
      类型 符号 功能
      标准输入 命令 <文件1 命令把文件1的内容作为标准输入
      标识符限定输入 命令 <<标识符 命令从标准输入中读入内容,直到遇到“标识符”分界符位置
      输入输出重定向 命令 <文件1 >文件2 命令把文件1的内容作为标准输入,把文件2作为标准输出

      总结一五Linux的输入输出重定向:

      1、重新设置命令的默认输入,输出,指向到自己文件(文件,文件描述符,设备其实都是文件,因为linux就是基于设备也是文件,描述符也指向是文件)

      2、扩展自己新的描述符,对文件进行读写操作

    实例:

    1)向文件test.sh里输入内容。
    [root@slave-server opt]# cat << EOF >test.sh 
    > 123123123
    > 3452354345
    > asdfasdfs
    > EOF
    [root@slave-server opt]# cat test.sh 
    123123123
    3452354345
    asdfasdfs
    
    追加内容
    [root@slave-server opt]# cat << EOF >>test.sh 
    > 7777
    > 8888
    > EOF
    [root@slave-server opt]# cat test.sh 
    123123123
    3452354345
    asdfasdfs
    7777
    8888
    
    错误追加到a.txt,&>>等同于>>和2>>
    [root@localhost test]# ls dasd &>> a.txt
    查看执行结果
    [root@localhost test]# echo $?
    2
    [root@localhost test]# cat a.txt 
    ls: 无法访问dasd: 没有那个文件或目录
    123
    ls: 无法访问dasd: 没有那个文件或目录
    [root@localhost test]# 
    

      

    [root@localhost ~]# ps -aux | grep aux 
    Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ 
    root 53 0.0 0.0 0 0 ? S 16:33 0:00 [ata_aux] 
    root 2379 4.0 0.1 110224 1172 pts/2 R+ 22:55 0:00 ps -aux 
    root 2380 0.0 0.0 103316 868 pts/2 D+ 22:55 0:00 grep aux 
    查询全部进程后输出结果在进行过滤跟 进行中包含aux的进程。
    管道符,前一个命令输出作为后一个命令输入
    

      

    [root@localhost test]# head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out
    [root@localhost test]# cat /tmp/passwd.out 
    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
    /etc/passwd的前五行小写替换大写到/tmp/passwd..out
    

      

    [root@localhost test]# who |tail -1 | cut -d' ' -f1 |tr [[:lower:]] [[:upper:]] | tee /tmp/who.out
    ROOT
    查看登录用户的最后一位,写入/tmp/who.out
    

      

    [root@localhost test]# free -m |grep "^Mem" 
    Mem:           3774         159        3407           8         208        3365
    [root@localhost test]# free -m |grep "^Mem" |awk '{ print $3}'
    158
    [root@localhost test]# free -m 
                  total        used        free      shared  buff/cache   available
    Mem:           3774         158        3407           8         208        3365
    Swap:          3967           0        3967
    

      

  • 相关阅读:
    HDU1069:Monkey and Banana(DP+贪心)
    hdu 4497 GCD and LCM(2013 ACM-ICPC吉林通化全国邀请赛——题目重现)
    vb6.0 倒计时
    硬盘分区表
    踽踽独行的岁月,感谢与你的相遇
    每天学点Linux:二
    windows下Qt Creator5.1.0编写程序以及调用OpenCV库
    【每周一译】愚蠢的指标:Java中使用最多的关键字
    centos 7 没有ifconfig 命令
    About stats collected
  • 原文地址:https://www.cnblogs.com/abels0025/p/11313979.html
Copyright © 2011-2022 走看看