流行的配置文件格式有若干种,每种都有其自身优势。从中找到最适合你的格式吧!
计算机上有数以千计的配置文件。你可能永远不会直接与其中的大部分文件打交道,但它们确实散落在你的 /etc
以及 ~/.config
、~/.local
、/usr
文件夹中。还有一些可能在 /var
,甚至 /opt
文件夹中。如果无意中打开过或更改过它们,你就可能会有疑问:为什么有些配置文件看起来是某一种格式,而另一些则是看起来完全不同的格式?
存储配置是一项很灵活的任务,因为只要开发人员知道他们的代码是如何将数据存入文件的,他们就可以轻松编写代码来根据需要提取数据。然而,科技行业非常青睐有详细文档的标准化事物,因此多年来出现了几种比较普遍的格式用来简化配置任务。
为什么我们需要配置文件
配置文件对于现代计算来说很重要。它们使你能够自定义与应用程序交互的方式,或自定义应用程序与系统内其他程序的交互方式。有了配置文件,每当你启动某个应用程序时,它都会有“记忆”,记录了你喜欢如何去使用该程序。
配置文件的结构可以很简单,而且通常确实也很简单。例如,如果你要编写一个应用程序,程序唯一需要知道的是其用户的偏好名字,那么它的唯一配置文件就可以只包含一个词:用户名。就像下面这样:
“`
Tux
“`
但通常应用程序需要追踪的不仅仅是一条信息,因此配置文件通常会有一个键和一个值:
“`
NAME=’Tux’
SPECIES=’Penguin’
“`
即使没有编程经验,你也可以想象出代码如何解析这些数据。这里有两个简单的例子,一个使用 awk 命令,另一个使用 grep 命令。两个例子都是只关注包含 NAME
“键”的行,并返回出现在等号 (=
) 之后的“值”:
“`
$ awk -F’=’ ‘/NAME/ { print $2; }’ myconfig.ini
‘Tux’
$ grep NAME fake.txt | cut -d’=’ -f2
‘Tux’
“`
同样的原则适用于任何编程语言和任何配置文件。只要你有统一的数据结构,就可以在需要的时候编写简单的代码来提取和解析它。
选择格式
为了保证普遍有效性,配置文件最重要的一点是它们是一致的和可预测的。你绝对不会想做这样的事:以保存用户首选项的名义,将信息随意存储到文件中,然后花好几天时间逆向工程,来找到最终出现在文件中的随机信息。
流行的配置文件格式有若干种,每种格式都有自己的优势。
INI
INI 文件采用了键值对的格式:
“`
[example]
name=Tux
style=widgety,fidgety
enabled=1
“`
这种简单的配置风格很直观,只要你别选择使用糟糕的键名(比如用 unampref
这样的神秘键名来代替 name
)就好。这些键值对很容易解析和编辑。
除了键和值之外,INI 格式还可以分 节 。在下列示例代码中,[example]
和 [demo]
就是配置文件中的两个节:
“`
[example]
name=Tux
style=widgety,fidgety
enabled=1
[demo]
name=Beastie
fullscreen=1
“`
这几个配置语句解析起来有点复杂,因为有两个 name
键。想象一下,一个粗心的程序员在这个配置文件中查询 name
,结果总是返回 Beastie
,因为这是文件中对 name
的最后一个定义值。在解析这样的文件时,开发人员必须加倍小心地在各节中搜索键,这可能会很棘手,具体取决于用来解析该文件的语言。然而,它仍然是一种很流行的格式,大多数语言都会有一个现成的库来帮助程序员解析 INI 文件。
YAML
YAML 文件 是结构化列表,可以包含值或者键值对:
“`
via: https://opensource.com/article/21/6/what-config-files
作者:Seth Kenlon 选题:lujun9972 译者:unigeorge 校对:wxy
主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2021/09/29/%e6%b5%85%e8%b0%88%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%a0%bc%e5%bc%8f/