文件系统结构目录


文件系统的概念

  • 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。

  • 文件系统使用文件和树形目录的抽象逻辑概念,用户使用文件系统来保存数据,不必关心数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名即可。

文件系统的分类

  • 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:当前挂载相关的信息