UNIX及Linux,识别2类设备:随机存取的块设备(如磁盘)和字符设备(如磁带和串行线), 有些是串行的,有些是随机存取的。文件系统支持的每种看来是个设备文件。 当读写设备文件时,数据与设备联系。这样没有必要为存取设备编制特别的程序(程序不直接获取中断或读取串口), 例如,发送文件到打印机,只需:
文件内容就被打印了(当然,文件必须是打印机能理解的格式)。当然,因为不应该让多人同时cat文件到同一打印机, 一般用特定的程序发送文件去打印(通常是lpr )。 这个程序能确保同时只有一个文件被打印,并自动在完成后发送下一个。多数设备有类似需要。实际上, 根本很少需要关心设备文件。$
cat filename > /dev/lp1
$
因为设备被视为文件系统中的文件(在/dev 目录中),很容易看到存在哪些设备文件, 使用ls 或其他的适当的命令即可。 在ls -l 的输出中,第一列包含文件类型和权限。例如,查看我系统上的一个串行设备:
第一列第一个字符,即crw-rw-rw-中的c告诉用户文件的种类,这是一个字符设备。 一般文件的第一个字符是"-",目录是"d",块设备是"b"; 更多的信息见ls man页。$
ls -l /dev/cua0
crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0
$
注意即使设备没有安装,一般所有设备文件都存在。因此有/dev/sda 文件 并不意味着你真的有个SCSI硬盘。有所有的设备文件使安装程序更简单,也易于增加新硬件(无须再为产生新设备的设备文件找出正确的参数)。