Linux文件系统


13

Linux中文件位置的约定是什么?到目前为止,我已经推断出:

/ proc(对正在运行的进程的引用)

/ dev(对所有硬件的引用)

/ etc(配置文件)

/ home(家庭)

/ mnt(安装的设备)

/ media(可移动设备,如CD,USB磁盘)

...但是其他部分仍然不清楚,例如:

我将下载的源代码放在哪里?

/ usr / src

/ usr / local / src

我将编译好的程序放在哪里?

/箱

/ usr / bin

/ usr / local / bin

/ bin/ sbin有什么区别?

分布有何不同?

我意识到这些不是一个问题,但是在我看来,它们应该一起回答。希望其他人也感到困惑。

Answers:


14

您可能需要阅读文件系统层次结构标准;这是一个有用的参考。

您的主目录是其中大多数目录。假装您不是系统管理员;假装您是另一个在系统上拥有帐户的人。在您的主目录中,例如/home/pufferfish,您可以做任何您想做的事情。 /home/pufferfish/bin/home/pufferfish/lib/home/pufferfish/src都是常规选择,但实际上都不重要

对于已编译的程序,无论使用哪个目录/目录,请确保其位于PATH上,以便您可以实际运行它们而无需键入脚本或可执行文件的整个路径。

分布之间的差异并不大。我发现一个包管理器可能在中安装二进制文件/usr/bin,而某些库可能会在其他地方安装,而另一个系统可能在另一个地方安装东西。我通常必须做一些研究,以找出每次发生的情况。


6

碰巧的是,在类似Unix的OS世界中,有一个称为文件系统层次结构标准的标准,它解释了大多数 Unix供应商遵循的最佳实践。如果您在* nix环境中花费大量时间,这是一本很好的读物,非常值得一读。

文件系统层次结构标准

您的问题的答案:

/ usr / src和/ usr / local / src都可以工作。你的选择。只是保持一致。

/ bin是用户必需的命令。我不会在此处放置自定义二进制文件。

/ sbin用于系统二进制文件(通常是sysadmin的东西)。它包含用于引导和fs utils的内容。

/ usr / bin是大多数用户命令所在的位置,通常您会发现大多数Linux软件包管理系统都在此处放置二进制文件或至少指向二进制文件的符号链接。

/ usr / local / bin是放置您自己的编译代码的安全地方,该代码对于该计算机是唯一的。



3

/ usr / local /用于在此系统上编译的软件。它与/ usr /类似,只是它不是从软件包中安装的。

/ sbin / vs / bin /(和/ usr / sbin / vs / usr / bin):s表示超级用户。普通用户不关心并且经常不应该具有运行权限的程序

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.