搜索
首页系统教程LINUXLinux 文件系统解析:各个目录的作用和用法

Linux 文件系统解析:各个目录的作用和用法

Feb 15, 2024 pm 12:18 PM
linuxlinux教程linux系统linux命令外壳脚本嵌入式linuxlinux入门linux学习

Linux 文件系统是一个复杂而有组织的结构,它包含了操作系统和用户所需的所有文件和数据。Linux 文件系统中有许多不同的目录,它们各自有着特定的含义和用途。如果你想更好地理解和管理 Linux 系统,你需要知道这些目录是什么,它们存放了什么,以及如何正确地使用它们。在本文中,我们将为你介绍 Linux 文件系统中最常见和最重要的目录,包括 /bin, /boot, /dev, /etc, /home, /lib, /lost+found, /media, /mnt, /opt, /proc, /root, /run, /sbin, /srv, /sys, /tmp 和 /usr。

/bin

Linux 文件系统解析:各个目录的作用和用法

这是系统所需的可执行二进制文件的主要存储位置(因此被称为“bin”)。这些基本二进制文件在启动过程中由系统需要,以确保成功完成。在这里,你会找到像 ls 和 top 这样的基本命令。

在启动过程中,如果 /usr/bin 不可用,/bin 有时会作为一个符号链接提供在顶层。

/boot

这个目录包含了实际启动操作系统所需的所有关键文件。其中包括内核文件、引导加载程序文件(例如 GRUB)以及适用于现代 UEFI 系统的 EFI 文件。

对于 Linux 系统来说,这个目录是最重要的目录之一,因为如果这里出了问题,你的系统可能无法启动,甚至不知道从何启动。

/dev

/dev是“device”的缩写,它是 Linux 用来存储对系统上大多数已连接设备(包括物理设备和虚拟设备)的引用的地方。在这里,你可以找到对硬盘、USB 外设、虚拟终端甚至空设备的引用,你可以将东西导向这个设备,以便让它们消失。

如果你从命令行访问任何类型的设备,即使它不是物理硬件,很可能它就存在于这里。

/etc

很有可能你以前曾在 /etc 目录中研究过。这是 Linux 保存所有核心配置文件的地方,不仅包括自己的程序,还包括你安装的第三方程序的配置文件。

如果你需要修改程序的运行方式、核心网络设置或者 crontab,它们都存在于这个目录中。

Linux 文件系统解析:各个目录的作用和用法

/home

这是一个更具描述性的顶层目录之一。这正是用户的主目录所在的位置。可以将其视为每个用户在操作系统中拥有的独立空间。通常情况下,他们拥有自己对应主目录中的所有文件和子目录。

如果在共享机器上查看此目录,你可能会发现许多以各个特定用户命名的子目录。在大多数系统上登录后,你可以使用路径中的 ~ 字符来引用自己的主目录。这对应的路径是 /home/。

这是存放仅与你相关的个人文件的最佳位置。图片、音乐文件、电子表格或者下一部伟大的小说,都应该存放在这里。你不应该在这里存储共享的程序配置或系统级数据。

/lib, /lib32, /lib64, …

这些目录包含了共享的 C 库和内核模块。这些模块和库是之前我们提到的 /bin 目录中的可执行二进制文件所需的基础。换句话说,为了实际启动操作系统并使用任何默认的二进制文件,我们需要这些目录中的库文件。

注意:如果存在多个不同架构的库文件,你会看到其他的 lib 目录存在。

/lost+found

这个目录很简单。在这里,你会找到一些文件被损坏,但已经尝试过恢复它们。这通常是由于意外断电或有时是硬件故障导致的。

/media

这也非常直观。这是一个挂载点,用于挂载可移动介质。在历史上,它用于 CD、软盘甚至 Zip 磁盘驱动器。现在,如果你挂载任何虚拟 ISO 或 CD 镜像,它们可以出现在这里,以及 USB 闪存驱动器和其他可移动闪存介质。

/mnt 这是一个更通用的挂载点,你可以在这里挂载可移动介质或整个文件系统。现在,这通常用于存放外部磁盘、NFS 和其他远程文件存储。

这个目录是空的,你可以自行决定在这里挂载什么和如何挂载。

/opt

这是“option”的缩写,最初用于存放任何附加软件包。这些软件包在系统最初发行时并不包含在内,并且需要额外的费用。

如今,这是少数几个可以安装附加软件包的位置之一(无论是否需要额外费用)。在某些情况下,发行版可能根本不使用 /opt,但这是你会找到第三方软件包数据和它们的静态配置文件的一个位置。

/proc

这是一个独特的 Linux 目录。你不会在这里存储任何东西,实际上操作系统也不会在这里存储任何东西。这是 Linux 内核的信息中心。这个目录中的所有“文件”并不是普通文件。它们包含有关进程、内存和其他子系统的度量数据。这些特殊文件就像是窥视内核工作情况的窗口。

通过简单地读取这个目录中的文件,你可以获取一些其他二进制文件获得的相同数据。

/root

这是另一个简单、直观的目录。这是 root 用户的家目录。如果你以 root 用户身份登录到系统上,你会发现你的家目录现在在 /root 而不是预期的 /home/root。这是为了安全考虑,以防万一 /home 被挂载在一个无法访问或更糟糕的破损的远程分区上。

/run

这个目录处理更多的启动和运行时信息。通常你会在这个位置找到进程 ID 或 PID 文件。这些文件描述了进程运行的位置,以便其他程序可以在稍后找到它并控制或引用它。

此外,还可以在这里放置其他临时文件,如锁文件和套接字信息。这个目录旨在保存运行时信息,而不是持久化数据。

/sbin

和 /bin 类似,/sbin 目录也包含了系统所需的可执行二进制文件。不同的是,这个目录中的二进制文件具有特殊的用途。它们都专门用于在系统上执行管理员功能。这意味着它们具有强大的能力,可以对操作系统进行重大修改或维护,因此它们通常存在于这里。

你不会在这里找到像 echo 或 cat 这样的二进制文件。这个目录保留给像 fdisk 或 usermod 这样的工具。

/srv

这是另一个非常通用的目录。这个目录用于存放系统负责“提供”的文件。例如,如果该主机是一个 Web 服务器,你可能会将所有的 HTML 和图像资源放在这里。

/sys

根据你所使用的发行版及其版本的不同,你的系统上可能会有或没有 /sys 目录。这个目录与 /proc 目录类似,它包含设备和内核信息,但以更结构化的格式呈现。

/tmp

又一个简单的目录。这是一个用于临时文件的目录。你可以在这里存储几乎任何你(或程序)喜欢的东西,但不能指望它会一直存在。尤其是在重启之间。

如果你需要暂存一些不重要的数据或检查某个文件的输出格式,将其放在这里是一个选择。额外的好处是,如果你忘记了它,它可能会自动消失。

/usr

这个目录可能需要写一篇专门的文章来介绍。根据 Linux 基金会的 FHS 规范,它被描述为:

“共享的、只读的数据。”

这实质上意味着它应该能够在主机之间轻松传输,并且具有相同的未经修改的结构和层次结构。通常情况下,该目录中不包含任何独特的主机数据。其背后的理念是,/usr 的整体可以以只读模式挂载到另一个系统上而不会出现问题。

然而,在实践中,这个目录确实被用来存储任意的信息。在某些情况下,你会发现文件存放在 /usr/share 或 /usr/local 中。你还会发现程序编译或自定义脚本被放置在 /usr/local/bin 中。

一般来说,建议将不属于前面任何类别的配置或特殊数据存储在我们下一个、也是最后一个目录中。

/var

这是“variable”的缩写,而这里正是保存变量数据的地方。

以下是一些传统上保存在这里的内容:

  • Printer spools
  • Lock files
  • Debian apt and other running program caches
  • E-mail data
  • Logs

/var 目录的主要目的是保存系统在运行时使用和更改的任何动态数据。如果你需要写入日志或在某处保留动态的 .conf 文件,那么你就来对地方了。

此外,还有 /var/local 目录,在我的经验中,它经常成为杂项配置文件和其他不太适合其他类别的数据的综合存储目录。

总结

通过本文,你应该对 Linux 文件系统中的各个目录有了更清晰的了解,知道了它们的含义和用途,以及如何根据不同类型的文件选择合适的位置。Linux 文件系统是一个精心设计的结构,它为操作系统和用户提供了高效、安全、灵活的文件管理方式。掌握 Linux 文件系统的知识,可以让你更好地使用和维护 Linux 系统,也可以避免一些常见的错误和问题。

以上是Linux 文件系统解析:各个目录的作用和用法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:良许Linux教程网。如有侵权,请联系admin@php.cn删除
Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗?Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗?Apr 25, 2025 am 09:10 AM

多年来,Linux软件分布依赖于DEB和RPM等本地格式,并深深地根深蒂固。 但是,Flatpak和Snap已经出现,有望成为应用程序包装的通用方法。 本文考试

Linux和Windows处理设备驱动程序的区别有什么区别?Linux和Windows处理设备驱动程序的区别有什么区别?Apr 25, 2025 am 12:13 AM

Linux和Windows在处理设备驱动程序上的差异主要体现在驱动管理的灵活性和开发环境上。1.Linux采用模块化设计,驱动可以动态加载和卸载,开发者需深入理解内核机制。2.Windows依赖微软生态,驱动需通过WDK开发并签名认证,开发相对复杂但保证了系统的稳定性和安全性。

比较和对比Linux和Windows的安全模型。比较和对比Linux和Windows的安全模型。Apr 24, 2025 am 12:03 AM

Linux和Windows的安全模型各有优势。Linux提供灵活性和可定制性,通过用户权限、文件系统权限和SELinux/AppArmor实现安全。Windows则注重用户友好性,依赖WindowsDefender、UAC、防火墙和BitLocker保障安全。

Linux和Windows之间的硬件兼容性有何不同?Linux和Windows之间的硬件兼容性有何不同?Apr 23, 2025 am 12:15 AM

Linux和Windows在硬件兼容性上不同:Windows有广泛的驱动程序支持,Linux依赖社区和厂商。解决Linux兼容性问题可通过手动编译驱动,如克隆RTL8188EU驱动仓库、编译和安装;Windows用户需管理驱动程序以优化性能。

Linux和Windows之间虚拟化支持有哪些差异?Linux和Windows之间虚拟化支持有哪些差异?Apr 22, 2025 pm 06:09 PM

Linux和Windows在虚拟化支持上的主要区别在于:1)Linux提供KVM和Xen,性能和灵活性突出,适合高定制环境;2)Windows通过Hyper-V支持虚拟化,界面友好,与Microsoft生态系统紧密集成,适合依赖Microsoft软件的企业。

Linux系统管理员的主要任务是什么?Linux系统管理员的主要任务是什么?Apr 19, 2025 am 12:23 AM

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

很难学习Linux吗?很难学习Linux吗?Apr 18, 2025 am 12:23 AM

学习Linux并不难。1.Linux是一个开源操作系统,基于Unix,广泛应用于服务器、嵌入式系统和个人电脑。2.理解文件系统和权限管理是关键,文件系统是层次化的,权限包括读、写和执行。3.包管理系统如apt和dnf使得软件管理方便。4.进程管理通过ps和top命令实现。5.从基本命令如mkdir、cd、touch和nano开始学习,再尝试高级用法如shell脚本和文本处理。6.常见错误如权限问题可以通过sudo和chmod解决。7.性能优化建议包括使用htop监控资源、清理不必要文件和使用sy

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能