目录
Linux输入输出重定向
Linux中的默认设备
输入输出重定向定义
输入输出重定向操作符
实用形式
标准输入、标准输出、标准错误
输出重定向案例
案例1 --- 输出重定向(覆盖)
案例2 --- 输出重定向(追加)
案例3 --- 错误输出重定向
案例4 --- 正确和错误都输入到相同位置
案例5 --- 正确和错误都输入到相同位置
案例6 --- 重定向到空设备/dev/null
输入重定向案例
案例1
案例2
案例3
使用文件描述符重定向
重定向组合使用
特殊应用
Linux输入输出重定向
Linux中的默认设备
默认的输入设备(标准输入) --- 键盘
默认的输出设备(标准输出) --- 屏幕
输入输出重定向定义
利用重定向操作符可以重新定义命令涉及的默认的输入和输出设备对象,即重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置
输入输出重定向操作符
“>”、“>>”称为输出重定向操作符
 
         “<”、 
 “<<” 
 称为输入重定向操作符 
 
 
注意:
重定向操作符本省不是一条命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号
实用形式
|  
     使用形式  
     |  
     功能  
     | 
|  
     命令 
      > 
     文件或者:命令 1> 
     文件 
     |  
     将命令执行后的输出信息不在默认的屏幕上显示 
     , 
     而是以覆盖的方式写入到指定文件中, 
     若指定的文件不存在 
     , 
     则自动创建该文件  
     | 
|  
     命令  
     2> 
     文件 
     |  
     将命令执行后所产生的错误信息不在默认的屏幕上显示 
     , 
     而是以覆盖的方式写入到指定文件中, 
     若指定的文件不存在 
     , 
     则自动创建该文件  
     | 
|  
     命令  
     &> 
     文件 
     |  
     将命令执行后的输出信息和错误信息不在默认的屏幕上显示 
     , 
     而是以覆盖的方式写入到指定文件中, 
     若指定的文件不存在 
     , 
     则自动创建该文件  
     | 
|  
     命令 2>/dev/null  
     |  
     将命令执行后所产生的错误信息不在默认的屏幕上显示 
     , 
     而是写入到空设备文件中, 
     即将输出的错误信息丢弃掉  
     | 
|  
     命令 
     >> 
     文件 
     |  
     将命令执行后的输出信息以追加的方式写入到指定的文件中 
     | 
|  
     命令 
     < 
     文件 
     |  
     使命令从指定的文件中读取输入数据  
     | 
|  
     命令 
     << 
     结束标识字符串  
     |  
     读取命令行输入 
     , 
     直到遇到输入行为指定的结束标识字符串 
     | 
标准输入、标准输出、标准错误

输出重定向案例
案例1 --- 输出重定向(覆盖)

[root@localhost test]# date 1> date.txt

案例2 --- 输出重定向(追加)

[root@localhost test]# date >> date.txt 
案例3 --- 错误输出重定向

[root@localhost test]# ls /home/ /aaaaa> list.txt 

[root@localhost test]# ls date.txt > list.txt > error.txt //重定向到不同的位置
案例4 --- 正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaaaaa &>list.txt //混合输出
案例5 --- 正确和错误都输入到相同位置
[root@localhost ~]# ls /home/ /aaaaaaaaa >list.txt 2>&1 //重定向到相同的位置

案例6 --- 重定向到空设备/dev/null
[root@localhost ~]# ls /home/ /aaaaaaaaa >list.txt 2>/dev/null //空设备,即将产生的输出丢掉

输入重定向案例
标准输入 --- < 等价 0<
案例1
[root@localhost ~]# grep 'root' //没有改变输入的方向,默认键盘,此时等
待输入...
yang sss
sssrootssss..
sssrootssss..
[root@localhost ~]# grep 'root' < /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
案例2
[root@localhost ~]# dd if=/dev/zero of=/file1.txt bs=1M count=2
[root@localhost ~]# dd </dev/zero >/file2.txt bs=1M count=20
案例3
[root@localhost ~]# at now +5 min
[root@localhost ~]# vim at.txt
useradd yang100
useradd yang102
[root@localhost ~]# at now +2 min < at.txt注意 --- 使用 Ctrl + D 退出

使用文件描述符重定向
 
         使用文件描述符的重定向都使用了&符号 
 
| 形式 | 功能 | 
|  
      cmd >&n  
      |  
      把输出送到文件描述符 
      n  
      | 
|  
      cmd m>&n  
      |  
      把输出到文件符 
      m 
      的信息重定向到文件描述符 
      n  
      | 
|  
      cmd >&- 
      |  
      关闭标准输出  
      | 
|  
      cmd <&n 
      |  
      输入来自文件描述符n  
      | 
|  
      cmd m<&n  
      |  
      m 
      来自文件描述符 
      n  
      | 
|  
      cmd <&-  
      |  
      关闭标准输入  
      | 
|  
      cmd <&n-  
      |  
      移动输入文件描述符 
      n 
      而非复制它 
      | 
|  
      cmd >&n-  
      |  
      移动输出文件描述符 
       n 
      而非复制它 
      | 
重定向组合使用
 
         cmd 2>file < 
 >cmd &> file < 
 >cmd >& file  
 
 
         cmd > file 2>&1  
 
 
         cmd > f1 2>f2  
 
 
         tee files 
 
 
特殊应用
 
         cat > catfile <<EOF  
                















