前言
标准输入输出设备文件
一、几种特殊的设备文件
字符设备
- 是指每次与系统传输1个字符的设备,字符设备在实现时,大多不使用缓存器。
- 例如,键盘是一个字符设备。
块设备
- 是指与系统间用块的方式移动数据的设备,这些设备节点通常代表可寻址设备。
- 如硬盘、CD-ROM就是块设备。
伪设备
- 是指没有对应物理设备的设备,操作系统运用它们提供多种功能。
- 经常使用到的伪设备包括:见下
二、伪设备
(1)标准输入输出设备
执行shell命令时通常会自动打开三个标准文件:
- 标准输入文件stdin
- 标准输出文件stdout
- 标准错误输出文件stderr
- 进程从标准输入文件中得到输入数据,将正确输出数据输出到标准输出文件,将错误信息送到标准错误文件。
- 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2。
(2)dev/null设备
- 这是一个空设备,丢弃一切写入其中的数据。
- 空设备通常被用于丢弃不需要的输出流。
1>/dev/null 2>&1
例子
$ shell命令 1>/dev/null 2>&1
解释:
- 1>/dev/null:首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
- 2>&1:接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
(3)dev/zero设备
- 这是一个特殊的文件,当读它的时候,它会提供无限的空字符。
- 一个典型用法是用它提供的字符流来覆盖数据。
- 另一个常见用法是产生一个特定大小的空白文件。
总结
伪设备的挂载