linux 系统目录结构


Linux 系统 2023/2/4

# 目录结构层次

  • /
    • home
    • root
    • bin
    • sbin
    • usr
      • bin
      • sbin
      • lib
      • local
      • share
    • opt
    • boot
    • dev
    • etc
      • sysconfig
    • proc
    • lib
      • modules
    • var
      • lib
      • local
      • log
      • tmp
      • cache
      • lock
      • mail
      • run
      • spool
    • tmp

# /

系统根目录, 一般只存放目录,/etc /bin /dev /lib /sbin 等目录应该和根目录放置在一个分区中。

# /home

用户的主目录,一般该目录名是以用户的账号命名的。

# /root

系统管理员(root)的主目录。

# /bin, /usr/bin

可执行二进制文件的目录,包含系统管理员和用户都可以使用的命令 ls tar mv cat 等。

/bin/usr/bin 区别, /bin 是所有用户都可以访问并执行的可执行程序, /usr/bin 是后期安装的一些软件的可执行程序。

# /sbin, /usr/sbin, /usr/local/sbin

/sbin 用于放置系统管理员使用的可执行命令,包括启动、恢复或修复系统所必需的二进制文件,例如: fdisk reboot fsck ifconfig shutdown 等。

系统管理员使用的所有非必需二进制文件通常放在 /usr/sbin 中,本地安装的系统管理程序应该放在 /usr/local/sbin 中。

# /usr

/usr (unix software resource), 里面存放的数据属于可共享(shareable)的和不可变动的(static),所有系统默认的软件(distribution 发布者提供的软件)都会放置到 /usr 下。

/usr/bin 存放后期安装的一些软件的可执行程序。

/usr/sbin 非系统正常运行所需要的二进制可执行程序文件。如某些朋务器软件的服务指令 daemon

/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。

/usr/local 存放系统管理员在本机自行安装自己下载的软件(非 distribution 默认提供的),建议安装到此目录,这样会比较便于管理。

/usr/share 存放共享数据,如 /usr/share/doc 系统说明文件存放目录 /usr/share/man 程序说明文件存放目录。

# /opt

用于存放第三方软件安装程序的目录。例如自行安装额外的软件(非distribution提供的)可以安装到这里来。 不过,以前的 linux 系统中,我们还是习惯安装在/usr/local目录下。

# /boot

放置 linux 系统启动时用到的一些文件。如 /boot/vmlinuz 为 linux 的内核文件。

# /dev

存放 linux 系统下的设备与特殊文件,任何装置与接口设备都是以档案的形式存在于这个目录当中的。

你只要通过存取这个目录下的某个档案,就等二存取某个装置, 例如下面的档案有/dev/null, /dev/zero, /dev/tty等。

# /etc

系统主要的配置文件存放该目录,如用户的账号密码文件。

一般来说,该目录下的文件是可以让一般使用者查阅的,但是只有 root 有权力修改。

FHS建议不要将可执行文件(binary)放在这个目录中,重要的配置文件有 /etc/inittab /etc/fstab /etc/init.d /etc/sysconfig 等。

# /proc

该目录本身是一个“虚拟文件系统(virtual filesystem)”,目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo /proc/interrupts /proc/dma /proc/ioports /proc/net 等。

# /lib, /usr/lib, /usr/local/lib

系统使用的函数库的目录。

/lib 存放的是在开机时会用到的函数库,以及在/bin/sbin下的指令会调用的函数库。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模块(驱劢程序)。

/usr/lib 包含各应用软件的函数库、目标档案,以及不被一般使用者惯用的脚本。 某些软件会提供一些特殊的指令来进行服务器的设置,这些指令也不会常被系统管理员使用, 那就会被放到这个目录下, 如果你使用的是64位的Linux系统,那可能会有/usr/lib64/目录出现。

/usr/local/lib 存放系统管理员在本机下载安装第三方软件的函数库。

# /var

存放系统执行过程中经常变化的文件,包括 spool 目录和文件、日志数据,以及临时文件等。

/var/lib 存放系统正常运行时要改变的文件。 程序本身执行的过程中要使用到的数据文件放置的目录,在此目录下各自的软件应该要有各自的目录。 例如,MySQL的数据库放置到 /var/lib/mysql/ 而 rpm 的数据库则放到 /var/lib/rpm 中。

/var/local 存放 /usr/local 中安装程序的可变数据(即系统管理员安装的程序)。

/var/log 此目录包含各种日志文件,大多数日志应该写到这个目录或适当的子目录,里面比较重要的文件如 /var/log/messages (纪录所有核心和系统程序信息) /var/log/wtmp (记录登录和注销的信息)等。

/var/tmp 用于存放临时文件或系统重新引导之间保留的目录,与 /tmp 比较允许更大或需要存在较长时间的临时文件。

/var/cache 应用程序运行过程中的一些缓存数据。

/var/lock 文件锁,某些装置或文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。

/var/mail 邮件存放的目录,不过这个目录也被放置到 /var/spool/mail/中,通常这两个目录是互为链接文件。

/var/run 存储运行时变化数据,程序或服务启动后,其 PID 存放在该目录下。

/var/spool 包含正在等待某种后续处理的数据,通常这些数据被使用后都会被删除。

# /tmp

用于存放各种临时文件,公用的临时文件存储点。



参考: http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html 《鸟哥的Linux私房菜》