菜单

Linux 文件系统概述

ondotnet
ondotnet
发布于 2024-12-02 / 4 阅读
0
0

Linux 文件系统概述

目录结构及解释

/ (根目录)

  • 作用: 根目录是文件系统的顶层,所有文件和目录都从这里开始。系统的所有其他目录都挂载在这个目录下。
  • 建议: 不要在根目录下直接存放用户文件或程序,保持其整洁,并尽量减少根目录下的修改。

/usr (用户系统资源)

  • 作用: 包含用户安装的应用程序和库文件,是系统中最大的目录之一,主要用于存放系统级别的二进制文件、库文件和共享数据。
  • 子目录:
    • /usr/bin: 存放用户可执行的二进制文件(程序),如常用命令 lscp
    • /usr/sbin: 存放系统管理员使用的命令,如 fdiskshutdown
    • /usr/lib: 包含程序和库文件。
    • /usr/local: 用户自定义安装的软件放在这里,避免和系统包产生冲突。
    • /usr/share: 存放共享数据,如文档、手册页和区域设置文件。
  • 建议: 将自定义编译的软件安装到 /usr/local/ 下,确保系统与用户自定义软件的分离,便于维护。

/boot (启动引导文件)

  • 作用: 包含启动 Linux 系统所需的文件,如内核、初始化 RAM 磁盘映像和启动加载器(GRUB)配置文件。
  • 建议: 修改此目录前先做好备份,否则可能导致系统无法启动。

/dev (设备文件)

  • 作用: 包含系统设备的接口文件,如硬盘、光驱等。每个设备在这里都会有一个对应的文件,通过这些文件可以与设备进行交互。
  • 建议: 使用命令如 lsblkfdisk 等查看和管理设备。不要直接修改 /dev 下的文件。

/etc (配置文件)

  • 作用: 存放系统和应用程序的配置文件,是系统管理的核心。几乎所有服务和程序的配置都在这里。
  • 常用文件和目录:
    • /etc/passwd: 用户信息。
    • /etc/group: 用户组信息。
    • /etc/fstab: 文件系统挂载信息。
    • /etc/hosts: 本地 DNS 解析。
    • /etc/nginx/: Nginx 的配置目录。
  • 建议: 修改前先备份原始文件,使用版本控制(如 git)管理 /etc 中的配置文件更为方便。

/home (用户家目录)

  • 作用: 每个用户的家目录,存储用户的个人文件和配置文件。
  • 建议: 建议用户将工作文件存放在自己的家目录中,并定期备份重要数据。为每个用户创建单独的目录,确保数据隔离。

/lib (系统库文件)

  • 作用: 包含核心系统库,是系统启动和运行所需的共享库文件。
  • 建议: 不要在此目录中手动安装库文件,建议使用系统的包管理工具(如 aptyum)进行操作。

/media (可移动媒体挂载点)

  • 作用: 系统挂载可移动存储设备(如 U 盘、CD/DVD)时会放在这个目录下。
  • 建议: 当插入外部设备时,系统会自动创建挂载点,通常无需手动操作。

/mnt (临时挂载点)

  • 作用: 用于临时挂载的文件系统,例如测试新分区、挂载 NFS 等。
  • 建议: 手动挂载外部设备或网络文件系统时,使用此目录,如 mount /dev/sdb1 /mnt/mydisk

/opt (可选软件包)

  • 作用: 存放第三方软件或用户安装的软件包,通常是大型的非系统自带的应用程序。
  • 建议: 第三方应用建议安装在 /opt/<应用名> 下,以避免与系统包产生冲突。

/tmp (临时文件)

  • 作用: 存放临时文件,系统或应用程序生成的临时数据会保存在这里,系统重启后通常会清空该目录。
  • 建议: 可以将开发调试时的临时文件放在这里,但不要存放重要文件。

/var (可变文件)

  • 作用: 存放经常变动的数据,如日志文件、邮件、缓存等。
  • 常用子目录:
    • /var/log/: 系统和服务的日志文件。
    • /var/cache/: 应用程序缓存。
    • /var/lib/: 存放服务运行时的数据,例如数据库文件。
  • 建议: 定期清理不需要的日志和缓存数据,避免占满磁盘空间。

/sbin (系统管理命令)

  • 作用: 存放系统管理员使用的命令,通常用于系统管理和维护,例如 ifconfigreboot
  • 建议: 这些命令通常需要 root 权限执行,不建议普通用户频繁使用。

/bin (基本命令)

  • 作用: 存放基本的用户命令,例如 lscpmv,这些命令在系统单用户模式下也可用。
  • 建议: 该目录下的命令对于系统的基本操作是不可或缺的,尽量不要进行更改。

开发人员应关注的目录

/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/syslogjournalctl -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

  • 作用: 存放临时文件,系统重启后会清空。
  • 建议:
    • 临时文件管理:开发调试时,可以将不重要的临时文件放在这里,但注意不要放置关键数据。
    • 目录清理:可以通过 tmpwatchtmpreaper 自动清理。

/dev

  • 作用: 存放系统设备的接口文件,每个设备在这里都有一个对应的文件。
  • 建议:
    • 磁盘管理:通过 /dev/sda 等接口管理硬盘分区。
    • 常用命令:如 lsblk 查看磁盘设备,mount 挂载设备。

/mnt/media

  • 作用: 挂载点,/mnt 用于临时挂载,/media 用于自动挂载外部设备。
  • 建议:
    • 挂载规范:临时挂载外部设备或网络文件系统时,建议使用 /mnt/<挂载名>,而自动挂载的 U 盘和光驱会出现在 /media/<用户名>/<设备名>

目录创建规范

  1. 保持目录简洁:

    • 避免在根目录下创建过多自定义目录。
    • 自定义的脚本或二进制文件放在 /usr/local/bin 中。
  2. 命名约定:

    • 使用小写字母和短横线 - 分隔符,例如:/opt/my-application/
    • 对于多层目录,使用明确的层级结构,如 /var/lib/my-app/data
  3. 权限管理:

    • 用户数据目录(如 /home)应使用用户权限管理,避免使用 root
    • /etc/opt/usr/local 等目录应由管理员维护。
  4. 日志和数据分离:

    • 应用程序生成的日志文件放在 /var/log/<应用名> 下。
    • 数据库或持久化数据放在 /var/lib/<应用名> 下。
overview-of-linux-file-system

评论