Linux 文件系统概述
目录结构及解释
/
(根目录)
- 作用: 根目录是文件系统的顶层,所有文件和目录都从这里开始。系统的所有其他目录都挂载在这个目录下。
- 建议: 不要在根目录下直接存放用户文件或程序,保持其整洁,并尽量减少根目录下的修改。
/usr
(用户系统资源)
- 作用: 包含用户安装的应用程序和库文件,是系统中最大的目录之一,主要用于存放系统级别的二进制文件、库文件和共享数据。
- 子目录:
/usr/bin
: 存放用户可执行的二进制文件(程序),如常用命令ls
、cp
。/usr/sbin
: 存放系统管理员使用的命令,如fdisk
、shutdown
。/usr/lib
: 包含程序和库文件。/usr/local
: 用户自定义安装的软件放在这里,避免和系统包产生冲突。/usr/share
: 存放共享数据,如文档、手册页和区域设置文件。
- 建议: 将自定义编译的软件安装到
/usr/local/
下,确保系统与用户自定义软件的分离,便于维护。
/boot
(启动引导文件)
- 作用: 包含启动 Linux 系统所需的文件,如内核、初始化 RAM 磁盘映像和启动加载器(GRUB)配置文件。
- 建议: 修改此目录前先做好备份,否则可能导致系统无法启动。
/dev
(设备文件)
- 作用: 包含系统设备的接口文件,如硬盘、光驱等。每个设备在这里都会有一个对应的文件,通过这些文件可以与设备进行交互。
- 建议: 使用命令如
lsblk
、fdisk
等查看和管理设备。不要直接修改/dev
下的文件。
/etc
(配置文件)
- 作用: 存放系统和应用程序的配置文件,是系统管理的核心。几乎所有服务和程序的配置都在这里。
- 常用文件和目录:
/etc/passwd
: 用户信息。/etc/group
: 用户组信息。/etc/fstab
: 文件系统挂载信息。/etc/hosts
: 本地 DNS 解析。/etc/nginx/
: Nginx 的配置目录。
- 建议: 修改前先备份原始文件,使用版本控制(如 git)管理
/etc
中的配置文件更为方便。
/home
(用户家目录)
- 作用: 每个用户的家目录,存储用户的个人文件和配置文件。
- 建议: 建议用户将工作文件存放在自己的家目录中,并定期备份重要数据。为每个用户创建单独的目录,确保数据隔离。
/lib
(系统库文件)
- 作用: 包含核心系统库,是系统启动和运行所需的共享库文件。
- 建议: 不要在此目录中手动安装库文件,建议使用系统的包管理工具(如
apt
、yum
)进行操作。
/media
(可移动媒体挂载点)
- 作用: 系统挂载可移动存储设备(如 U 盘、CD/DVD)时会放在这个目录下。
- 建议: 当插入外部设备时,系统会自动创建挂载点,通常无需手动操作。
/mnt
(临时挂载点)
- 作用: 用于临时挂载的文件系统,例如测试新分区、挂载 NFS 等。
- 建议: 手动挂载外部设备或网络文件系统时,使用此目录,如
mount /dev/sdb1 /mnt/mydisk
。
/opt
(可选软件包)
- 作用: 存放第三方软件或用户安装的软件包,通常是大型的非系统自带的应用程序。
- 建议: 第三方应用建议安装在
/opt/<应用名>
下,以避免与系统包产生冲突。
/tmp
(临时文件)
- 作用: 存放临时文件,系统或应用程序生成的临时数据会保存在这里,系统重启后通常会清空该目录。
- 建议: 可以将开发调试时的临时文件放在这里,但不要存放重要文件。
/var
(可变文件)
- 作用: 存放经常变动的数据,如日志文件、邮件、缓存等。
- 常用子目录:
/var/log/
: 系统和服务的日志文件。/var/cache/
: 应用程序缓存。/var/lib/
: 存放服务运行时的数据,例如数据库文件。
- 建议: 定期清理不需要的日志和缓存数据,避免占满磁盘空间。
/sbin
(系统管理命令)
- 作用: 存放系统管理员使用的命令,通常用于系统管理和维护,例如
ifconfig
、reboot
。 - 建议: 这些命令通常需要
root
权限执行,不建议普通用户频繁使用。
/bin
(基本命令)
- 作用: 存放基本的用户命令,例如
ls
、cp
、mv
,这些命令在系统单用户模式下也可用。 - 建议: 该目录下的命令对于系统的基本操作是不可或缺的,尽量不要进行更改。
开发人员应关注的目录
/home
- 作用: 存储用户的个人文件和配置文件,每个用户都有自己的家目录。
- 建议:
- 备份重要数据:定期备份用户目录中的重要文件,尤其是开发环境配置文件(如
.bashrc
、.zshrc
、.vimrc
)。 - 目录结构规范:用户的个人项目文件可以放在
~/projects
或~/work
中,配置文件保存在~/config
中。
- 备份重要数据:定期备份用户目录中的重要文件,尤其是开发环境配置文件(如
/etc
- 作用: 存放系统和应用程序的配置文件,是系统管理的核心。
- 建议:
- 常见配置文件:
/etc/passwd
: 用户信息。/etc/group
: 用户组信息。/etc/fstab
: 文件系统挂载信息。/etc/hosts
: 本地 DNS 解析。/etc/nginx/
: Nginx 的配置目录,网站部署时需要修改。/etc/systemd/system/
: 自定义的 Systemd 服务文件存放路径。
- 目录结构规范:自定义的配置文件可以放在
/etc/opt/
中,以避免与系统配置冲突。 - 备份策略:任何修改前先备份,如
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
。
- 常见配置文件:
/var
- 作用: 存放经常变动的数据,如日志文件、邮件、缓存等。
- 建议:
- 日志管理:
/var/log/
: 系统和服务的日志文件都在这里,可以查看应用和系统运行状态。- 通过
tail -f /var/log/syslog
或journalctl -u <服务名>
实时查看日志。
- 缓存和临时数据:
/var/cache/
: 应用程序缓存,清理缓存时要小心,避免影响程序运行。/var/lib/
: 存放服务运行时的数据,例如数据库文件。
- 目录结构规范:应用程序的数据存放在
/var/lib/<应用名>
中,日志文件存放在/var/log/<应用名>
。
- 日志管理:
/usr
- 作用: 存放系统级别的二进制文件、库文件和共享数据。
- 建议:
- 开发相关文件:
/usr/bin
和/usr/sbin
: 存放用户级和系统级命令,运维人员可以通过这里查看系统命令的路径。/usr/local/bin
: 自定义脚本和可执行文件的存放路径,优先级高于/usr/bin
。
- 目录结构规范:对于自编译的软件,建议安装在
/usr/local/
下,避免和系统包产生冲突。
- 开发相关文件:
/opt
- 作用: 存放第三方软件或用户安装的软件包。
- 建议:
- 软件安装规范:第三方应用软件建议安装在
/opt/<应用名>
下,便于管理和卸载。 - 权限管理:确保
/opt
下的目录权限合理,通常需要root
权限进行安装和维护。
- 软件安装规范:第三方应用软件建议安装在
/tmp
- 作用: 存放临时文件,系统重启后会清空。
- 建议:
- 临时文件管理:开发调试时,可以将不重要的临时文件放在这里,但注意不要放置关键数据。
- 目录清理:可以通过
tmpwatch
或tmpreaper
自动清理。
/dev
- 作用: 存放系统设备的接口文件,每个设备在这里都有一个对应的文件。
- 建议:
- 磁盘管理:通过
/dev/sda
等接口管理硬盘分区。 - 常用命令:如
lsblk
查看磁盘设备,mount
挂载设备。
- 磁盘管理:通过
/mnt
和 /media
- 作用: 挂载点,
/mnt
用于临时挂载,/media
用于自动挂载外部设备。 - 建议:
- 挂载规范:临时挂载外部设备或网络文件系统时,建议使用
/mnt/<挂载名>
,而自动挂载的 U 盘和光驱会出现在/media/<用户名>/<设备名>
。
- 挂载规范:临时挂载外部设备或网络文件系统时,建议使用
目录创建规范
-
保持目录简洁:
- 避免在根目录下创建过多自定义目录。
- 自定义的脚本或二进制文件放在
/usr/local/bin
中。
-
命名约定:
- 使用小写字母和短横线
-
分隔符,例如:/opt/my-application/
。 - 对于多层目录,使用明确的层级结构,如
/var/lib/my-app/data
。
- 使用小写字母和短横线
-
权限管理:
- 用户数据目录(如
/home
)应使用用户权限管理,避免使用root
。 /etc
、/opt
、/usr/local
等目录应由管理员维护。
- 用户数据目录(如
-
日志和数据分离:
- 应用程序生成的日志文件放在
/var/log/<应用名>
下。 - 数据库或持久化数据放在
/var/lib/<应用名>
下。
- 应用程序生成的日志文件放在