1.标准输入输出
设备 |
设备文件名 |
文件描述符 |
类型 |
键盘 |
/dev/stdin |
0(在shell中) |
标准输入 |
显示器 |
/dev/stdout |
1 |
标准输出 |
显示器 |
/dev/stderr |
2 |
标准错误输出 |
2.输出重定向
所有的标准输出文件描述符1均可以不写,但标准错误输出2一定要写,也就是说>文件与1>文件效果一样
类型 |
符号 |
作用 |
标准输出重定向1 |
>文件 |
覆盖到文件或设备 |
标准输出重定向2 |
>>文件 |
追加到文件或设备 |
标准错误输出重定向1 |
2>文件 |
覆盖到文件或设备 |
标准错误输出重定向2 |
2>>文件 |
追加到文件或设备 |
正确输出和错误输出同时保存1 |
>文件 2>&1 |
以覆盖的方式将两者保存同一文件 |
正确输出和错误输出同时保存2 |
>>文件 2>>&1 |
以追加的方式将两者保存同一文件 |
正确输出和错误输出同时保存3 |
&>文件 |
以覆盖的方式将两者保存同一文件 |
正确输出和错误输出同时保存4 |
&>>文件 |
以追加的方式将两者保存同一文件 |
正确输出和错误输出同时保存5 |
>>文件1 2>>&1 |
正确追加文件1,错误追加文件2 |
3.Linux黑洞
# /dev/null是Linux的默认给的文件,将信息重定向这里会导致所有信息被吞噬,类似于垃圾站
# 所以ls &>/dev/null(这里连在一起,不要有空格)定向到这里将会无显示(正确输出和错误输出都会),一般用于当我不想看到某条命令的输出结果时
4.输入重定向
1.<和<<
2.一般来说,输入wc回车后,启用键盘作为输入源,输入后按ctrl+d结束会自动统计
3.wc < access.log会改变输入源为文件(其实直接wc access.log也行,这是这条命令的标准用法)
4.文本块做为输入源(ddy为标记,可任意命名)
wc << ddy
sdfsf
sfddf
sdfdf
ddy
# 再次碰到标记时代表结束,自动进行统计(但基本不用)