Linux主要目录
/ (根目录)
├── bin/ (基本用户命令,如 ls, cp, cat)
├── boot/ (启动相关文件,如内核 vmlinuz, initramfs)
├── dev/ (设备文件,如硬盘 /dev/sda, 终端 /dev/tty)
├── etc/ (系统配置文件,如网络配置, passwd, my.cnf)
│ ├── network/ (网络配置文件)
│ ├── sysconfig/(特定发行版如CentOS的系统配置脚本)
│ └── X11/ (图形界面X Window系统配置)
├── home/ (普通用户的主目录)
│ └── [用户名]/ (例如: /home/zhangsan, /home/lisi)
├── lib/ (系统启动和运行 /bin, /sbin 命令所需的基本共享库)
│ └── modules/ (内核模块)
├── lost+found/ (文件系统发生错误时,恢复的文件片段存放处)
├── media/ (可移动媒体设备的自动挂载点,如U盘, 光驱)
│ └── [设备名]/ (例如: /media/usb_drive)
├── mnt/ (用户临时手动挂载其他文件系统的挂载点)
├── opt/ (可选的、第三方大型独立应用程序包,如Oracle, Chrome)
│ └── [应用名]/ (例如: /opt/google-chrome)
├── proc/ (虚拟文件系统,系统内存的映射,存放进程和内核信息)
├── root/ (超级管理员 root 用户的主目录)
├── run/ (系统自启动以来运行的进程的运行时数据,如PID文件,重启清空)
├── sbin/ (系统管理员使用的系统管理命令,如 ifconfig, reboot)
├── selinux/ (如果启用了SELinux安全子系统,存放其相关文件)
├── srv/ (存放一些服务启动后需要提取的数据,如网站文件 /srv/www)
├── sys/ (虚拟文件系统,管理2.6内核及以后版本的设备和驱动程序)
├── tmp/ (临时文件存放目录,所有用户可写,通常重启后清空)
├── usr/ ("Unix System Resources" - Unix系统资源,非常重要)
│ ├── bin/ (大多数用户应用程序命令)
│ ├── include/ (C/C++ 等语言的头文件)
│ ├── lib/ (/usr/bin 和 /usr/sbin 中程序所需的共享库)
│ ├── local/ (用户自行编译安装软件的存放目录)
│ │ ├── bin/ (本地安装的命令)
│ │ ├── etc/ (本地安装的配置)
│ │ ├── lib/ (本地安装的库)
│ │ ├── sbin/ (本地安装的系统命令)
│ │ └── share/ (本地安装的共享数据)
│ ├── sbin/ (非必要的系统管理命令)
│ ├── share/ (体系结构无关的共享数据,如文档 man, 图标)
│ └── src/ (源代码,如内核源码)
└── var/ (存放经常变化的文件,"Variable")├── cache/ (应用程序的缓存数据)├── lib/ (应用程序状态信息,如数据库文件)├── lock/ (锁文件)├── log/ (各种系统和应用的日志文件,如 messages, secure)├── mail/ (用户邮箱文件)├── run/ (通常是指向 /run 的符号链接)├── spool/ (应用程序的队列数据,如打印队列, 邮件队列)└── tmp/ (比 /tmp 更持久的临时文件,重启后通常不会清空)
核心与启动相关
/ (Root - 根目录)
-
说明: 所有文件和目录的起点,整个文件系统的顶级目录。
/bin (User Binaries - 用户二进制文件)
-
全拼: Binaries
-
说明: 包含所有用户(包括普通用户和超级用户)都可以执行的基本命令,如 ls, cp, cat 等。这些命令在系统启动或单用户模式下也需要用到。
-
相关: /usr/bin (存放多数用户应用程序), /usr/local/bin (用户自行安装的程序)。
/sbin (System Binaries - 系统二进制文件)
-
全拼: System Binaries (或 Superuser Binaries)
-
说明: 存放只有系统管理员(root用户)才能执行的系统管理命令,用于系统维护,如 ifconfig, reboot, fdisk 等。这些命令对于系统的启动、修复、恢复至关重要。
-
相关: /usr/sbin (存放非必要的系统管理程序), /usr/local/sbin (管理员自行安装的系统管理程序)。
/lib (Libraries - 库文件)
-
全拼: Libraries
-
说明: 存放系统启动和在根目录下运行 /bin 和 /sbin 中的命令所必需的共享库文件和内核模块。其作用类似于Windows里的DLL文件。
-
相关: /usr/lib, /usr/local/lib。根据系统架构(32位/64位),也可能有 lib32 或 lib64 目录。
/boot (Boot Loader Files - 启动加载器文件) [常用]
-
说明: 包含Linux系统启动时所需的核心文件,如Linux内核(vmlinuz)、初始化RAM磁盘镜像(initrd.img 或 initramfs.img)以及引导加载程序(如GRUB)的配置文件。
/etc (Etcetera - 配置文件) [常用]
-
全拼: Etcetera (常被理解为 "Editable Text Configurations")
-
说明: 存放所有系统级别和应用程序的配置文件。例如,网络配置、用户账户信息 (passwd, shadow)、启动脚本、服务配置文件(如MySQL的 my.cnf)等。
用户与家目录
/home (Home Directories - 用户家目录) [常用]
-
说明: 存放普通用户的主目录。在Linux中,每个普通用户都有一个以其用户名命名的个人目录(如 /home/john, /home/alice),用于存储个人文件、配置和数据。
/root (Root User's Home Directory - root用户家目录) [常用]
-
说明: 系统管理员(root用户或超级用户)的家目录。与普通用户的家目录分开存放,以增强系统安全性。
系统与设备
/dev (Device Files - 设备文件)
-
全拼: Devices
-
说明: 包含所有设备的特殊文件(设备节点)。在Linux中,硬件设备(如硬盘、光驱、终端、打印机)都以文件的形式表示,应用程序通过读写这些文件来与硬件交互。类似于Windows的设备管理器,但以文件形式展现。
/proc (Process Information - 进程信息) [不能动]
-
全拼: Processes
-
说明: 这是一个虚拟文件系统,不实际占用磁盘空间。它是系统内存中内核数据结构的一个映射,提供了关于系统进程、硬件状态(如CPU信息、内存使用)的实时信息。可以通过访问这个目录下的文件来获取系统运行状态。
/sys (System Filesystem - 系统文件系统) [不能动]
-
全拼: System
-
说明: 这是一个基于Linux 2.6及以后内核的虚拟文件系统(sysfs),用于将内核中关于设备、驱动程序和总线的信息导出到用户空间。它比 /proc 提供了更结构化的设备信息。
/lost+found (Lost and Found - 丢失找回)
-
说明: 这个目录通常在每个分区的根目录下存在。当系统因意外(如非法关机、文件系统错误)导致文件损坏时,fsck (filesystem check) 程序会尝试恢复损坏的文件片段,并将它们存放在这个目录中。正常情况下此目录为空。
应用程序与可变数据
/usr (Unix System Resources - Unix系统资源) [常用]
-
全拼: Unix System Resources (历史上是 User System Resources)
-
说明: 这是一个非常重要的目录,包含了大部分用户安装的应用程序、库文件、文档和源代码。它不是"用户"(user)的家目录,而是"系统资源"。可以类比为Windows下的 C:\Program Files 和 C:\Windows\System32 (部分功能)。
-
/usr/bin: 大部分用户命令。
-
/usr/sbin: 非必要的系统管理命令。
-
/usr/lib: 应用程序和 /usr/bin, /usr/sbin 中命令所需的库文件。
-
/usr/local: 本地管理员安装软件的层级结构,见下文。
-
/usr/share: 体系结构无关的共享数据,如文档 (man 页面)、图标、字体。
-
/usr/src: 内核源代码等。
-
/usr/local (Local Hierarchy - 本地层级) [常用]
-
说明: 用于本地管理员安装软件。当你从源代码编译安装软件,或者安装不属于发行版官方仓库的软件时,通常会安装到这里。这样做的好处是,它将本地安装的软件与系统通过包管理器安装的软件分离开,便于管理和避免冲突。其下通常也有 bin, lib, share 等子目录。
/opt (Optional Application Software Packages - 可选应用软件包) [常用]
-
全拼: Optional
-
说明: 用于存放可选的、第三方独立的、通常是商业的应用程序软件包。这些软件包通常是自包含的,不遵循标准的Linux目录结构,而是将其所有文件安装在一个子目录中(例如 /opt/google-chrome/ 或 /opt/oracle_database/)。这使得安装、升级和卸载这些大型或专有应用更加容易。
/usr vs /usr/local vs /opt 的区别澄清:
-
/usr: 主要由操作系统的包管理器(如 apt, yum)管理。包含操作系统发行版提供的核心工具和应用程序。你不应该手动在此处放置文件。
-
/usr/local: 主要由系统管理员手动管理。用于安装那些不由发行版包管理器提供的软件,例如从源代码编译的程序。这可以防止系统升级时覆盖你手动安装的软件。
-
/opt: 主要用于安装大型的、独立的、第三方商业或闭源软件包。这些包通常有自己的安装和更新机制,并倾向于将所有文件放在一个目录下,以便于管理和隔离。
/var (Variable Files - 可变文件) [常用]
-
全拼: Variable
-
说明: 存放系统运行过程中内容会经常发生变化的文件。
-
/var/log: 系统日志文件。
-
/var/spool: 队列数据,如邮件、打印任务。
-
/var/cache: 应用程序缓存数据。
-
/var/lib: 状态信息,如数据库文件。
-
/var/tmp: 比 /tmp 更持久的临时文件,重启后通常不清除。
-
临时与挂载点
/tmp (Temporary Files - 临时文件)
-
全拼: Temporary
-
说明: 存放应用程序和用户创建的临时文件。所有用户都有写权限,通常在系统重启时会清空。
/mnt (Mount Point - 挂载点) [常用]
-
全拼: Mount
-
说明: 一个通用的、临时的挂载点,供系统管理员手动挂载文件系统(如其他硬盘分区、网络共享等)。例如,可以将一个外部存储设备临时挂载到 /mnt/mydrive。
/media (Removable Media Devices - 可移动媒体设备) [常用]
-
说明: 现代Linux系统通常使用此目录作为可移动媒体(如U盘、SD卡、CD/DVD驱动器)的自动挂载点。当插入这些设备时,系统会自动在 /media 下创建一个子目录(如 /media/usb_drive_name)并将设备挂载到那里。
服务与安全
/srv (Service Data - 服务数据) [某些系统可能不常用或不强调]
-
全拼: Service
-
说明: 存放一些服务(如HTTP、FTP)启动后需要提取的数据。例如,网站文件可以放在 /srv/www。其使用不如其他目录普遍,有些系统可能不怎么用这个目录。
/selinux (Security-Enhanced Linux)
-
说明: 如果系统启用了SELinux(一种Linux内核安全模块,提供强制访问控制机制),这个目录(通常是一个虚拟文件系统接口)会包含与SELinux策略和状态相关的文件。它能控制程序只能访问特定文件,有三种工作模式。