什么是与Linux等效的registry?

最近我参与了从Windows到Linux的代码移植 。 我遇到了这么多的窗口function,检索registry项并编辑它。 我不知道什么是Linux的等效方法。 我知道registry只是一个Windows数据库,它以“Key = value”格式存储数据。 我正在考虑INI文件 。 除此之外还有什么更高效的?

不是从存储的angular度来问 。 我的问题与Linux中的registry等效有关。 我们如何在Linux中实现registry结构?

每个用户在Linux中存储配置的典型方法是将其存储在/home/username/.someapp ,其中someapp是程序的名称。 我真的很喜欢这个,因为当我移动到另一台电脑时,我所要做的就是保存/移动我的主目录,这将保存我的所有配置。

在Windows上,注册表具有用户部分HKEY_CURRENT_USER ,而其他表示任何用户(如HKEY_LOCAL_MACHINE用户都是整个系统的全局用户。 对于用户部分,您应该将配置放在用户目录中,就像我之前解释过的那样,因为它不需要任何超级用户权限。 本地机器部分你可以选择也放在用户目录,那么每个用户将有单独的配置,或者把它放在/var/lib/someapp ,但是要记住它是只读的然后。

有了这一切,请记住,您应该创建自己的配置格式,或使用一些库,如libconfig ,XML或JSON。

Linux有XDG基本目录规范。 如果你想使用你的应用程序的配置文件(无论你喜欢哪种格式–INI,JSON,YAML,SQLite数据库等),请将其存储在目录$XDG_CONFIG_HOME/your_app_name

通常很多软件都将配置文件放在/etc ,但是我认为这是一个静态配置。 如果你从软件(用户或外部的东西)改变了一些配置,最好把它放到/var/lib/(your_project_short_name)/(your_project_config_files)我猜想它和Mysql,Postgresql的数据库文件一样, Postgresql的配置文件等