输出信息包括正确信息和错误信息。标准的输出设备:显示器,标准输入设备:键盘,扫描仪等。
使用命令 ll /dev/std*可以查看输入输出设备:
lrwxrwxrwx. 1 root root 15 Jul 23 10:48 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Jul 23 10:48 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Jul 23 10:48 /dev/stdout -> /proc/self/fd/1
数字0代表标准的输入(设备),1代表了标准的正确输出(设备),2就代表了标准的错误输出(设备)
输出重定向:
命令 > 文件:把正确的输出覆盖到指定文件中,如:ls > a.txt,正确输出后加空格再跟文件
命令 >> 文件:把正确的输出追加到指定文件中,如:ls >> a.txt,正确输出后加空格再跟文件
命令 2>文件:把错误的输出覆盖到指定文件中,如:xxxbcvfda678 2>a.txt,错误输出紧跟文件,没有空格
命令 2>>文件:把错误的输出追加到指定文件中,如:xxxbcvfda678 2>>a.txt,错误输出紧跟文件,没有空格
命令 > 文件1 2>文件2:把正确的输出覆盖到文件1中,把错误的输出覆盖到文件2中,错误输出紧跟文件,没有空格
命令 &>文件:把正确或者错误的输出都覆盖到文件中。错误输出紧跟文件,没有空格
命令 > 文件 2>&1:把正确或者错误的输出都覆盖到文件中
命令 &>>文件:把正确或者错误的输出都追加到文件2中。错误输出紧跟文件,没有空格
命令 >> 文件 2>&1:把正确或者错误的输出都追加到文件2中
命令 >> 文件1 2>>文件2:把正确的输出追加到文件1中,把错误的输出追加到文件2中。错误输出紧跟文件,没有空格
输出重定向:
命令 < 文件:把文件作为命令的输入
命令 << 标识符:把标识符之间的内容作为文件的输入:
如: wc EOF 4416 fdafdasf hello fdlafjl EOF
wc [-选项] [文件名]
选项:
-c 统计字符数
-w 统计单词数
-l 统计行数
例如:wc
dsafads
hello
world
abc
输完按ctrl+d,就会统计输入了多少行,多少个单词,多少个字符
输入输出在脚本程序中使用特别广泛!
管道符:
格式:命令 | 命令2: 把命令1的输出作为命令2的操作对象
如:ls -l | more : 把ls -l的输出结果分屏显示,使用enter查看下一页
不是所有的命令都支持管道的输入,xargs可以让不支持管道的命令间接的去支持,xargs命令将参数列表转换成段传递给其他命令
如:ls | xargs -t rm -rf 这样就将ls列出来的结果用rm命令删除了