Linux文件系统
1、简介
在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。
也就是说,在LINUX系统中有一个重要的概念:一切都是文件。
其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。
2、文件类型
1)普通文件(regular file)
2)纯文本文件(ASCII)
3)二进制文件(binary)
Linux中的可执行文件(scripts、批处理文件不算),如cat等命令
4)数据格式文件(data)
如:/var/log/wtmp文件(该文件用于记录用户在登录时的登录数据),此文件可以使用last命令查看,使用cat命令查看则会出现乱码,因为此文件是一个特殊的文件
5)目录(directory)
第一个属性为[d]
6)链接文件(link)
像windows的快捷方式,第一个属性为小写英文l
7)设备与设备文件(device)
与系统外设及存储相关的一些文件,通常集中在/dev目录下,一般分为两种:
7.1)块设备文件
就是一些存储数据,以提供系统随机访问的接口设备,例如硬盘、软盘等。你可以随机地在硬盘的不同块读写,这种设备就是成组设备,你可以自行查一下/dev/sda看看,会发现第一个属性为[b]
7.2)字符设备文件
也即是一些串行端口的接口设备,例如键盘、鼠标等。这些设备的特征就是“一次性读取”的,不能够截断输出。举例来说,你不可能让鼠标“跳到”另外一个界面,而是“滑动”到另一个地方。其第一个属性为[c]
8)套接字(sockets)
这类型的文件通常被用在网络上的数据连接,被称为数据接口文件。其第一个属性为[s]。通常在/var/run这个目录中可看到这种文件类型。
9)管道(FIFO,pipe)
也是一种特殊的文件类型,它主要的目的在解决多个程序同时访问一个文件夹所造成的错误问题。FIFO是first-in-first-out的缩写。第一个属性为[p]
注:
- sockets与FIFO文件与进程(process)有关;
- link文件类似windows的快捷方式,可以简单理解为一个文件或目录的快捷方式;
- 设备文件是系统中很重要的文件,用户最好不要随意修改(Linux系统一般也不会让你修改)
3、扩展名
在Linux系统中,基本上没有“扩展名”的概念,判断一个文件是否能执行,是看文件是否有“x”属性。但为了加以区分,还是存在一些有特殊意义的扩展名,如:
- sh:脚本或批处理文件
- Z、tar、tar.gz、zip、tgz:压缩文件
- ….
4、常见的目录
一切从**“/”**开始。在Windows系统中,会把硬盘划分为C、D、E、F等盘。而在类Unix系统中不存在这些,一切的文件都是从“根(/)”目录开始并按照文件系统目录标准FHS采用树形结构来存放文件并定义了每个区域的用途。如下所示:
[zing@zing-PC ~]$ tree -L 1 /
/
├── bin :二进制命令(如:ls、mkdir),一般用于所有用户,单用户维护模式下还能够被操作
├── boot :开机所需文件——内核,开机菜单及所需配置文件等
├── dev :任何设备与接口都以文件形式存放在此目录
├── etc :配置文件
├── home :用户主目录
├── lib :开机时需要的函数库及/bin与/sbin下面命令要调用的函数
├── lib64 :库文件存放目录
├── lost+found :当文件系统发生错误时,将一些丢失的文件片段存放在这里
├── media :一般挂载或删除的设备
├── mnt :系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
├── opt :放置第三方的软件
├── proc :虚拟文件系统,例如系统内核,进程,外部设备及网络状态等信息
├── root :系统管理员的主文件夹
├── sbin :系统的二进制命令,一般用于系统管理员。开机过程中需要的
├── selinux :Security-Enhanced Linux
├── srv :一些网络服务的数据目录
├── sys :提供了一种比proc更为理想的访问内核数据的途径
├── tmp :任何人均可使用的“共享”临时目录
├── usr : 用于存放系统应用程序(用户程序),及数据、帮助文件、二进制命令等的目录
├── var :主要存放经常变化的文件,如日志、cache。
└── xx :
