Unix/Linux对数据文件(.mp3、.bmp),程序文件(.c、.h、*.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。 Linux下一切皆文件。
在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Unix/Linux系统中文件可以没有扩展名。
2.文件类型分类通常,Unix/Linux系统中常用的文件类型有7种:普通文件、目录文件、设备文件、管道文件、链接文件和套接字。
1)普通文件
普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。
在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型。
2)目录文件
Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。
每个目录文件至少包括两个条目,“…”表示上一级目录,“.”表示该目录本身。
3)设备文件
Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。
字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。
deng@itcast:~/share$ echo “hello world” > /dev/pts/22 hello world
4)管道文件
管道文件也是Unix/Linux中较特殊的文件类型,这类文件多用于进程间的通信。
5)链接文件
似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。
示例: 普通文件 deng@itcast:~/test$ ls -l /etc/passwd -rw-r--r-- 1 root root 2372 3月 21 22:48 /etc/passwd 目录文件 deng@itcast:~/test$ ls -ld /etc drwxr-xr-x 134 root root 12288 5月 28 11:28 /etc 字符设备 deng@itcast:~/test$ ls -l /dev/input/mouse0 crw-rw---- 1 root input 13, 32 5月 26 17:01 /dev/input/mouse0 块设备 deng@itcast:~/test$ ls -l /dev/sda1 brw-rw---- 1 root disk 8, 1 5月 26 17:01 /dev/sda1 创建一个管道文件 deng@itcast:~/test$ mkfifo fifo deng@itcast:~/test$ ls -l fifo prw-rw-r-- 1 deng deng 0 5月 28 11:59 fifo 符号链接 deng@itcast:~/test$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 11月 17 2017 /bin/sh -> dash deng@itcast:~/test$ 套接字文件 deng@itcast:~/tmp/test$ ls -l /run/systemd/notify srwxrwxrwx 1 root root 0 8月 8 11:00 /run/systemd/notify



