随机
Enter 搜索 ↑↓ 切换 Esc 清空

linux-dir-struct

命令

Linux 文件系统目录结构

linux-dir-struct

Linux 文件系统目录结构

补充说明

Linux 文件系统采用层次化的树状结构,以 /(根目录)为起点。这种结构设计遵循 FHS(Filesystem Hierarchy Standard),使得不同 Linux 发行版具有一致的目录布局。

主要特点:

核心目录详解

/ — 根目录

整个文件系统的起点,包含所有其他目录和文件。

ls /

包含系统启动必需的核心目录,不应该直接存放用户文件。

/bin — 基本命令二进制文件

存放系统最基本的命令,所有用户都可使用:

特点:所有用户可执行、系统启动必需、单用户模式仍可用。

现代变化:在一些新系统中,/bin/usr/bin 的符号链接。

/boot — 启动文件

包含系统启动所需的文件:

注意不要随意删除此目录文件,否则系统无法启动。建议定期备份 /boot 目录,特别是升级内核前。

/dev — 设备文件

体现 Linux "一切皆文件"理念,包含所有设备文件:

设备文件 说明
/dev/sda 第一块 SATA 硬盘
/dev/sdb 第二块 SATA 硬盘
/dev/ttyUSB0 第一个 USB 串口设备
/dev/null 空设备(黑洞)
/dev/random 随机数生成器
/dev/zero 零源设备

设备类型:块设备(随机访问,如硬盘)和字符设备(顺序访问,如键盘)。

ls /dev          # 查看所有设备
fdisk -l         # 查看磁盘设备
lsblk            # 查看块设备信息

/etc — 配置文件

系统级配置文件中心:

配置文件 说明
/etc/passwd 用户账户信息
/etc/group 用户组信息
/etc/fstab 文件系统挂载表
/etc/hosts 主机名解析
/etc/network/ 网络配置
/etc/ssh/sshd_config SSH 服务配置
/etc/crontab 计划任务配置
sudo hostnamectl set-hostname 新主机名  # 修改主机名
sudo nano /etc/hosts                    # 修改主机解析

/home — 用户主目录

普通用户的个人空间:

/home/
  ├── alice/       # 用户 alice 的家目录
  ├── bob/         # 用户 bob 的家目录
  └── charlie/     # 用户 charlie 的家目录

常见子目录:~/Desktop/~/Documents/~/Downloads/~/.config/~/.bashrc~/.ssh/

chmod 700 /home/username
chown username:username /home/username

/lib — 系统库文件

存放系统运行所需的共享库(.so 文件)、内核模块和系统命令依赖的库。

ldd /bin/ls                                    # 查看 ls 命令依赖的库
ldconfig                                       # 重建库缓存
ls /lib/modules/$(uname -r)/kernel/            # 查看内核模块

现代变化:在一些新系统中,/lib/usr/lib 的符号链接。

/media 和 /mnt — 挂载点

sudo mkdir /mnt/usb
sudo mount /dev/sdb1 /mnt/usb
df -h
sudo umount /mnt/usb

/opt — 可选软件

第三方应用程序安装目录:

/opt/
  ├── google/
  │   └── chrome/
  ├── oracle/
  │   └── java/
  └── sublime_text/

特点:保持软件独立性和完整性、便于管理和卸载、避免与系统包管理器冲突。

/proc — 进程信息

虚拟文件系统,显示内核和进程信息:

文件 说明
/proc/cpuinfo CPU 信息
/proc/meminfo 内存信息
/proc/[pid]/ 特定进程信息
/proc/version 内核版本
/proc/loadavg 系统负载
cat /proc/cpuinfo    # 查看 CPU 信息
cat /proc/meminfo    # 查看内存信息
cat /proc/loadavg    # 查看系统负载
ls /proc/1234/       # 查看进程 1234 的信息
cat /proc/1234/status

/root — root 用户目录

超级用户(root)的家目录。需要 root 权限访问,与 /home/root 不同。

避免在 /root 目录存放敏感信息,建议使用加密存储。

/sbin — 系统管理命令

系统管理员使用的命令:

命令 说明
fdisk 磁盘分区
ip 网络配置
reboot 重启系统
shutdown 关闭系统
iptables 防火墙配置
fsck 文件系统检查

需要 root 权限执行。

现代变化:在一些新系统中,/sbin/usr/sbin 的符号链接。

/tmp — 临时文件

存放临时文件,重启后清空。所有用户可写入,有些系统会定期清理,部分系统使用 tmpfs(内存文件系统)提高性能。

chmod 1777 /tmp  # 设置粘滞位,用户只能删除自己的文件

/usr — 用户程序

最大的目录之一,包含用户应用程序:

子目录 说明
/usr/bin/ 用户命令
/usr/lib/ 程序库
/usr/local/ 本地安装软件
/usr/share/ 架构无关数据
/usr/src/ 源代码
/usr/include/ 头文件
# 编译安装软件到 /usr/local
./configure --prefix=/usr/local
make
sudo make install

/var — 可变数据

存放经常变化的文件:

子目录 说明
/var/log/ 系统日志
/var/www/ Web 服务器文件
/var/mail/ 用户邮件
/var/spool/ 队列文件
/var/cache/ 应用程序缓存
tail -f /var/log/syslog    # 实时查看系统日志
journalctl -f              # 查看 systemd 日志

使用 logrotate 管理日志文件大小和历史。

实用技巧

常用命令

pwd                                               # 查看当前目录
cd /path/to/directory                             # 切换目录
cd ~                                              # 回家目录
cd -                                              # 返回上一个目录
cd ..                                             # 上一级目录
ls -la                                            # 详细列表(包含隐藏文件)
ls -lh                                            # 人类可读格式
ls -ltr                                           # 按时间反向排序
tree                                              # 树状显示目录结构

磁盘空间管理

df -h                                             # 查看磁盘使用情况
du -sh /path/to/directory                         # 查看目录大小
du -h --max-depth=1 /path                         # 查看一级子目录大小
find / -type f -size +100M 2>/dev/null | xargs ls -lh   # 查找大文件

文件查找

find / -name "filename" 2>/dev/null               # 按名称查找
find / -iname "filename"                          # 不区分大小写
find / -type f -name "*.log" 2>/dev/null          # 按类型查找
find / -mtime -7                                  # 7天内修改的文件
sudo updatedb && locate filename                  # 快速查找(locate)
grep -r "search text" /path/to/search             # 搜索文件内容

注意事项

危险操作

以下操作可能导致系统崩溃,严禁在不明情况下执行:

rm -rf /etc/         # 危险!删除所有配置
rm -rf /boot/        # 危险!删除启动文件
rm -rf /lib/         # 危险!删除系统库

最佳实践:

权限管理

chmod 644 filename      # 用户读写,其他读
chmod 755 directory     # 用户读写执行,其他读执行
chmod 700 sensitive_file  # 仅用户可访问
chown user:group filename  # 更改所有者
chmod +s filename       # 设置 SUID
chmod +t directory      # 设置粘滞位
ls -la                  # 查看权限
stat filename           # 详细查看权限

快速参考

目录结构速查表

目录 用途 重要内容
/ 根目录 文件系统起点
/bin 基本命令 ls, cp, rm
/boot 启动文件 内核, GRUB 配置
/dev 设备文件 硬件设备接口
/etc 配置文件 系统配置
/home 用户目录 用户个人文件
/lib 库文件 共享库
/media 可移动媒体 自动挂载点
/mnt 临时挂载 手动挂载点
/opt 可选软件 第三方应用
/proc 进程信息 内核和进程信息
/root root 目录 管理员家目录
/sbin 系统命令 系统管理工具
/tmp 临时文件 临时数据
/usr 用户程序 应用程序和数据
/var 可变数据 日志、缓存等

常用操作速查

# 查看系统信息
cat /etc/os-release                               # 系统版本
uname -a                                          # 内核信息
hostnamectl                                       # 主机信息
lscpu                                             # CPU 信息
free -h                                           # 内存信息

# 管理服务
sudo systemctl status servicename
sudo systemctl start servicename
sudo systemctl stop servicename
sudo systemctl restart servicename
sudo systemctl enable servicename                 # 开机启动
sudo systemctl disable servicename                # 禁用开机启动

# 包管理 (Debian/Ubuntu)
sudo apt update && sudo apt upgrade
sudo apt install package
sudo apt remove package

# 包管理 (RHEL/CentOS)
sudo yum update
sudo yum install package
sudo yum remove package

学习建议

  1. 循序渐进:先掌握常用目录,再学习高级功能
  2. 多实践:在虚拟机中练习,避免影响生产系统
  3. 好奇心:多探索系统目录,了解文件用途
  4. 记笔记:记录重要目录的用途和注意事项
  5. 求助:遇到问题时使用 man 命令或在线文档
  6. 实验环境:使用 Docker 容器或虚拟机进行实验
  7. 阅读文档:查阅 FHS 标准和发行版文档