目录
0,1,2
0标准输入流
可以结合<把文件输入
#把a.txt的内容输出到cat命令
cat 0<a.txt
#给name赋值为"zhangsan"
name 0<<<"zhngsan"
#可以输入很多行但read只会读取第一行,内容是从aabb开始到aabb结束,aabb也不是固定的可以用ccdd,eeff,....相似的
read 0<<aabb
zhangsan
aabb
#cat就可以读取aabb之间的所有内容
cat 0<<aabb
zhangsan
lisi
wangwu
aabb
1标准输出流
可以结合>把标准输出到文件
#把ll输出的正确的结果输出到a.txt
ll / 1>a.txt
#把ll输出的正确的结果输出到a.txt,错误的结果输出到b.txt
ll / /tettttt 1>a.txt 2>b.txt
#把ll输出的正确的结果输出到a.txt,错误的结果输出到a.txt
#会发现错误的结果没有写入a.txt,是因为>把先输出的内容覆盖了
ll / /tettttt 1>a.txt 2>a.txt
#会发现无论命令顺序总是会先输出错误的结果再输出正确的
ll /tettttt / 2>a.txt 1>a.txt
#把ll的结果追加到d.txt
ll / /tettttt 1>>d.txt 2>>d.txt
2错误输出流
可以结合>把错误的信息输出到文件
#把ll输出的错误的结果输出到a.txt,是覆盖
ll /lllllll 2>a.txt
#追加
ll /lllllll 2>a.txt
还可以使用>&指定流
例如:
########shell_1
[shuqiq@shuqiq ~]$ cd /proc/$$/fd
[shuqiq@shuqiq fd]$ ll
总用量 0
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:32 0 -> /dev/pts/0
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:32 1 -> /dev/pts/0
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:32 2 -> /dev/pts/0
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:50 255 -> /dev/pts/0
[shuqiq@shuqiq fd]$
########shell_2
[shuqiq@shuqiq ~]$ cd /proc/$$/fd
[shuqiq@shuqiq fd]$ ll
总用量 0
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:51 0 -> /dev/pts/1
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:51 1 -> /dev/pts/1
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:51 2 -> /dev/pts/1
lrwx------. 1 shuqiq shuqiq 64 4月 12 22:51 255 -> /dev/pts/1
[shuqiq@shuqiq fd]$
想在shell_1里输入ll命令在shell_2里输出
就在shell_1 里就执行 : exec 1>/dev/pts/1
shell_1里的ll命令结果就会输出到shell_2的窗口里