如何理解Ubuntu文件系统布局?

在Windows中,安装驱动器中可能只有几个重要的文件夹(重要的是我在Windows文件系统的逻辑图片中很重要)(在我的例子中为C:\ )。 即Program FilesWindows 。 我只是远离Windows文件夹,“添加删除程序文件”足以处理Windows的program files夹。 当然,有一个名为Users的文件夹,其中用户(不是管理员)只能访问其文件夹。

因此,在我的脑海中对Windows文件系统有一个清晰的画面。 在Ubuntu中,当我到达位置/ ,有一个巨大的文件夹列表,其中大多数我不知道它们包含什么。 /bin文件夹似乎相当于Windows中的Windows文件夹。 /usr文件夹似乎相当于Windows中的Users文件夹。 但即使是/home文件夹看起来也符合要求。

请理解我的理解是,Ubuntu(Linux)具有与Windows不同的特性,即在Ubuntu中不需要与Windowsfunction完全等效。 我正在寻找的是Ubuntu文件系统的更清晰的图片。

这个问题是一个更大的问题的一部分,我正在分裂,以使其更负责任。 原始问题可以在这里找到:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/

您可以在维基百科上阅读此内容。 摘录:

文件系统层次结构标准 (FHS)定义Linux操作系统中的主目录及其内容。 在大多数情况下,它是传统BSD文件系统层次结构的forms化和扩展。

FHS由Linux基金会维护,Linux基金会是一个由主要软件和硬件供应商组成的非营利组织,如惠普,红帽,IBM和戴尔。 当前版本是3.0,于2015年6月3日发布。

具有简短描述的视觉表示:

在此处输入图像描述

基本上,Linux根据所需的function划分了目录结构,使系统尽可能安全,并且所需的权限最少。 否则,某人必然会做很多可以避免的工作。

请记住,为单个用户创建了作为多用户系统和Windows的Unix和Linux。 其他一切都可以从这个想法中解释出来。 在考虑它是多用户和安全性时,您可以解释每个目录。

3个例子:

  • 您将看到仅管理员的文件和目录收集在同一目录中: /sbin/usr/sbin的s和/usr/local/sbin代表系统。 普通用户甚至无法启动其中的程序。 普通用户可以启动的文件位于/ bin,/ usr / bin,/ usr / local / bin中,具体取决于逻辑上应该驻留的位置。 但如果他们只是管理员,他们应该去那个目录的s版本。 有一个名为fuser的着名实用程序。 你可以用它杀死进程。 如果普通用户可以使用这个,他就可以杀死你的会话。

  • /home :/ home / user1是user1的属性。 / home / user2是user2的属性。 user2没有业务在user1的家中做事(反过来也是如此:user1没有业务在user2的家里做事)。 如果所有文件都在/ home中没有用户名,则必须为每个文件授予权限,并评估是否允许某人写入/删除这些文件。 如果你有几十个用户,那就是噩梦。

  • 关于图书馆的补充 。

    /lib//usr/lib//usr/local/lib/是原始位置,从multilib系统存在之前和存在以防止破坏事物。 /usr/lib32/usr/lib/64/usr/local/lib32//usr/local/lib64/是32/64位multilib发明。

无论如何,它不是一个静态的概念。 其他Linux风格调整了这个布局。 例如; 目前你会看到debian和Ubuntu在FHS的布局上发生了很大的变化,因为SSD的读取文件更好。 有一个向新布局的运动,其中文​​件被分成“只读”和“可写”目录/组,因此我们可以有一个可以只读(ssd的分区)和可写的根分区(sata hdd)。 用于此目的(不在图像中)的新目录是/run/

试试这个命令……

 man 7 hier 

希望能帮助到你

迟到的答案 – 我已经为初学者制定了路线图。 如果他们正在寻找文件但不知道在哪里查看,他们可以使用地图粗略浏览。 您可以在这里下载高分辨率PNG。 你可以在这里找到相关的post。 我会在时间允许的情况下不断更新文件和post,并加入有用的评论。

以下文本显示了目录结构。

 mtk4@laptop:/$ pwd / mtk4@laptop:/$ tree -L 1 . |-- bin |-- boot |-- cdrom |-- dev |-- etc |-- home |-- lib |-- lost+found |-- media |-- mnt |-- opt |-- proc |-- root |-- run |-- sbin |-- selinux |-- srv |-- sys |-- tmp |-- usr |-- var 

这里的主要组成部分是:

  1. /boot :包含引导加载程序

  2. /home :包含用户的主目录。

  3. /bin :系统中所有用户使用的所有可执行二进制文件和命令都位于此处。

  4. /sbin :这包含系统管理员通常使用的系统可执行二进制文件。

  5. /lib :包含支持/ bin和/ sbin中的二进制文件的系统库。

  6. /etc :包含网络,启动时等的配置文件。

  7. /dev :这里有设备文件,即usb,终端设备或连接到系统的任何其他设备。

  8. /proc :包含有关正在运行的进程的信息。

  9. /tmp :这是许多进程创建所需临时文件的临时目录。 每次启动机器时都会清除它。

有关更多详细信息, Thegeekstuff链接完美地解释了通用linux文件系统。

\Users相当于/home/usr的名称是历史文物。

\Windows\Program Files的组合等价物是/bin/boot/etc/lib/sbin/tmp/usr/var 。 Linux和Windows以不同方式拆分安装的软件。 Windows区分操作系统和配套程序。 Linux没有以同样的方式做出这种区分; 大多数(如果不是所有)软件都通过Ubuntu(分发服务器)来安装并且安装在相同的目录层次结构中,并且由于软件包由管理器管理器跟踪,因此不需要将每个程序存储在它自己的目录中。 在Linux上:

  • /etc用于系统配置文件:影响所有用户的配置文件,无论它们是作为整体应用于操作系统还是应用于特定应用程序。
  • /usr用于系统代码和数据(程序,库,文档等)。
  • /var用于变量或临时数据:临时文件,日志,包管理器数据库,打印机假脱机,游戏保存文件等。还有/tmp用于可以在重新启动时擦除的临时文件。
  • 根目录中的/bin/lib/sbin/usr具有对应项。 /usr之外的文件是引导过程早期需要的文件。 这是从磁盘很小并且/usr可能位于通过网络在多个工作站之间共享的文件系统时的遗留物,它在大多数系统上并不是真正有用的区别。
  • /boot包含仅用于引导操作系统所需的一些文件,而不适用于日常操作。

还有其他目录与Windows具有的任何内容都不对应:

  • /root是root用户的主目录。 root用户是一个与任何特定用户无关的管理员帐户; 它是您运行sudo时更改为的用户。 默认情况下,Ubuntu不允许root用户登录。
  • /media/mnt是挂载点:它们是您可以看到其他操作系统和远程驱动器的文件系统的地方。 Windows等效的是其他驱动器号。
  • /proc/sys显示系统信息。 在Windows上,您需要浏览菜单或调用系统命令或安装第三方程序以查看此信息。

与其他Linux发行版一样,Ubuntu通常遵循Linux Filesystem Hierarchy Standard 。

Ubuntu(像所有类UNIX系统一样)在分层树中组织文件,其中关系被认为是儿童和父母的团队。 目录可以包含其他目录以及常规文件,它们是树的“叶子”。 树的任何元素都可以通过路径名引用; 绝对路径名以字符/(标识根目录,其中包含所有其他目录和文件)开头,然后列出必须遍历以到达该元素的每个子目录,每个子目录用/符号分隔。

相对路径名是不以/开头的名称; 在这种情况下,从给定点开始遍历目录树,该点根据上下文而变化,称为当前目录。 在每个目录中,都有两个名为的特殊目录。 和..,分别指向目录本身及其父目录。

所有文件和目录都具有公共根的事实意味着,即使系统上存在多个不同的存储设备,一旦将它们安装到所需位置,它们都被视为树中某处的目录

在此处查找示例和更多信息 :