Linux文件系统层次结构中的默认目录是什么意思?


41

安装了各种Linux发行版进行修补后,我对安装程序提供分区布局感到困惑-为了简便,我只使用了整个可用磁盘空间。

提供的某些分区具有神秘名称,包括/ varswap/ usr/ home。安装程序并没有真正向我解释这些-它们的作用是什么?应该使用哪个(如果有)?

Answers:


61

有关目录名称的简要答案:man hier在终端中输入“ ” :)

这是文件系统层次结构的手册页,其中解释了目录名称的一般用途及其所包含的内容。您可以在此处查看网络版本

Wikipedia上还有更多阅读内容:

这些链接将解释有关哪些分区称为什么以及它们用于存储(或过去使用)的所有内容。

有关使用单独的分区而不是仅使用同一分区中的目录的答案又回到了可维护性和可扩展性。如果你有一个磁盘分区,也就是说,//home其上,Joe用户可以填补他的/home/joe文件夹,整个机器将运行的磁盘空间而停止工作了(我这里简化,但这是一般的结果)。如果您在不同的分区上,/并且有/home不同的分区,Joe User可以填满他的/home/joe文件夹,并且该/home分区将已满,但是由于/不受影响,计算机将继续运行。

因此,将该原理扩展到位于不同分区上的几乎所有不同目录,您将看到它的用处,特别是当计算机以多用户和多服务角色运行24/7时。


12
+1 man hier教男人钓鱼和所有其他。
乔治·玛丽安

是的,感谢您指向hier(7)的指针。我一直在访问FHS网页,却不知道自己有更容易获得的答案。
andol 2010年

问题是,尽管在解释了它们的预期用途之后,但实际上默认情况下某些不是像/ srv目录中那样使用的。
Ronaldo Nascimento 2012年

7

安装时,许多发行版都提供了将不同目录放在不同分区上的选项。例如,许多用户选择将/ home目录放置在与其余安装不同的分区上。这是因为/ home目录中的所有内容都属于一个用户-文档,视频和所有其他特定于用户的数据都在此处。通过将/ home目录放在一个单独的分区上,并将实际的OS文件放在另一个分区上,如果用户决定重新安装Linux操作系统,则他可以重写主分区并保留/ home分区(以及所有文件)。

这还允许用户在不同的分区上安装多个Linux发行版,它们都共享相同的/ home分区。这样,无论使用哪种Linux版本,用户都可以访问其文件。

临时用户不必真正担心分配单独的/ var,swap,/ usr等。所有这些目录都是OS的一部分,与用户的文件无关。


+1为良好的链接。/ swap是否总是一个单独的分区?
乔治·玛丽安

@乔治·玛丽安:不需要。可以配置文件系统交换(这是现有分区的文件系统内部的文件)而不是分区交换。这样,Ubuntu系统可以在一个分区上工作。
txwikinger 2010年

3
对于那些在家中玩游戏的人来说,值得注意的是,在常规文件系统上使用交换文件的能力取决于文件系统。IE:不要使用btrfs尝试此操作,它会(在较旧的内核中)允许您无提示地破坏数据,并且(在较新的内核中)允许您尝试添加交换时出错。
RAOF

5

对于个人计算机,使用整个可用磁盘空间是一个完全有效(并且可能是建议的选择)的选项。在我看来,对文件系统进行这样的分区是在RAID或虚拟卷管理在软件中实用之前的远古时代的产物。

在类似UNIX的系统中,文件系统从根目录“ /”开始。在DOS / Windows中,术语为“ C:”

在DOS / Windows中,您添加驱动器以潜水字母D:,E:等。在类似UNIX的系统中,您将驱动器“装载”到目录中。当您拥有10或10兆字节的硬盘驱动器时,您可以在不同的驱动器和分区中挂载各种目录,以产生单个大型驱动器的错觉。几乎是一个穷人的RAID 0。

有许多原因可以划分出各个根目录,但是一个流行的想法是,由于swap和/ var分区写入的次数最多,因此它们出现故障的可能性最高。通过将它们分成不同的分区,只需从备份中添加另一个驱动器并重新安装它就非常容易。

如果您在一台机器上运行多个版本的linux,那么拥有一个单独的/ home分区也非常有用。(例如Ubuntu和Red Hat)。由于Unix / Linux程序将用户的设置放在他或她的主目录中。但是,这在理论上比在实践中要好得多。因为您需要彻底了解权限的含义。

这是一些用于类UNIX操作系统的重要目录及其说明。

  • /bin -基本的系统可执行文件
  • /lib -基本的系统库(在Linux中为.so,在Windows中为.dll)。
  • /boot-您的内核所在。没有这个计算机就无法启动。
  • /var-目录服务可以存储文件。像日志文件和邮箱
  • /etc -系统配置文件
  • /usr-非必需的用户应用程序。(unix系统可以在没有/ usr的情况下进行引导(出于恢复目的),但这不是很有趣。在较旧的系统中,它与/ home相同。)
  • /home-用户的主目录。普通用户只能写入自己的主目录。
  • 交换(不是目录)这在UNIX中通常是一个单独的分区。尽管可以在Linux中创建交换文件,但没有交换目录。

2
我想说,即使对于台式机/个人计算机,在单独的分区中放置/ home也是一个好主意。这样,如果您填写自己的主目录,您的头痛就更少了。
乔治·玛丽安

@George没有什么可以阻止您符号链接到另一个驱动器上的主目录。在我的设置中,为了允许与Windows兼容,我的主分区是NTFS,并且我将使用的任何文件夹符号链接到主文件夹中。我会符号链接整个文件夹,但我希望将隐藏的内容放在〜/分开,以防万一我决定进行全新安装。使用链接到单独分区的硬编码文件路径可能在20年前是必需的,但是使它们成为必需的体系结构约束今天并不存在。
Evan Plaice 2010年

1
@evan我很困惑。您是指将目录符号链接到您的主目录中还是将您的主目录符号链接到其他地方?然后将/ home设置为其他分区有何不同?(请注意,“不同的分区”可能位于完全不同的驱动器上。)我指的是防止默认行为(例如,将下载内容放置在主文件夹的子目录中)无意中填充了根分区。
乔治·玛丽安

@George以及您喜欢的任何一个。我要说的是,为什么要在系统安装过程中设置硬编码链接,而之后您只需简单地插入几个符号链接就可以完成相同的操作,并且可以随时轻松地对其进行更改?
Evan Plaice 2010年

@evan一个公平的观点。安装之后,我从来没有碰过这种东西,因此我一直很乐意以“默认”方式进行操作。
乔治·玛丽安


1

交换分区也用于休眠。如果要将笔记本电脑或台式机置于休眠状态,则需要足够大的交换分区或交换文件来容纳正在运行的操作系统和打开的应用程序。

通常建议交换分区的大小与RAM内存相同。


1

您可以在安装过程中创建单独的分区。一个/home分区将意味着每次你安装Ubuntu的个人用户设置将保持不变。

/-是根。
/var-(如上所述)
/dev-包含指向已注册设备的“链接”。即/ dev / Video0是一个捕获卡...

/bin /sbin -包含应用程序

更好的是Wikipedia的页面很棒http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

我发现最大的东西是为您的东西提供第二个分区(最大的分区),就像我每次重新安装或升级时所说的那样。再次选择该分区,并确保取消选中格式框,然后一切恢复正常。甚至您的墙纸!


1

好吧,swap是用来交换空间的。这就像Windows中的页面文件。它有点补充RAM。

/home 用于用户数据,例如Windows中的“我的文档”,

/usr 是大多数程序都类似于C:\ Windows的地方,并且

/var 包含系统正常运行时更改的数据。

至于为什么它们位于单独的分区中,我认为主要是如果您的操作系统出现故障,而您的数据却没有随之下降。但是我真的不确定。


/varvs 之间有/etc什么区别?
Pacerier's

1

从历史上看,最佳实践是让/homeswap和其他关键节点驻留在不同的分区,不同的物理磁盘甚至不同的物理计算机中。尽管为方便起见(不管是好是坏),并且随着廉价的外部备份或基于云的备份的出现,现在所有内容都位于一个大分区中,您只需将个人物品备份到其他地方即可。

/usr,代表Unix系统资源

/sbin,系统二进制文件

与普遍的看法相反,/etc它并不代表等等。相反,它代表Extended Tool Chest。但是,与流行的看法相反,这仍然是一个辩论的问题。

这是有关这些文件夹及其组织方式的更多信息


0

如果使用交换,则应单独保存。并使用1.5-2.0 x您的ram大小。

其余的可以放在一起,并不重要(Linux / Unix不是Windows,并且具有单一目录层次结构,无论您的/ var目录是单独的分区,还是看起来完全一样)。分区的主要目的是使用不同的文件系统并拆分可能的“磁盘已满”方案(例如,如果/ var填充了某些疯狂应用程序的日志,则/ home stil可以工作)

作为附带说明,我强烈建议使用LVM,该LVM允许创建任意数量的可自由调整大小和可移动的分区,甚至可以向该系列中添加新的硬盘。尽管如此,它仍然需要学习一些命令行,因此对于整个初学者来说并不是。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.