# 文件系统结构目录
## 文件系统的概念 - 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。 - 文件系统使用文件和树形目录的抽象逻辑概念,用户使用文件系统来保存数据,不必关心数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名即可。 ## 文件系统的分类 - ext2:早期的linux中常用的文件系统。 - ext3:ext2的升级版,带日志功能。 - ext4:基于磁盘(存放根目录分区)。 - NFS:网络文件系统,由SUN发明,主要用于远程文件共享。 - NTFS:Windows NT/XP 操作系统采用的文件系统。
- XFS:由SGI开发的先进的日志文件系统,支持超大容量文件。 - ISO9660:大部分光盘所采用的的文件系统。 - SMBFS:Samba服务的共享文件系统。 - tmpfs:临时文件系统(内存文件系统)。 ## 文件系统的目录结构 在linux系统中,所有内容都是以文件的形式保存和管理的,即**一切皆文件**。普通文件是文件,目录时文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,套接字(socket)、网络通信等资源也是文件。
linx只有一个根目录,而且文件和目录呗组织成一个单根倒置树结构,此结构最上层是根目录,用`/`表示
根文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4)
**有几个特性:** - 文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL - 以`.`开头的文件为隐藏文件 - 路径的分割用`/`表示 - 文件名最长255个字节 - 包括路径在内文件名称最长4095个字节 ### `tree`命令查看目录结构 ``` [root@lwz1 ~]# yum install tree -y # 下载tree命令 [root@lwz1 ~]# tree -L 1 / # 由于/目录下的结构太多了不方便展示,这里只显示一层目录结构做展示。 / ├── bin -> usr/bin ├── boot ├── dev ├── etc ├── home ├── lib -> usr/lib ├── lib64 -> usr/lib64 ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin -> usr/sbin ├── srv ├── sys ├── tmp ├── usr └── var 20 directories, 0 files ``` tree命令选项: - `-a`:显示所有文件,包括隐藏文件 - `-d`:只显示目录 - `-f`:显示每个文件的绝对路径 - `-i`:不显示树枝,常与`-f`配合使用 - `-L`:level遍历目录的最大层数,level为大于0的正整数 ### 目录作用说明 - `/bin`:`/bin -> /usr/bin`(软链接指向/usr/bin),bin是Binaries(二进制文件)的缩写,这个目录存放着一些常用命令。 - `/sbin`:`/sbin -> /usr/sbin`(软链接指向/usr/sbin),其中的s是super user,这里存放的是系统管理员root使用的命令。 - `boot`:这里存放的是启动linux系统时使用的一些核心文件,包括一些连接文件以及镜像文件。 - `/dev`:(Device)设备,存放linux的外部设备,用于与硬件设备进行交互。 - `/etc`:(Etcetera),配置文件。 - `/home`:用户的家目录。 - `/lib`、`/lib64`:(Library)库,共享库文件,包含供可执行文件使用的共享库。 - 执行`ldd /bin/ls`命令可查看ls命令依赖的库文件。 - `/media`:用于挂载可移动介质(如光盘、USB驱动器)的默认挂载点。 - `/mnt`:临时挂载点。 - `/opt`:可选软件包的安装目录。 - `/proc`:虚拟文件系统,提供有关系统内核和进程的信息。 - `/root`:root用户的主目录。 - `/run`:在系统引导过程中创建的运行时文件和数据。 - `/srv`:存放服务相关的数据目录。 - `/sys`:包含与内核相关的文件,用于与内核进行交互。 - `/tmp`:临时文件目录,用于存放临时文件。 - `/usr`:用户应用程序和文件的根目录,类似windows的`C:\Windows` - `/usr/local`:类似于`C:\Program` - `/usr/bin`:普通用户使用的应用程序。 - `/usr/sbin`:管理员使用的应用程序。 - `/var`:数据文件、日志文件、缓存文件等经常变动的文件存放目录。 - mysql:`/var/lib/mysql` - vsftpd:`/var/ftp` - mail:`/var/spool/mail` - cron:`/var/spool/cron` - log:`/var/log` - 临时文件:`/var/tmp`(主要是程序产生的临时文件) - `/lost+found`:当系统非法关机后,这里就存放了一些文件。 - `/etc/selinux`:Selinux是一个安全机制,比较复杂,类似于windows的防火墙,这个目录存放selinux相关的文件。 ### 重要目录 - `/etc/resolv.conf`:linux系统DNS客户端配置文件,DNS(Domain Name System)在网站的运行中起到了至关重要的作用,其主要负责将网站域名解析为对应的IP地址。 - `/etc/hostname`:主机名配置文件, `hostnamectl set-hostname 主机名`这个命令会直接修改配置文件,重启后生效 - `/etc/hosts`:设定用户IP与名字(或域名)的对应解析表,相当于本地(局域网内)的DNS解析文件 ,类似于`C:\WINDOWS\system32\drivers\etc\hosts`文件 - `/etc/fstab`:配置开机设备自动挂载的文件 - `/etc/inittab`:系统启动时设定运行级别等配置的文件 - `/etc/profile`及`/etc/bashrc`:配置系统的环境变量/别名等的文件 - `/etc/profile.d`:用户登录后执行的脚本所在的目录 - `/etc/init.d`:软件启动程序所在的目录(centos7之前),centos7之后这个目录已经不用了。 - `/etc/motd`:配置用户登录系统之后显示提示内容的文件 - `/etc/redhat-release`:查看Red Hat版本号和名称信息的文件 - `/etc/sysctl.conf`:Linux内核参数设置文件 - `/var/log`:记录系统及软件运行信息文件所在的目录 - `/var/log/secure`:用户登录信息日志文件 - `/var/log/dmesg`:记录硬件信息加载情况的日志文件 - `/proc/cpuinfo`:当前cpu相关的信息 - `/proc/meminfo`:当前内存信息 - `/proc/loadavg`:当前平均负载相关的信息 - `/proc/mounts`:当前挂载相关的信息