一个典型的 linux 文件系统的顶层目录中含有如下内容:
- /bin :存放普通用户和系统管理员都可以使用的基本命令 (如
ls、cp),系统启动时需要。 - /boot :包含启动系统所需的核心文件,如 Linux 内核和引导程序(GRUB)的配置。
- /dev :一切皆文件,这里是硬件设备的访问点 ,如硬盘(
/dev/sda)、终端(/dev/tty)。 - /etc :存放系统和应用程序的配置文件 ,如用户密码(
passwd)、网络设置。 - /home :普通用户的家目录。每个用户(如 hadoop)在这里有自己的文件夹存放私人数据。你当前可能正位于此目录。
- /lib 与 /lib64 :存放系统启动和根文件系统中命令所需的共享库 (相当于 Windows 的 DLL 文件),
lib64专用于 64 位系统。 - /media 与 /mnt :用于挂载外部设备 。
/media通常由系统自动挂载(如 U 盘),/mnt多用于管理员手动挂载临时文件系统。 - /opt :存放第三方商业软件或可选应用,如手动安装的 Oracle 或 Google Chrome。
- /proc :虚拟文件系统,以目录形式提供内核与进程的实时信息(如 CPU、内存状态),存在于内存中。
- /root :系统管理员(root 用户)的家目录,位置独立,安全性高。
- /run :存放系统启动以来正在运行的进程所需的数据,如进程 ID 文件(PID),是临时文件系统。
- /sbin :存放系统管理命令,主要用于系统维护,通常只有 root 用户可以执行。
- /srv :存放本机提供的服务数据,如 Web 或 FTP 服务的文件。
- /sys :另一个虚拟文件系统 ,提供比
/proc更设备化的内核对象信息(如总线、设备驱动)。 - /tmp :存放临时文件,所有用户都可读写,通常系统重启时会清空。
- /usr :用户应用程序和文件的存放目录 ,非常重要。其下
/usr/bin存放非必需的用户命令,/usr/local存放用户手动编译安装的软件。 - /var :存放经常变化的文件 ,如日志(
/var/log)、缓存、打印队列等。
这些子目录可以按照一定的归属进行分类:
1. 启动与核心系统
- /boot :
- 内容 :包括
vmlinuz(Linux内核)、initramfs(初始内存文件系统,用于加载必要的驱动)和grub(引导配置)。 - 细节:这个目录通常单独分区,以防止根分区写满导致无法启动。
- 内容 :包括
- /bin 和 /sbin :
- 现在 :在许多现代Linux发行版(如CentOS 7+)中,
/bin和/sbin往往是指向/usr/bin和/usr/sbin的软链接,实现了合并。 - 作用 :
/bin包含所有用户都可用的基础命令(cat、chmod);/sbin包含系统修复和管理的命令(fdisk、ifconfig)。
- 现在 :在许多现代Linux发行版(如CentOS 7+)中,
- /lib 和 /lib64 :
- 细节 :包含了内核模块和驱动程序。当你安装新的硬件或更新内核时,模块通常存放在
/lib/modules/下。
- 细节 :包含了内核模块和驱动程序。当你安装新的硬件或更新内核时,模块通常存放在
2. 用户与配置层面
- /root :
- 环境 :作为超级用户的家目录,它的环境变量配置文件(如
.bashrc)独立于普通用户。在救援模式下,通常只有这个目录可用。
- 环境 :作为超级用户的家目录,它的环境变量配置文件(如
- /home :
- 在Hadoop场景中 :如果你创建了一个名为
hadoop的用户,那么它的数据、.bashrc(环境变量配置)、SSH密钥(用于集群免密登录)都会存放在/home/hadoop/下。
- 在Hadoop场景中 :如果你创建了一个名为
- /etc :
- 核心:这是系统的"神经中枢"。
- 网络 :
/etc/sysconfig/network-scripts/ifcfg-ens33(网卡配置文件)。 - 用户认证 :
/etc/passwd(用户列表)、/etc/shadow(密码加密串)、/etc/sudoers(sudo权限配置)。 - 软件配置 :
/etc/profile(全局环境变量)、/etc/hosts(主机名IP映射,Hadoop配置集群时必须修改此文件)。
3. 可变数据与运行状态
- /var :
- 日志 :
/var/log/目录至关重要。比如messages(系统日志)、secure(安全认证日志)。如果Hadoop启动失败,通常要去/var/log/hadoop/查看错误日志。 - 锁与缓存 :
/var/lock(锁文件,防止冲突)、/var/cache(应用程序缓存)。
- 日志 :
- /tmp :
- 特性 :通常设置了粘滞位(Sticky Bit),意味着所有用户都可以在此创建文件,但只能删除属于自己的文件。
- 风险 :Hadoop的中间计算过程可能会产生大量临时数据,默认可能存放在
/tmp,如果/tmp分区太小,可能导致任务失败。生产环境通常配置单独的临时目录。
- /run :
- 现代特性 :取代了旧的
/var/run。它存放在内存中(tmpfs),存储系统从启动以来的运行时数据,比如守护进程的PID文件(/run/sshd.pid)。
- 现代特性 :取代了旧的
4. 应用程序与第三方软件
- /usr :
- 规模 :这是最大的目录之一,类似于Windows的
C:\Program Files和C:\Windows的组合。 - 层级 :
/usr/bin:用户日常使用的大部分命令(如python、gcc)。/usr/local:手动编译安装的软件 。例如,如果你从源码安装Python,通常指定--prefix=/usr/local/python3,这样便于管理,不会污染系统自带的软件库。
- 规模 :这是最大的目录之一,类似于Windows的
- /opt :
- 应用 :常用于存放大型商业软件或非系统自带的软件包 。比如Oracle数据库、Google Chrome,或者在某些公司里,手动解压的Hadoop、JDK 也会放在这里(如
/opt/jdk/、/opt/hadoop/),然后通过软链接或环境变量引用。
- 应用 :常用于存放大型商业软件或非系统自带的软件包 。比如Oracle数据库、Google Chrome,或者在某些公司里,手动解压的Hadoop、JDK 也会放在这里(如
5. 虚拟与硬件接口
- /proc :
- 动态交互 :这是一个伪文件系统,里面的文件并不占用硬盘空间。
- 查看系统 :
cat /proc/cpuinfo查看CPU信息。cat /proc/meminfo查看内存使用情况。/proc/下还有很多数字编号的目录,代表当前运行的每一个进程,里面包含该进程的内存映射、文件描述符等信息。
- /sys :
- 更底层 :用于导出内核中的设备模型信息。可以用来直接操作硬件状态,比如调整笔记本屏幕亮度(
/sys/class/backlight/)。
- 更底层 :用于导出内核中的设备模型信息。可以用来直接操作硬件状态,比如调整笔记本屏幕亮度(
- /dev :
- 设备文件 :
/dev/sda:第一块SATA硬盘(你的系统很可能装在这里)。/dev/null:数据黑洞,常用于丢弃不需要的输出。/dev/random和/dev/urandom:随机数生成器。
- 设备文件 :
6. 挂载点
- /media 和 /mnt :
- 区别 :
/media通常由桌面环境自动挂载(如插入U盘自动出现在这里)。/mnt留给管理员手动临时挂载(如mount /dev/sdb1 /mnt/usb)。
- 区别 :
- /misc 和 /net :
- 某些系统(如Red Hat系)默认提供,用于自动挂载网络文件系统(NFS)等,但在你截图的标准系统中可能为空。