输⼊设备 input device ⿏标/键盘
输出设备 output device 显示器
计算机信息输⼊ | stdin - standard input device | 标准输⼊设备
计算机信息输出
1.正确输出 | standard output device 标准正确输出设备
2.错误输出 | standard error device 标准错误输出设备
在linux中,⼀切皆⽂件 | 输⼊设备 | 输出设备
/dev/
0 : stdin - standard input device
1 : stdout - standard output device
2 : stderr - standard error device
null ⿊洞设备
如果信息输出到了stdout/stderr设备,信息会从屏幕中显示出来
1、输出重定向
#1.将标准正确输出 - 重定向 - 到⽂件
# “>” (正确输出)覆盖重定向 (只把加正确的结果覆盖,错误的在屏幕输出)
# “>>” (正确输出)追加重定向 (只把加正确的结果追加,错误的在屏幕输出)
[root@localhost test02]# date > date
[root@localhost test02]# ls
a01 a02 a03 a04 date test02.tar.gz
[root@localhost test02]# more date
2025年 07月 30日 星期三 21:46:42 CST
[root@localhost test02]# date > date
[root@localhost test02]# more date
2025年 07月 30日 星期三 21:47:20 CST
[root@localhost test02]# date >> date
[root@localhost test02]# more date
2025年 07月 30日 星期三 21:47:20 CST
2025年 07月 30日 星期三 21:48:23 CST
[root@localhost test02]# date >> date
[root@localhost test02]# date >> date
[root@localhost test02]# date >> date
[root@localhost test02]# more date
2025年 07月 30日 星期三 21:47:20 CST
2025年 07月 30日 星期三 21:48:23 CST
2025年 07月 30日 星期三 21:48:56 CST
2025年 07月 30日 星期三 21:49:00 CST
2025年 07月 30日 星期三 21:49:01 CST
# “2>” (错误输出)覆盖重定向 (只把加错误的结果覆盖,正确的在屏幕输出)
# “2>>” (错误输出)追加重定向 (只把错误的结果追加,正确的在屏幕输出)
[root@localhost test02]# Date 2> date
[root@localhost test02]# more date
bash: Date: 未找到命令...
相似命令是: 'date'
[root@localhost test02]# Date 2>> date
[root@localhost test02]# more date
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
[root@localhost test02]# Date 2>> date
[root@localhost test02]# Date 2>> date
[root@localhost test02]# Date 2>> date
[root@localhost test02]# Date 2>> date
[root@localhost test02]# more date
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
bash: Date: 未找到命令...
相似命令是: 'date'
# “&>” (所有输出)覆盖重定向
# “&>>” (所有输出)追加重定向
# 输出重定向到黑洞 /dev/null
[root@localhost clh]# ls > /dev/null
[root@localhost clh]# Lls 2> /dev/null
#结果转换重定向 >>"file" 2>&1 >>"file" 1>&2
[root@localhost clh]# Date >> date 2>&1 #错误结果转换为正确的重定向到date文件
[root@localhost clh]# cat date
bash: Date: 未找到命令...
相似命令是: 'date'
2025年 07月 31日 星期四 14:05:35 CST
bash: Date: 未找到命令... #错误结果转换为正确的重定向到date文件
相似命令是: 'date'
[root@localhost clh]# Date 2> date_wrong #错误结果重定向到date-wrong文件
[root@localhost clh]# cat date_wrong
bash: Date: 未找到命令...
相似命令是: 'date'
[root@localhost clh]# date 2>> date_wrong >&2 #将正确的输出结果转换为错误的重定向追加
[root@localhost clh]# cat date_wrong
bash: Date: 未找到命令...
相似命令是: 'date'
2025年 07月 31日 星期四 14:12:12 CST #本身date-wrong文件是记录错误信息,但将正确的输出结果转换为错误的重定向追加了
2、输入重定向 “<” “<<”
[clh@localhost ~]$ mail -s "test02" root < ~/date #把date文件的内容作为重定向输入邮件,这时候不再提示 写邮件的内容了
[clh@localhost ~]$ mail -s "test03" root <<END #作为结束字符,<<作为结束字符
> hello
> i am clh
> .
> .
> END #输入END 结束 写邮件
[clh@localhost ~]$ mail -s "test04" root << jjj #作为结束字符,<<作为结束字符
> hello
> i am clh
> test
> .
> END
> jjj #输入jjj 结束 写邮件
[clh@localhost ~]$
3、构建管道 “|”
#管道
主要作用: 衔接 / 做两个命令之间的衔接
将命令1的标准输出stdout作为命令2的标准输⼊stdin
[clh@localhost ~]$ ls
123 123.mp3 date_wrong find_true test02 视频 音乐
12345.txt 2341 dd output01 test02.tar 图片 桌面
1234.txt 456 dd01 standard 公共 文档
12356 date find_fail test01 模板 下载
[clh@localhost ~]$ ls | grep "123*"
123
12345.txt
1234.txt
12356
123.mp3
[clh@localhost ~]$ ls | grep "*txt"
[clh@localhost ~]$ ls | grep -E "*txt"
12345.txt
1234.txt
[clh@localhost ~]$ ls -lh | wc -l #查看本地路径⽂件/⽂件夹数量
27
[clh@localhost ~]$ ls -lh | grep -E "^d" | wc -l # 查看本地路径⽂件夹数
10
[clh@localhost ~]$ echo "i am clh,test05" | mail -s "test05" root
[clh@localhost ~]$
[root@localhost ~]#
您在 /var/spool/mail/root 中有新邮件
[root@localhost ~]#