百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

备忘录:Linux 系统目录结构大全,手慢无!

ahcoder 2025-03-11 12:30 20 浏览

Linux 系统作为开源的操作系统,其文件系统的设计极具灵活性和高效性。每个 Linux 系统都会有一套相对固定的目录结构,这些目录的设置不仅反映了操作系统的工作原理,还帮助管理员和用户高效地管理系统文件。熟悉这些目录对任何 Linux 用户或管理员来说,都是至关重要的。

本篇文章将为你详细介绍 Linux 系统中常见的目录结构及其用途,每一个目录都是 Linux 操作系统不可或缺的一部分。让我们一起深入探讨!

1. 根目录 /

Linux 文件系统的起点

根目录(/)是整个 Linux 文件系统的顶层目录。它是文件系统结构的根基,所有其他的目录和文件都由根目录延伸而来。你可以将其视作 Linux 系统的“母体”,所有路径都是从这里开始的。几乎每个文件都会以 / 开头,组成一个层级结构。无论是用户文件、系统配置还是软件安装,都最终归属于根目录的某个子目录。

例如:/home/user/bin/ls 都是从根目录出发的路径。

2. 二进制文件目录 /bin

基本命令的集合

/bin 目录是 Linux 系统最为关键的目录之一,它包含了系统启动和运行所需的基础命令。这些命令对于普通用户和管理员来说,都是不可或缺的,如 ls(列出文件),cp(复制文件),mv(移动文件),以及 cat(查看文件内容)等。

即使在系统处于单用户模式时,/bin 中的命令也必须可用,因为这个目录包含了基本的系统操作命令。如果没有 /bin,即使系统启动了,也无法正常运行。

3. 系统二进制文件目录 /sbin

管理员专属命令

/sbin 目录和 /bin 目录相似,但是它主要包含的是系统管理命令。这些命令通常只有系统管理员(root 用户)才有权限使用。例如:fdisk(分区工具)、ifconfig(网络配置工具)和 shutdown(关机命令)。这些命令在系统启动时可能需要被执行,或者在修复和管理系统时才会用到。

由于这些命令影响系统的稳定性,因此它们只限于管理员使用。

4. 配置文件目录 /etc

系统配置的中心

/etc 目录是 Linux 系统的配置文件存储地。几乎所有系统服务的配置文件都存放在此目录下。从用户账户管理(/etc/passwd),到网络配置(/etc/network),再到系统启动配置(/etc/hostname),这个目录对于系统的正常运作至关重要。

如果你需要修改系统的配置或调整服务的行为,通常会在这个目录下操作。务必小心操作,因为错误的配置可能导致系统无法启动或出现问题。

5. 设备文件目录 /dev

硬件和设备的接口

/dev 目录包含了设备文件,这些文件并不直接存储数据,而是作为操作系统与硬件设备之间的接口。Linux 通过设备文件来识别和与硬件进行交互,比如硬盘、键盘、鼠标、光驱等。

例如,/dev/sda 代表系统中的第一个硬盘,而 /dev/tty 代表终端设备。你可以通过这些设备文件访问硬件资源,如通过 /dev/usb 挂载外部设备。

6. 虚拟文件系统目录 /proc

系统运行时信息的宝库

/proc 目录是 Linux 中一个非常特别的目录,它是一个虚拟文件系统,包含了系统运行时的信息。系统中的进程、内存、CPU、硬件状态等,都可以通过 /proc 目录下的文件来查看。例如:

  • /proc/cpuinfo:显示 CPU 详细信息;
  • /proc/meminfo:显示系统的内存信息;
  • /proc/uptime:显示系统的运行时间。

这个目录中的内容并不实际存储在硬盘上,而是由内核动态生成,因此它提供了一个实时的系统视图。

7. 变动文件目录 /var

存储日志、缓存、邮件等数据

/var 目录主要用于存放那些内容会频繁变化的文件,包括系统日志、缓存文件、邮件、打印队列等。举个例子,/var/log 目录用来存放系统的日志文件,这些文件记录了系统和服务的运行状态。/var/spool 存储的是队列文件,例如打印任务和邮件任务。

由于这些文件通常会随时间积累,因此 /var 目录的容量可能会快速增长,需要管理员定期清理。

8. 临时文件目录 /tmp

临时文件的存放处

/tmp 目录是存放临时文件的地方。无论是程序运行中产生的临时文件,还是用户操作产生的临时数据,都可以放在这个目录下。/tmp 目录中的文件通常是短期有效的,操作系统会定期清理该目录,移除不再使用的文件。

/tmp 是所有用户都可以写入的目录,但同时也是一个潜在的安全风险源,因此有时会限制某些程序的写入权限。

9. 用户程序和共享库目录 /usr

系统和应用程序的存放地

/usr 目录是 Linux 系统中存放共享文件和用户程序的地方。这个目录包含了大多数的应用程序、库文件和文档。在 /usr/bin 中,你可以找到系统中大多数的用户级命令和工具;而在 /usr/lib 中,你可以找到应用程序所需的库文件。

需要注意的是,/usr 目录下的文件一般是只读的,系统的操作和应用程序通常都依赖于这个目录中的内容。

10. 用户主目录 /home

每个用户的个人空间

/home 目录是每个普通用户的主目录。系统中的每个用户都有一个以用户名命名的子目录,用于存放个人文件、配置和文档。例如,/home/alice 目录是 Alice 用户的个人空间。所有在用户模式下生成的文件,默认都会存储在这个目录下。

每个用户都可以自由管理自己的主目录,而管理员则可以访问或管理所有用户的主目录。

11. 超级用户主目录 /root

超级用户的专属空间

/root 是超级用户(root 用户)的主目录。与普通用户的 home 目录不同,/root 主要存放的是系统管理员个人的配置文件和文档。尽管 /home 中也有其他用户的文件,但 root 用户的操作权限比其他用户更高。

由于 root 用户具有修改系统任何部分的权限,/root 目录通常包含 root 用户进行系统管理时所需要的脚本和配置文件。

12. 可选软件目录 /opt

手动安装的软件包

/opt 目录用于存放由用户手动安装的非系统管理软件包。通常,/opt 目录下的文件夹会代表一个应用程序或软件包,这些软件包可能没有通过 Linux 包管理器(如 aptyum 等)安装,而是直接由用户或第三方提供。

例如,某些商业软件或大型程序(如 Google Chrome、Autodesk)可能会被安装在 /opt 中。

13. 启动文件目录 /boot

启动所需的核心文件

/boot 目录存放了启动 Linux 系统所需要的核心文件。这个目录通常包括 Linux 内核(vmlinuz),引导加载器配置文件(如 grub.conf),以及其他启动时所需的文件。这些文件是系统引导过程中不可或缺的一部分,没有它们,系统将无法启动。

14. 系统库文件目录 /lib

运行时必需的共享库

/lib 目录包含了系统运行所需的共享库文件。所有需要调用这些共享库的程序,都可以通过这个目录来访问相应的文件。系统中的很多重要程序都依赖于这些库文件的支持,因此它们是不可或缺的。

15. 外部设备目录 /media

挂载外部存储设备

/media 目录用于挂载外部存储设备,如 USB 驱动器、光盘、DVD 等。当你插入一个外部设备时,系统会自动在 /media 下创建一个挂载点来访问这些设备。比如,当你插入一个 USB 闪存盘时,系统可能会在 /media/usb 目录下创建一个子目录,用于访问这个设备中的文件。这个目录的设计使得外部设备的管理变得简单和规范,同时避免了在 /dev 目录下创建过多设备文件。

16. 临时挂载目录 /mnt

手动挂载外部文件系统

/mnt 目录是一个用于临时挂载文件系统的标准位置。虽然现代 Linux 系统通常会自动挂载设备到 /media 目录,但 /mnt 仍然用于挂载临时的文件系统。例如,当管理员需要挂载一个网络文件系统(如 NFS)或额外的硬盘分区时,通常会选择 /mnt 作为挂载点。

在过去,/mnt 常用于临时挂载光盘或其他临时存储设备。不过,随着挂载管理的自动化和规范化,这个目录的使用有所减少,但它仍然是系统管理员非常熟悉的一个目录。

17. 运行时文件目录 /run

存储系统运行时数据

/run 是一个用于存储系统运行时文件的目录。这个目录包含的是一些动态生成的文件,比如进程ID文件(PID 文件)、锁文件、会话信息等。与 /var/run 类似,/run 目录是一个临时的文件系统,它存储的是系统和应用程序运行时的临时信息,而这些信息会在系统重启时丢失。

一个常见的文件类型是进程的 PID 文件。例如,/run/sshd.pid 可能包含 SSH 服务的进程 ID。因为 /run 是为运行时文件准备的,它比传统的 /var/run 提供了更高的性能,通常在启动时就会挂载到内存中。

18. 服务数据目录 /srv

服务特定数据的存放位置

/srv 目录用于存放由特定服务提供的数据。这些数据通常是供用户访问的内容,诸如网站的内容、FTP 服务器的文件、数据库的备份等。比如,如果你在 Linux 系统上运行一个网站,/srv/www 可能会包含你的网页文件和相关资源。类似地,/srv/ftp 可能用于存放 FTP 服务器的数据。

该目录的设计目的是将服务数据从其他系统文件和程序区分开来,便于管理和维护。这也是一个不常见但非常重要的目录,特别是对于管理服务器的用户。

附加小贴士:如何高效管理 Linux 目录结构

  • 定期清理 /var/tmp 目录:由于这两个目录包含了经常变化的文件,定期检查并清理它们,可以避免系统磁盘空间的无谓浪费。
  • 使用符号链接:对于一些较大的文件或目录,可以使用符号链接来将它们指向其他分区或存储设备,这样能有效管理文件系统空间。
  • 备份和恢复:确保定期备份 /etc/home/srv 等目录,以防止系统崩溃或数据丢失。
  • 限制对 /dev/proc 的访问:为了系统的安全性,最好限制普通用户对 /dev/proc 目录的访问权限,防止潜在的安全风险。

Linux 文件系统的结构之美

通过以上的详细介绍,我们可以看到,Linux 系统的目录结构并非随机设置,而是经过精心设计、层次分明的。这种设计使得每个目录都能承担明确的职责,从而优化了系统管理、文件存储和用户使用体验。每个目录都像一个独立的模块,各自负责特定的功能和任务。无论是日常使用、系统管理还是服务配置,Linux 的目录结构都能提供高效且清晰的支持。

  • /(根目录):万象归一的起点
  • /bin/sbin:用户命令与管理员工具的集合
  • /etc:系统配置文件的核心
  • /dev:与硬件设备的桥梁
  • /proc:动态生成的系统信息宝库
  • /var:经常变化的数据存储地
  • /tmp:临时文件的存放处
  • /usr:用户应用和共享库的集中地
  • /home/root:普通用户和超级用户的专属空间
  • /opt:额外软件的存放地
  • /boot:系统启动文件的储藏室
  • /lib:程序运行所需的共享库
  • /media/mnt:外部设备和临时挂载的管理
  • /run:系统运行时数据的缓存地
  • /srv:服务数据的管理和存储

以下是一个总结 Linux 系统目录结构的表格,以便更清晰地理解每个目录的用途:

Linux 目录结构

理解和掌握这些目录的功能和作用,不仅能让你更加高效地使用和管理 Linux 系统,还能帮助你更好地诊断和解决潜在的问题。每一个目录背后都有其独特的设计和目的,它们共同构成了 Linux 系统强大且灵活的文件管理架构。

作为 Linux 用户或管理员,了解这些目录结构的细节,能够让你更加得心应手地进行系统配置、维护和故障排查。如果你希望深入探索每个目录中的文件,或者有更具体的管理需求,随时可以根据本篇文章进行进一步的操作和学习。

相关推荐

ARM64内核内存布局图(ARM64内核内存布局图解)

ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。虚拟地址也同样最大支持48位支持,所以在处理器的架构...

ARM64 linux 调试串口通信(ARM64 linux 调试串口通信实验报告)

ARM64linux调试串口通信随着国产机普及很多工作也转移到了新平台上,以前调试设备用的笔记本电脑也换成新国产ARM64架构的了。本文以绿联CM204USB-A转RJ45Console调试线...

Gentoo Linux 终止对 Itanium IA-64 体系的支持

GentooLinux是最后几个继续维护Itanium(IA-64)架构构建的Linux发行版之一,但现在这些已停产的英特尔处理器正在逐步淘汰。由于Linux6.7内核放弃了对Itan...

如何检查 Linux 系统是 32 位还是 64 位?这9个命令查的又快又准!

在Linux系统中,位数(bit)通常指的是CPU架构的位宽,即CPU一次能够处理的数据量。32位系统和64位系统在内存寻址能力、计算性能和软件支持上存在显著差异:「32位系统」:...

调出好画面!带你玩转飞凌嵌入式AM62x开发板的显示接口

来源:飞凌嵌入式官网“显示”是嵌入式开发板最为重要的功能之一,能够支持更多种类、更高规格的显示接口,意味着它能够应对的使用场景也更加广泛。每一款嵌入式开发板在出厂前都会做屏幕调试,但在客户的实际项目开...

带你玩转AM62x开发板的显示接口——LVDS的显示和修改方式

此前小编已为大家介绍过OK6254-C开发板的RGB显示和修改方式,今天将继续为大家介绍OK6254-C开发板的LVDS显示和修改方式。话不多说,我们进入正题。1、LVDS接口规格飞凌嵌入式OK62...

AM335x继任者?AM6254性能解析(am2361p)

飞凌嵌入式FET6254-C核心板基于TISitaraTMAM62x系列工业级处理器设计开发,采用ARMCortex-A53架构,主频最高可达1.4GHz;并集成了丰富的接口,可广泛应用于的工...

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和QQ,那么如何在Linux发行版中安装微信和QQ呢?以下是一些尝试的解决方法。QQ上一个版本的QQLinux版还是在2009年,而在现在,基于N...

MySQL:物理备份工具XBK(mysql 备份方案)

XBK的优缺点:XBK(PerconaXtraBackup)优点:1.免费2.热备:备份期间不阻塞innodb和XtraDB表,但会阻塞Myisam表3.物理备份:备份恢复快XBK缺点:1.不支持远...

AMD锐龙9 9950X CPU AIDA64跑分曝光:比7950X最高快45%

IT之家6月26日消息,Anandtech论坛网友igor_kavinski本周一发布帖子,分享了AMD旗舰锐龙99950X处理器的AIDA64基准测试跑分,与当前基于Z...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

iPhone 7成刷机神器,成功运行乌班图、Linux、安卓

在智能机刚开始流行的时候,很多手机发烧友都喜欢刷机,当时民间大神们制作了特别多优化的ROM。后来随着手机硬件的逐步提升,以及厂商们对系统的大力优化,让大家对于刷机的兴趣也越来越少。不知道大家还记得这部...

12 款最佳免费开源 Linux 渲染器 | 火狐浏览器 130.0 版本更新

12款最佳免费开源Linux渲染器Linux的一大优势在于其拥有丰富的开源软件,可以满足艺术家、摄影师、动画师和设计师的需求。凭借价格低廉的硬件、免费的软件以及少量的才能和灵感,任何人都可以创...

Linux中xargs 命令详解与实用场景

xargs是Linux系统中常用的命令行工具之一,它能够从标准输入构造参数列表并传递给其他命令使用,是处理批量数据操作时的重要利器。一、xargs的基本语法xargs[OPTION]...[C...

Linux 磁盘扩容(非LVM)方式(linux扩容lvm磁盘容量)

今天接到一个客户的需求,CentOS的/分区容量太小了,OA系统所有的数据都在这下面,由于当时前同事给客户安装系统时采用了标准分区,而不是LVM逻辑卷,所以不支持在线扩容。df-hT查看磁盘使...