C:\
)中可能只有几个重要文件夹(在我的Windows文件系统的逻辑图中,重要的意思是重要)。即Program Files
和Windows
。我只是远离Windows
文件夹,“添加删除程序文件”足以应付Windows的program files
文件夹。当然,有一个名为Users
的文件夹,用户(不是管理员)只能访问他们的文件夹。因此,我对Windows文件系统有一个清晰的了解。在Ubuntu中,当我到达
/
位置时,会有大量的文件夹列表,其中的大多数文件夹都不知道它们包含的内容。 /bin
文件夹似乎等同于Windows中的Windows
文件夹。 /usr
文件夹似乎等同于Windows中的Users
文件夹。但是,即使/home
文件夹看起来也很合适。请理解,我确实知道,Ubuntu(Linux)具有与Windows不同的特征,即不必完全等效。 Ubuntu中的Windows函数集。我要寻找的只是对Ubuntu文件系统更清晰的了解。
这个问题是一个更大的问题的一部分,我将其分解以使其更加负责。原始问题可以在这里找到:http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/
#1 楼
您可以在维基百科上对此进行阅读。摘录:文件系统层次结构标准(FHS)定义了Linux操作系统中的主目录及其内容。在大多数情况下,它是对传统BSD文件系统层次结构的形式化和扩展。FHS由Linux基金会维护,Linux基金会是一个由主要软件和硬件供应商(例如HP,Red Hat)组成的非营利组织。 ,IBM和Dell。
当前版本为3.0,于2015年6月3日发布。
带有简短描述的直观表示形式:
基本上Linux具有根据所需的功能对目录结构进行了划分,以使系统尽可能安全并以所需的最小权限进行分配。否则,某些人将不得不做很多可避免的工作。
请记住,Unix和Linux是作为多用户系统创建的,而Windows是为单个用户创建的。其他一切都可以从这个想法中得到解释。您可以在考虑每个目录具有多用户和安全性时对其进行解释。
3个示例:
您将看到,仅属于admin的文件和目录收集在目录中。同一目录:
/sbin
和/usr/sbin
和/usr/local/sbin
中的s代表系统。普通用户甚至无法启动其中的程序。普通用户可以启动的文件位于/ 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位多库发明。绝不是静态概念。其他Linux风格对此布局进行了调整。例如;当前,您会看到Debian和Ubuntu在FHS布局上发生了很大变化,因为使用只读文件可以使SSD更好。正在朝着新的布局方向发展,其中文件被分为“只读”和“可写”目录/组,因此我们可以拥有一个可以挂载为只读(ssd为分区)和可写的根分区。 (SATA HDD)。
用于此目的的新目录(不在图像中)是
/run/
。评论
+1风云我喜欢这张图片,实际上是在寻找一张。
–路易斯·阿尔瓦拉多(Luis Alvarado)
2012年5月17日在18:23
哈以为会引起注意:+ @LuisAlvarado
–灵风
2012年5月17日18:24
没有更好的答案!
– Shashank Sawant
2012年5月18日20:44
/ mnt几年前不是现在的/ media吗?
– RobinJ
2012年5月23日上午10:47
@RobinJ:区别在于/ mnt历来是手动管理的。随着许多瞬态设备(闪存驱动器等)的兴起以及自动安装成为标准,需要自动处理安装点。为了避免与现有手动配置冲突,需要一个新目录。因此,/ mnt如今已沦为提供方便的临时挂载点的角色。
–斯科特遣散费
2012年5月23日11:06
#2 楼
尝试一下此命令...man 7 hier
您也可以在这里查看此手册页:http://manpages.ubuntu.com/manpages/en/man7/ hier.7.html
希望对您有所帮助
评论
好决定!我总是忘记了它总是存在的(即使当网络中断时也是如此))
–灵风
2012年5月17日在20:01
男人应该重命名为“ it”。 :)))
– Apache
2013年1月1日23:11
man hier现在是我最喜欢的命令之一!对于我来说,这些解释比FHS doco更为清晰,特别是对于经验不足的Ubuntu用户而言,区别于“本地机器”和“站点范围”,这与中等的DOS / Windows体验有所不同。
– WillC
17-4-6在0:39
顺便说一句,第7层是手册页的其他部分。
–巴勃罗·比安奇(Pablo Bianchi)
18年1月27日在22:53
嗯。值得一提的是,这种提醒使我想起了仅链接的答案,即使ubuntu的每个版本都有可能具有此功能。您可以将手册页中的某些内容合并到答案中吗?
– jrh
18年15月15日在18:25
#3 楼
后一个答案-我为初学者创建了一个路线图。如果他们正在寻找文件但不知道在哪里寻找,则可以使用地图进行大致导航。您可以在此处下载高分辨率PNG。您可以在此处找到相关的帖子。如果时间允许,我会继续更新文件和帖子,并附上有用的评论。评论
产生流程图的有趣且有用的想法,但不幸的是,它似乎有些死胡同。我的问题是我是否要执行mysqldump并将文件输出到哪里?
– BadHorsie
15年12月17日在17:20
@BadHorsie当然总是取决于您的特定用例,但是将其转储到/ home / badhorsie / mysqldump目录中就足够了。如果您正在运行许多应用程序,则可以创建一个新用户来运行每个应用程序并将其转储到该应用程序/用户的主目录中。
– d4nyll
15年12月19日在15:58
伟大而有用的插图!谢谢。但是我有一个问题。如果既不是从源代码安装的,也不是使用程序包管理器安装的,那是什么?您已经说过,它进入/ usr,而FHS文档强调,切勿在/ usr中安装本地软件,因为它可能在系统升级中被覆盖,而应改用/ usr / local。
– aderchox
20-04-19在23:34
#4 楼
以下文本显示了目录结构。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
这里的主要组件是:
/boot
:包含引导加载程序/home
:包含用户的主目录。/bin
:系统上所有用户使用的所有可执行二进制文件和命令都位于此处。/sbin
:它包含通常使用的系统可执行二进制文件/lib
:包含支持/ bin和/ sbin中的二进制文件的系统库。/etc
:包含网络,启动时间等的配置文件。/dev
:其中显示了设备文件,例如usb,终端设备或连接到系统的任何其他设备。/proc
:包含有关进程运行的信息。/tmp
:这是许多进程创建的临时目录所需的临时文件。 有关更多详细信息,Thegeekstuff链接可以完美地解释通用的linux文件系统。
#5 楼
\Users
等同于/home
。 /usr
的名称是历史人工制品。\Windows
和\Program Files
的组合等效项是/bin
,/boot
,/etc
,/lib
,/sbin
,/tmp
,/usr
和/var
的组合。 Linux和Windows以不同方式拆分已安装的软件。 Windows区分操作系统和配套程序。 Linux的区别并不相同。大多数(如果不是全部)软件都是通过Ubuntu(发行商)提供的,并且安装在同一目录层次结构中,并且由于软件包管理器会跟踪软件,因此无需将每个程序存储在其自己的目录中。在Linux上:/etc
用于系统配置文件:影响所有用户的配置文件,无论它们适用于整个操作系统还是特定的应用程序。 br /> /usr
用于系统代码和数据(程序,库,文档等)。/var
用于可变或临时数据:临时文件,日志,程序包管理器数据库,打印机线轴,游戏保存文件等。还有/tmp
用于临时文件,可在重新启动后将其擦除。/bin
,/lib
和/sbin
在根目录中具有对应的文件。 /usr
外部的文件是引导过程早期所需的文件。这是磁盘很小且/usr
可能位于网络上多个工作站之间共享的文件系统上时的遗物,在大多数系统上这并不是真正有用的区别。/usr
包含一些仅用于引导操作系统而不是日常操作所需的文件。还有其他目录与Windows所拥有的不对应:
/boot
是根用户的主目录。 root用户是不与任何特定用户绑定的管理员帐户。运行/root
时将您更改为该用户。 Ubuntu默认情况下不让root用户登录。sudo
和/media
是挂载点:它们是您可以查看其他操作系统和远程驱动器文件系统的位置。 Windows等效于其他驱动器号。/mnt
和/proc
显示系统信息。在Windows上,您需要浏览菜单或调用系统命令或安装第三方程序才能查看此信息。Ubuntu与其他Linux发行版一样,通常遵循Linux Filesystem Hierarchy Standard。
#6 楼
Ubuntu(像所有类似UNIX的系统一样)将文件组织在一个分层的树中,在子树和父树的团队中考虑关系。目录可以包含其他目录以及常规文件,它们是树的“叶子”。树的任何元素都可以通过路径名进行引用。绝对路径名以字符/开头(标识包含所有其他目录和文件的根目录),然后列出必须遍历才能到达该元素的每个子目录,每个子目录均由/符号分隔。相对路径名不能以/开头。在这种情况下,将从给定的点开始遍历目录树,该点根据上下文而变化,称为当前目录。在每个目录中,都有两个称为的特殊目录。和..分别指目录本身及其父目录。
所有文件和目录都具有相同的根目录这一事实意味着,即使系统上存在几个不同的存储设备,将它们安装到树上之后,它们也都被视为树中的某个目录。理想的地方
在此处查找示例和更多信息:
评论
另请参见Unix和Linux上的目录结构标记。所有Linux发行版都遵循相同的模型。感谢您的所有答复。我对以下几点感到有些困惑:在Windows中,安装程序通常会通过提示符提供一个选项,供所有用户安装软件。如何在Ubuntu中进行区分?同样,这是在将开发软件配置为其IDE时的常见问题。例如,在Windows中,“程序文件\ miktex \ bin”中存在文件“ pdflatex.exe”。因此,我可以将IDE指向此文件并进行配置。在Ubuntu中如何进行此过程?与软件关联的通用二进制文件在哪里(从配置的角度来看,尤其是从配置角度来看)?
在Ubuntu中,通常为所有用户安装软件。您通过软件包管理器执行的所有操作均适用于所有用户。我不理解您的其余评论。不会“配置”“与软件关联的二进制文件”。您应该将其作为一个单独的问题提出,并对您要做什么进行更好的解释。
得到它了。我将提出一个新问题。即便如此,这里还是我的意思的简短解释:在Windows中,可以轻松定位.exe文件。例如:“ C:\ Python27 \ python.exe”。所以我知道程序从哪里开始。现在,如果我必须使用Eclipse IDE,我可以简单地将其指向python.exe,这就是我所说的“配置”。我为Python配置了IDE。在Ubuntu中,程序的安装位置在哪里?那仍然让我回避。
@Gilles说全部时要小心。实际上,GoboLinux项目使用的是类似Windows的目录结构。