Man page - file-hierarchy(7)
Packages contas this manual
- systemd-ask-password-wall.path(8)
- journald@.conf(5)
- systemd-rfkill.service(8)
- systemd-pcrlock-secureboot-authority.service(8)
- org.freedesktop.locale1(5)
- systemd-journald-audit.socket(8)
- bootup(7)
- systemd-hostnamed(8)
- system.conf.d(5)
- os-release(5)
- systemd.exec(5)
- networkd.conf(5)
- systemd-hibernate-resume-generator(8)
- systemd-timedated.service(8)
- networkctl(1)
- systemd-fsck@.service(8)
- systemd-tmpfiles(8)
- systemd-inhibit(1)
- systemd.net-naming-scheme(7)
- systemd-tmpfiles-clean.timer(8)
- systemd-ssh-proxy(1)
- systemd-user-sessions(8)
- logind.conf(5)
- org.freedesktop.network1(5)
- systemd-networkd-wait-online.service(8)
- systemd.kill(5)
- systemd.time(7)
- systemd-ask-password(1)
- systemd.journal-fields(7)
- systemd-socket-proxyd(8)
- pstore.conf.d(5)
- systemd-networkd.service(8)
- systemd-pcrlock-firmware-code.service(8)
- systemd-storagetm.service(8)
- systemd-growfs-root.service(8)
- systemd-ask-password-wall.service(8)
- systemd-creds(1)
- systemd-remount-fs.service(8)
- journald.conf(5)
- systemd-confext.service(8)
- systemd-tty-ask-password-agent(1)
- systemd-binfmt(8)
- systemd-pcrlock-make-policy.service(8)
- systemd-timedated(8)
- systemd-journald.service(8)
- systemd-pcrlock-file-system.service(8)
- pam_systemd_loadkey(8)
- systemd-gpt-auto-generator(8)
- daemon(7)
- systemd-tpm2-setup(8)
- hostnamectl(1)
- systemd-sleep(8)
- systemd-pcrmachine.service(8)
- systemd-bsod.service(8)
- systemd.unit(5)
- systemd-sysctl.service(8)
- systemd-pstore(8)
- binfmt.d(5)
- systemd-network-generator(8)
- systemd-poweroff.service(8)
- systemd-umount(1)
- systemd-tpm2-generator(8)
- systemd-rfkill.socket(8)
- systemd-localed.service(8)
- systemd.path(5)
- systemd-cgls(1)
- journald.conf.d(5)
- systemd-journald@.service(8)
- systemd-sysusers.service(8)
- systemd-user.conf(5)
- systemd-pcrfs@.service(8)
- systemd-measure(1)
- systemd.offline-updates(7)
- systemd-logind(8)
- systemd-machine-id-setup(1)
- systemd-volatile-root.service(8)
- systemd.service(5)
- user@.service(5)
- systemd.target(5)
- systemd-udev-settle.service(8)
- systemd-fsck(8)
- systemd-fsck-usr.service(8)
- user-runtime-dir@.service(5)
- systemd-user-runtime-dir(5)
- systemd-binfmt.service(8)
- systemd-initctl.socket(8)
- systemd-fsck-root.service(8)
- systemd-debug-generator(8)
- file-hierarchy(7)
- systemd-networkd-wait-online(8)
- systemd-volatile-root(8)
- systemd-reboot.service(8)
- systemd-hostnamed.service(8)
- networkd.conf.d(5)
- initrd-release(5)
- systemd.index(7)
- systemd-shutdown(8)
- systemd-update-done.service(8)
- systemd-system-update-generator(8)
- localectl(1)
- systemd.v(7)
- systemd-pcrfs-root.service(8)
- systemd.image-policy(7)
- systemd-backlight@.service(8)
- systemd-battery-check(8)
- systemd-rc-local-generator(8)
- systemd-sysctl(8)
- systemd-kexec.service(8)
- extension-release(5)
- systemd-journald.socket(8)
- systemd-random-seed.service(8)
- systemd-tmpfiles-setup-dev-early.service(8)
- systemd-modules-load(8)
- systemd.network(5)
- systemd-getty-generator(8)
- systemd-storagetm(8)
- systemd.generator(7)
- systemd.special(7)
- systemd-tmpfiles-setup-dev.service(8)
- systemd-notify(1)
- systemd-suspend.service(8)
- localtime(5)
- systemd-journald-varlink@.socket(8)
- systemd-pcrphase.service(8)
- systemd-quotacheck.service(8)
- systemd-pcrlock-firmware-config.service(8)
- systemd-journald@.socket(8)
- systemd-halt.service(8)
- systemd-sysext.service(8)
- systemd-delta(1)
- 30-systemd-environment-d-generator(8)
- systemd-ask-password-console.service(8)
- systemd-confext(8)
- systemd-initctl.service(8)
- iocost.conf(5)
- systemd-logind.service(8)
- systemd-mkswap@.service(8)
- hostname(5)
- busctl(1)
- org.freedesktop.portable1(5)
- systemd-localed(8)
- systemd-id128(1)
- systemd-sleep.conf(5)
- systemd.environment-generator(7)
- systemd-growfs(8)
- systemd(1)
- systemd.device(5)
- systemd-firstboot(1)
- systemd-hibernate-clear.service(8)
- systemd.swap(5)
- tmpfiles.d(5)
- systemd-cat(1)
- systemd-random-seed(8)
- locale.conf(5)
- systemd-detect-virt(1)
- systemd-sysext(8)
- systemd.scope(5)
- systemd-growfs@.service(8)
- systemd-fstab-generator(8)
- systemd-escape(1)
- systemd-network-generator.service(8)
- systemd-tmpfiles-setup.service(8)
- systemd-tmpfiles-clean.service(8)
- sleep.conf.d(5)
- systemd-boot-check-no-failures(8)
- org.freedesktop.systemd1(5)
- systemd-suspend-then-hibernate.service(8)
- run0(1)
- systemd-mount(1)
- systemd.slice(5)
- systemd-user-sessions.service(8)
- systemd-makefs@.service(8)
- journalctl(1)
- systemd-makefs(8)
- systemd-stdio-bridge(1)
- systemd-ssh-generator(8)
- systemd-update-done(8)
- systemd-xdg-autostart-generator(8)
- systemd-soft-reboot.service(8)
- systemctl(1)
- org.freedesktop.machine1(5)
- systemd.timer(5)
- systemd-journald(8)
- systemd-bsod(8)
- systemd-tpm2-setup-early.service(8)
- systemd-hybrid-sleep.service(8)
- systemd-analyze(1)
- smbios-type-11(7)
- systemd-environment-d-generator(8)
- systemd-networkd-wait-online@.service(8)
- org.freedesktop.login1(5)
- systemd-rfkill(8)
- timedatectl(1)
- systemd-hibernate-resume(8)
- systemd-sysv-generator(8)
- kernel-install(8)
- systemd-sysusers(8)
- systemd.netdev(5)
- systemd-journald-dev-log.socket(8)
- systemd-vpick(1)
- machine-id(5)
- systemd-pcrphase-initrd.service(8)
- systemd.mount(5)
- systemd-remount-fs(8)
- systemd.socket(5)
- sysusers.d(5)
- systemd.directives(7)
- rc-local.service(8)
- systemd-run-generator(8)
- systemd-battery-check.service(8)
- systemd-pstore.service(8)
- capsule@.service(5)
- logind.conf.d(5)
- systemd-pcrlock-secureboot-policy.service(8)
- environment.d(5)
- systemd-pcrphase-sysinit.service(8)
- org.freedesktop.hostname1(5)
- modules-load.d(5)
- systemd.automount(5)
- systemd-firstboot.service(1)
- systemd-boot-check-no-failures.service(8)
- loginctl(1)
- systemd.syntax(7)
- systemd-initctl(8)
- kernel-command-line(7)
- systemd.preset(5)
- systemd-pcrlock-machine-id.service(8)
- systemd-run(1)
- systemd-system.conf(5)
- systemd-machine-id-commit.service(8)
- user.conf.d(5)
- systemd.system-credentials(7)
- pstore.conf(5)
- systemd-cgtop(1)
- sysctl.d(5)
- systemd-tpm2-setup.service(8)
- systemd-pcrextend(8)
- systemd-modules-load.service(8)
- systemd.pcrlock.d(5)
- systemd-networkd(8)
- systemd-socket-activate(1)
- systemd-path(1)
- systemd-backlight(8)
- org.freedesktop.timedate1(5)
- systemd-quotacheck(8)
- systemd.resource-control(5)
- systemd-ask-password-console.path(8)
- varlinkctl(1)
- systemd-ac-power(1)
- systemd-hibernate-resume.service(8)
- systemd.pcrlock(5)
- machine-info(5)
- systemd-hibernate.service(8)
- systemd-pcrlock(8)
apt-get install systemd
Available languages:
en zh_TW zh_CN deManual
| FILE-HIERARCHY(7) | file-hierarchy | FILE-HIERARCHY(7) |
NAME
file-hierarchy - 文件系统层次结构概览
描述
对于使用 systemd(1) 的操作系统来说, 其文件系统层次结构遵守 File System Hierarchy[1] 与 hier(7) 规范。 本手册仅描述一个符合上述规范的子集, 该子集较小也较现代, 并且更加严格的遵守上述规范。
许多本文所描述的路径都可以通过 systemd-path(1) 工具来查询。
总体结构
/
/boot
/etc
/home
/root
/srv
/tmp
运行时数据
/run
/run/log
/run/user
发行商提供的操作系统资源
/usr
/usr/bin
/usr/include
/usr/lib
/usr/lib/arch-id
# systemd-path system-library-arch
/usr/share
/usr/share/doc
/usr/share/factory/etc
/usr/share/factory/var
应该持久保存的易变系统数据
/var
/var/cache
/var/lib
/var/log
/var/spool
/var/tmp
虚拟文件系统
/dev
/dev/shm
/proc
/proc/sys
/sys
兼容性软连接
/bin, /sbin, /usr/sbin
/lib
/lib64
/var/run
家目录
用户应用如果想要在用户的家目录中保存文件或目录,那么应该遵守下面的规范。 注意,下面的某些目录虽然比较脆弱, 但是已经被 XDG Base Directory Specification[3] 标准化了。 其他为高层次用户资源定义的位置参见 xdg-user-dirs[5] 文档。
~/.cache
~/.config
~/.local/bin
~/.local/lib
~/.local/lib/arch-id
~/.local/share
非特权进程的写权限
非特权进程通常对大多数目录都没有写权限。
但对于普通用户的非特权进程来说,可以写入 /tmp, /var/tmp, /dev/shm, $HOME (通常位于 /home 下), $XDG_RUNTIME_DIR (通常位于 /run/user 下) 目录。
而对于系统的非特权进程来说,则仅可以写入 /tmp, /var/tmp, /dev/shm 目录。 如果系统的非特权进程需要在 /var 或 /run 目录中创建一个专属的、可写入的目录, 那么可以在守护进程丢弃特权之前先创建该目录,或者通过 tmpfiles.d(5) 在系统启动时先创建该目录, 或者通过服务单元文件中的 RuntimeDirectory= 指令(详见 systemd.unit(5) 手册)创建该目录。
文件类型
Unix文件系统支持不同的文件节点类型: 普通文件、目录、软连接、字符设备、块设备、 套接字(socket)、管道(FIFO)。
强烈建议仅将设备文件放置在 /dev 目录中、 仅将套接字(socket)与管道(FIFO)文件放置在 /run 目录中。 而普通文件、目录、软连接则可以放置在所有目录中。
系统软件包
系统软件包的开发者应该严格遵守下面的文件布局规范。 下面列出了发行商提供的系统软件包中各类文件的推荐位置:
Table 1. 系统软件包中静态文件的推荐位置
| 目录 | 用途 |
| /usr/bin | 应该出现在 $PATH 搜索路径中且与体系结构无关的可执行文件。不要将软件包内部使用的可执行文件或非命令行工具(例如守护进程之类)放到此目录中。因为众多的软件包都使用此目录,所以必须选择独一无二的可执行文件名称,以避免冲突。 |
| /usr/lib/arch-id | 全局通用的体系结构相关的共享库。因为众多的软件包都使用此目录,所以必须选择独一无二的共享库名称,以避免冲突。 |
| /usr/lib/package | 发行商提供的该软件包专属的体系结构无关的静态资源(可执行文件、库文件、只读数据)。 |
| /usr/lib/arch-id/package | 发行商提供的体系结构相关的该软件包专属的资源(通常不包括软件包内部使用的可执行文件)。 |
| /usr/include/package | 该软件包提供的共享库的 C/C++ 头文件。 |
发行商提供的其他静态资源应该存放在
/usr/share 目录下,
具体的存放位置应该遵守其他的相关规范。
存放软件包运行时数据以及配置文件的相关目录如下:
Table 2. 系统软件包的运行时数据以及配置文件的推荐位置
| 目录 | 用途 |
| /etc/package | 特定于该系统的配置文件。如果该目录不存在,那么软件包应该尽可能回退到安全的默认设置,而不应该罢工。可选地,可以设置一个 tmpfiles.d(5) 配置文件,以实现在系统启动过程中,从 /usr/share/factory 目录中复制("C"指令)或软连接("L"指令)所需的文件到该目录中。 |
| /run/package | 软件包的运行时数据。因为该目录会在系统启动过程中被清空,所以软件包必须有权限在此目录中创建子目录及文件。可选的,可以设置一个 tmpfiles.d(5) 配置文件,以实现在系统启动过程中自动在此目录中创建所需的子目录及文件。或者可选的,在服务单元文件中使用 RuntimeDirectory= 指令(详见 systemd.unit(5) 手册)以达到上述目的。 |
| /run/log/package | 软件包的运行时日志。因为该目录会在系统启动过程中被清空,所以软件包必须有权限在此目录中创建子目录及文件。 |
| /var/cache/package | 软件包的持久缓存。清空该目录必须不影响软件包的正常工作(但软件包可以花费额外的时间重建这些缓存)。软件包必须有权限在此目录中创建子目录及文件。 |
| /var/lib/package | 软件包的持久专属数据。存放无法明确分类的持久数据。软件包必须有权限在此目录中创建子目录及文件,因为在系统启动时该目录可能为空。可选的,可以设置一个 tmpfiles.d(5) 配置文件,以实现在系统启动过程中自动在此目录中创建所需的子目录及文件。 |
| /var/log/package | 软件包的持久日志数据。软件包必须有权限在此目录中创建子目录及文件,因为在系统启动时该目录可能为空。 |
| /var/spool/package | 软件包的持久队列数据。软件包必须有权限在此目录中创建子目录及文件,因为在系统启动时该目录可能为空。 |
用户软件包
对于专属于特定用户的软件包, 其存贮在用户家目录中的文件必须严格遵守下面的文件布局规范。 注意,当安装属于系统范围的软件包时, 应该遵守前面"系统软件包"小节的布局规范。 下面列出了当用户在其家目录中安装专属软件包时, 由发行商提供的各种类型的文件在用户家目录中应该存放的位置:
Table 3. 用户软件包中静态文件的推荐位置
| 目录 | 用途 |
| ~/.local/bin | 应该出现在 $PATH 搜索路径中且与体系结构无关的可执行文件。不要将软件包内部使用的可执行文件或非命令行工具(例如守护进程之类)放到此目录中。因为众多的软件包都使用此目录,所以必须选择独一无二的可执行文件名称,以避免冲突。 |
| ~/.local/lib/arch-id | 全局通用的体系结构相关的共享库。因为众多的软件包都使用此目录,所以必须选择独一无二的共享库名称,以避免冲突。 |
| ~/.local/lib/package | 发行商提供的该软件包专属的体系结构无关的静态资源(可执行文件、库文件、只读数据)。 |
| ~/.local/lib/arch-id/package | 发行商提供的体系结构相关的该软件包专属的资源(通常不包括软件包内部使用的可执行文件)。 |
发行商提供的其他静态资源应该存放在
~/.local/share 目录下,
具体的存放位置应该遵守其他的相关规范。
存放软件包运行时数据以及配置文件的相关目录如下:
Table 4. 用户软件包的运行时数据以及配置文件的推荐位置
| 目录 | 用途 |
| ~/.config/package | 特定于该用户的配置文件。如果该目录不存在,那么软件包必须能够安全的回退到默认设置,而不能罢工。 |
| $XDG_RUNTIME_DIR/package | 特定于该用户的运行时数据。 |
| ~/.cache/package | 软件包的持久缓存。清空该目录必须不影响软件包的正常工作(但软件包可以花费额外的时间重建这些缓存)。软件包必须有权限在此目录中创建子目录及文件。 |
参见
systemd(1),
hier(7), systemd-path(1), systemd-gpt-auto-generator(8),
sysctl.d(5), tmpfiles.d(5), pkg-config(1),
systemd.unit(5)
NOTES
- 1.
- File System Hierarchy
- 2.
- IEEE Std 1003.1
- 3.
- XDG Base Directory Specification
- 4.
- Multiarch Architecture Specifiers (Tuples)
- 5.
- xdg-user-dirs
跋
本页面中文版由中文 man 手册页计划提供。
翻译人员:金步国
金步国作品集:http://www.jinbuguo.com
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh
| systemd 231 |