在linux中不仅能将输出内容打印到屏幕上,也能使用管道和I/O重定向输出到文件或其他位置。
地址总线是指:内存寻址
数据总线是指:传输数据
控制总线是指:控制指令
系统输入和输出设定
系统设定:
默认输入设备:标准输入,STDIN 0
默认输出设备:标准输出,STOUT 1
标准错误输出,STDERR 2
标准输入:键盘
标准输出和错误输出:显示器
I/O重定向
> 输入重定向 覆盖输出
>> 追加输出
使用覆盖输出重定向是相当危险的,所以建议在/etc/profile的最后加上一行,禁止覆盖输出重定向。
set -C
这样设定后只有你在>1明确确定后才能使用覆盖重定向
[root@localhost ~]# ll /var > ./test
-bash: ./test: cannot overwrite existing file
[root@localhost ~]# ll /var >1 ./test
set +C 关闭覆盖重定向限制
2> 错误覆盖重定向
2>> 错误追加重定向
&> 不论正确或错误覆盖重定向
< 输入重定向
[root@localhost ~]# cat < /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults
[root@localhost ~]# tr 'a-z' 'A-Z' < /etc/fstab
LABEL=/ / EXT3 DEFAULTS 1 1
LABEL=/BOOT /BOOT EXT3 DEFAULTS
<<在此处生成文档
[root@localhost ~]# cat << END
> 1234
> dsjfajdjk
> END
1234
dsjfajdjk
[root@localhost ~]# ll
cat >> filename << EOF
[root@localhost ~]# cat >> new.txt << "EOF"
> 123
> 456
> EOF
[root@localhost ~]# cat new.txt
123
456
[root@localhost ~]#
管道是指:前一个命令的输出做为后一个命令的输入
[root@localhost ~]# echo "hello world" | tr 'a-z' 'A-Z'
HELLO WORLD
[root@localhost ~]#
tee可以同时帮助我们输入到文件和屏幕上
[root@localhost ~]# echo "hello world" | tee mess
hello world
[root@localhost ~]# cat mess
hello world