小小白祈祷中...

在 Linux 系统中,目录结构是遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准) 的,每个目录都有特定的用途和功能。以下是 Linux 系统主要目录的详细介绍,它们位于系统的根目录 / 下。


根目录(/

  • 根目录是 Linux 文件系统的起点,所有目录和文件都从这里开始。
  • 根目录本身通常只包含子目录,而不直接存放文件。
  • 注意:确保根目录有足够的空间,因为它的损坏会导致系统无法启动。

主要子目录详解

/bin

  • 作用:存放基本的用户二进制可执行文件。
  • 内容:普通用户和管理员都可以使用的常用命令,例如:
    • lscpmvrmcatechopwdchmod 等。
  • 特点:在单用户模式下也可以使用这些命令,因为它们是系统启动和运行的必要工具。

/sbin

  • 作用:存放系统管理的二进制可执行文件,普通用户一般无权运行。
  • 内容:系统管理员使用的命令,例如:
    • ifconfigrebootshutdownmkfsfsck 等。
  • 特点:与 /bin 类似,但主要用于系统管理。

/boot

  • 作用:存放与系统引导相关的文件。
  • 内容
    • 内核文件(如 vmlinuz)、引导加载程序(如 GRUB 的配置文件)和启动所需的其他文件。
  • 特点:系统启动时,BIOS/UEFI 会访问这个目录加载内核和引导程序。

/dev

  • 作用:存放系统中的设备文件。
  • 内容
    • 所有硬件设备都被抽象为文件存放在这里,例如:
      • 硬盘:/dev/sda/dev/sdb
      • 光驱:/dev/cdrom
      • 终端设备:/dev/tty1
      • 随机数设备:/dev/random
  • 特点:通过这些文件可以直接与硬件交互。

/etc

  • 作用:存放系统的所有配置文件和子目录。
  • 内容
    • 系统配置文件:/etc/passwd/etc/fstab/etc/hosts 等。
    • 服务配置文件:/etc/ssh/sshd_config/etc/nginx/nginx.conf 等。
  • 特点:是系统配置的核心目录,建议备份。

/home

  • 作用:存放普通用户的主目录。
  • 内容
    • 每个用户都有一个对应的子目录,例如:
      • 用户 alice 的主目录是 /home/alice
      • 用户 bob 的主目录是 /home/bob
    • 用户的数据、配置文件等都存放在这里。
  • 特点:如果系统重新安装,可以单独保留 /home,以免丢失用户数据。

/lib

  • 作用:存放系统运行所需的共享库(类似 Windows 的 DLL 文件)。
  • 内容
    • 静态库和动态库文件,例如:
      • libc.so(C 标准库)
      • libm.so(数学库)
  • 特点:这些库供 /bin/sbin 的程序使用。

/media

  • 作用:挂载可移动媒体设备的临时目录。
  • 内容
    • 当插入 U 盘、光盘等设备时,系统会自动将其挂载到 /media 下,例如:
      • /media/usb/media/cdrom
  • 特点:用户可以方便地访问这些设备。

/mnt

  • 作用:挂载临时文件系统的目录。
  • 内容
    • 系统管理员可以手动将设备挂载到这里,例如:
      • mount /dev/sdb1 /mnt/test
  • 特点:与 /media 不同,通常需要手动挂载。

/opt

  • 作用:存放第三方软件的可选目录。
  • 内容
    • 安装的第三方软件或应用程序会存放在这里,例如:
      • /opt/google/chrome(Google Chrome 浏览器)
      • /opt/lampp(XAMPP 软件包)
  • 特点:与系统分离,便于管理。

/proc

  • 作用:存放内核和进程的虚拟文件系统。
  • 内容
    • 虚拟文件,显示系统的运行时信息,例如:
      • /proc/cpuinfo:CPU 信息。
      • /proc/meminfo:内存信息。
      • /proc/<PID>:每个进程的详细信息。
  • 特点:动态生成,不实际占用磁盘空间。

/root

  • 作用:系统管理员(root 用户)的主目录。
  • 特点
    • 类似于普通用户的主目录 /home/username
    • 默认位于 /root 而不是 /home

/run

  • 作用:存放系统启动后临时生成的运行文件。
  • 内容
    • 运行时的进程 ID 文件(如 /run/sshd.pid)。
    • 套接字和其他运行时数据。
  • 特点:数据在系统重启后会清空。

/srv

  • 作用:存放系统提供的服务数据。
  • 内容
    • Web 服务数据:/srv/www
    • FTP 数据:/srv/ftp
  • 特点:用于存放服务器运行时需要的文件。

/sys

  • 作用:存放系统的设备和内核信息。
  • 内容
    • /proc 类似,提供系统硬件信息,例如:
      • /sys/class:设备分类信息。
      • /sys/devices:硬件设备信息。
  • 特点:是内核设备模型的一部分。

/tmp

  • 作用:存放临时文件。
  • 特点
    • 系统和应用程序运行时可能会在这里创建临时文件。
    • 系统重启后会自动清空。

/usr

  • 作用:存放用户程序及相关文件。
  • 内容
    • /usr/bin:用户可执行文件(非必要命令)。
    • /usr/sbin:系统管理员命令。
    • /usr/lib:共享库和模块。
    • /usr/share:共享数据(如文档、图标等)。
    • /usr/local:用户自己安装的软件。
  • 特点:包含许多系统文件和工具,占用空间较大。

/var

  • 作用:存放可变数据文件。
  • 内容
    • 日志文件:/var/log(如 /var/log/syslog)。
    • 邮件:/var/mail
    • 缓存:/var/cache
    • 数据库:/var/lib(如 /var/lib/mysql)。
    • 临时文件:/var/tmp
  • 特点
    • 数据会随着时间增长,例如日志文件。

Linux 目录结构图

以下是 Linux 目录结构的简化图示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/
├── bin # 基本用户命令
├── sbin # 系统管理命令
├── boot # 启动相关文件
├── dev # 设备文件
├── etc # 配置文件
├── home # 用户主目录
├── lib # 基本共享库
├── media # 挂载点(自动)
├── mnt # 挂载点(手动)
├── opt # 第三方软件
├── proc # 内核和进程信息
├── root # root 用户主目录
├── run # 运行时文件
├── srv # 服务数据
├── sys # 系统信息
├── tmp # 临时文件
├── usr # 用户程序
└── var # 可变数据

注意事项

  1. 不要随意修改系统目录

    • /bin/sbin/etc 等目录中的文件是系统运行必需的,修改或删除可能导致系统无法正常工作。
  2. 备份重要目录

    • 例如 /etc(配置文件)、/home(用户数据)、/var/log(日志文件)等。
  3. 挂载分区

    • 推荐将 /home/var 等目录单独分区,以便系统升级或重装时,数据不会丢失。

通过理解 Linux 的目录结构,可以更高效地管理系统资源和定位问题。