Linux等效于Windows注册表


57

Linux相当于Windows Registry?如果Linux中没有等效或相似的结构,那么Windows注册表中完成的工作如何在Linux中处理?

Answers:


54

Linux应用程序通常将其配置存储在特定于该应用程序的基于文本的文件中。机器特定的配置通常存储在/ etc目录树中。用户特定的设置通常位于用户的主目录中,并且通常位于以“。”开头的“隐藏”文件中。(使用“ ls -a”查看它们)。


5
我们还可以补充一点,这些文本文件是人类可读的,并且通常在其中包含描述特定配置项的注释。因此,当您需要更改某些内容时,文档通常就在您面前。您也可以添加自己的注释,例如更改原因的原因。Windows注册表不包含此类“元数据”。
基思

当然,此答案是有缺陷的,因为注册表的目的不是保存设置而是向操作系统注册dll和Shell扩展之类的组件。在其中存储程序配置对此不满意。
亚当·凯西

12
不确定“皱眉”,但它是定期进行的。大多数MS程序和许多第三方都在其中存储配置数据。
uSlackr

7
@Dotmister:这确实是它的目的……在Windows 3.1时代。从32位Windows(95和NT)开始,注册表变成了用于配置数据数据库
grawity 2011年

嘿...所以Linux本质上是Windows注册表旨在防止的工作?
Iszi 2013年

11

/proc 用于内核相关的东西

/etc 用于软件相关的东西

Gnome配置也可以被视为类似于Windows注册表。

但是,由于Linux和Windows的核心理念截然不同(Linux是开放且兼容的,Windows是封闭且阻碍性的),因此没有直接的相似之处。

编辑:对于那些不同意的人,这是您的一些历史记录:http : //www.faqs.org/docs/artu/(真棒阅读,无论您的背景如何)


28
我不认为软件设计理念与配置存储的特定实现的特殊性有关。之所以没有直接的相似之处,是因为它们本质上是不同的体系结构,而不仅仅是因为微软讨厌自由。
井2011年

8
@Shinrai Unix(和Linux)的基本设计理念是使用标准化的文本格式。Windows注册表是专有的二进制格式。“微软讨厌自由”在这里完全没有上下文。Windows被设计为尽可能与Unix不兼容,并忽略了所有可能的国际标准(在创建它自己的同时)。这是古老的历史,但这就是Windows注册表的来源。
Let_Me_Be 2011年

7
@Let_Me_Be-对不起,您的措辞让我觉得您的意思是“开源是最好的!微软是邪恶的化身!” 就像网络上的许多* nix狂热分子一样,而不是讨论内容的字面格式。撤回了评论,但您可能需要改写一下,因为有些人似乎像我一样阅读了该评论。(我认为“阻碍性”在这里尤其给人以错误的印象。)
Shinrai 2011年

12
@Let_Me_Be:标准文本格式?你一定是在开玩笑。Windows有很多缺点,但是通用的注册表API是它做得很好的一件事。
grawity 2011年

7
@Let_Me_Be:这个词是“标准的”,而不是“已记录的”。我宁愿分发一个.reg文件(或.ini.xml.json,无论你想)在X光机比有正则表达式的地狱的二十个不同的配置文件/etc/,同时试图改变整个网络的设置,但保留无关本地添加...而你找不到Windows注册表配置单元的详细说明,它们的结构 也不是完全秘密
释放烈火

7

系统范围的设置位于的文件中/etc,每个用户设置通常位于用户主目录中的隐藏文件(从w开始)。有关特定程序的更多信息,请参见手册页- man [program name]


可能要提及.*rc用户主目录中的文件。/etc只是系统范围的东西。
Mike DeSimone

5

大多数应用程序使用基于文本的配置文件(通常每个程序都有其自己的格式,尽管某些程序使用XML或JSON)。系统范围的配置保存在/etc

用户配置通常存储在用户的主目录中,即所谓的“点文件”(以“ .开头的文件名;用于ls -a显示它们)。为了避免“dotfile蠕动”,最近计划已开始保持它们的配置在~/.config/XDG基本目录规范。

各种桌面环境都有自己的类似于注册表的API:GNOME中已弃用Gconfdconf / GSettings(新);Xfce中的Xfconf


3

它在Linux上拆分。没有一个地方。

对于用户运行的程序,如果它是文件,则通常位于$ HOME / .someprogramrc中;如果复杂到足以保证子目录的位置,则通常位于$ HOME / .somedirname中。我相信KDE应用程序都可以找到$ HOME / .kde的子区域,通常不会生成自己的目录。

列出目录的常见操作是将以开头的文件.视为隐藏文件,因此您需要ls -A从命令行使用或使用show hidden filesgui 的设置。

对于由系统运行的程序,它通常是某个地方的文件/etc/,等等中没有真正的命名约定,尽管目录通常.d在最后以表示。

对于内核,它位于中/etc/sysconfig.conf,或者是/etc/init.d中的启动脚本,该脚本写入/ proc / sys / *

大多数系统配置都/etc可以使备份系统变得更加容易。仅保存配置文件而不保存二进制文件,/etc/因此往往很小。


0

linux中没有注册表。但是您应该看一下gconf-editor和dconf-editor ...以及主目录中的隐藏文件/文件夹(名称以点开头),主要是普通(TXT)文件,其中包含特定程序的某些配置。


-1

Windows注册表的创建是为了使各种.ini文件和操作系统和程序的其他配置文件自动化,以便加载得更快。注册表中的所有信息也都包含在计算机的其他位置,但如今,它们通常已被写保护。Linux使用Vi(可视编辑器)或其他编辑器来访问Linux中的这些配置文件以对其进行编辑。


2
您好,欢迎访问superuser.com。尽管我相信您要告诉发布者的信息是正确的,但回答中并不能很好地体现出来。除非您对Linux和Windows的工作方式有一个不错的了解,否则我相信很难理解您要达到的目标。请重新思考并重写您的答案,以便任何人都可以理解。
Mogget 2013年

-1

Windows:-将数据存储在目录层次结构中的文件中-这些文件类似于上述的.dll和其他支持文件-然后通过数据库(注册表)之类的管理系统来管理文件,以便与用户进行更轻松的交互。-这意味着我们可以单击并单击,但是以易于使用的名义将大量的数据记录在后台,以便于使用,更快的可访问性和不必要的数据存储。

Linux:-文件存储在单独的分区中(我们必须记住,在Linux中,我们可以更直接地访问硬件,包括屏幕-所有内容都可以通过CLI进行访问)。-这些文件位于已经存在的目录层次结构中(在OS的存储系统中,类似于Windows,但不仅由文件夹分隔)-文件更具可读性,更易于访问,但需要了解CLI才能能够利用它们。

主要区别:Windows将数据库“层”添加到OS接口以管理来自用户,系统等的交互。这使得使用GUI来访问和执行所有操作“更加容易”,但同时也使用户和系统大多数功能高度依赖于此数据库系统。另一方面,Linus允许直接与组件交互,这意味着您必须知道要键入的“语言”才能代替Windows的点击方法。是的,您可以通过Windows使用CLI,但是您并没有真正将Windows与Linux进行比较。不同之处在于用户如何访问数据,系统如何利用数据以及Windows如何简单地(通过系统)添加更多“管理”以产生“轻松”

评估自己是CLI / Linux环境的新手,这是可以理解的比较,但是当您首先应用这两个系统的意图时,这更有意义。Linux并不是在“通过集成注册表来颠覆Microsvck所做的尝试”,而是通过消除用户与硬件之间的抽象层来为用户提供更多功能。

想像一下,想想一台打字机。您按下按键,它们移动齿轮,然后将墨水锤击到纸张上以产生数据。在Linux中,用户输入命令以与系统内核交互以在硬件中执行操作。在Windows环境中,用户和硬件之间具有更多潜在层。应用程序可以调用与OS通信的命令,与OS通信的命令与系统/内核接口,然后与硬件一起工作。在Windows中,随着更多变量输入方程式,该过程变得更加复杂,例如命令必须与注册表进行交互才能在执行任务之前检索信息...这就是Windows使用更多资源来运行,执行基本操作和执行操作的原因。复杂的任务。预加载的服务和流程将被加载,以允许管理Linux要求用户调用的功能。是的,有一些进程在Linux中运行,但是我试图给出一个基本的概念,即系统之间的差异,以便更好地显示为什么其他一些注释不准确的原因。使用Linux的想法是最大程度地减少用户与硬件之间的接口,使事情变得更简单,更混乱。Windows为用户量身定制并试图以更易于访问的方式包含更多功能,但这是以复杂的管理系统为代价的(这很容易变得混乱和成问题)。注册表还可以提供所有物理连接以及与刚刚保存的硬件(除非由用户/程序清除)的其他物理交互的数字跟踪。一世' 与在Windows中清理需要定期清理的多个/很多斑点(以及可能会导致注册表出现BIG问题的潜在风险)相比,d希望我具有不使用时可以手动删除的可读文件。它只是管理幕后事物并建立更多用户无法存储的数字记录的另一层。

不幸的是,许多用户只能使用Windows,而在试用之前却过于担心Linux。有很多口味,有些口味具有不同的命令,外壳等,因此很难作为初学者选择。一旦我们删除了“ Windows条件”,就可以清楚地看到Linux发行版在许多方面都非常出色(没有膨胀的软件)。我个人认为Windows优于Windows的唯一情况是玩游戏。随着MS一次将更多内容统一到1个操作系统,总是想从您那里获取更多数据,这变得更加令人不安。这是一项很好的技能,使用Linux发行版可以为新用户阅读这些文章提供可能的答案。


3
这听起来像是一声咆哮,而不是答案。怀疑它是否甚至试图按照回答实际回答问题。在几个地方也完全是错误的。(文件在Linux中存储在单独的分区?文件中的Linux需要CLI的知识来访问?Linux的消除硬件抽象相对于Windows?Linux用户直接与内核进行交互?真的,跆拳道?)我鼓励你们采取现场参观,以学习我们如何做事,并通读我如何为建议写一个好的答案。然后可以编辑它。
CVn

1
@MichaelKjörling:尽管您对这个答案的质量是正确的,但它包含了非常重要的一件事:Windows注册表(regedit程序)是一个应用程序,它显示的内部好像存储在一个配置数据库中一样,而实际上文件遍布PC。这将原始问题转换为“是否有Linux工具提供了计算机总体配置的摘要,例如Windows中的regedit?”
Dominique
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.