ini配置文件编辑器crudini

作者:张瑞旗 / 腾科IT培训集团红帽讲师

最近,在学习OpenStack过程中,遇到两个非常相像的命令:crudini和openstack-config。几经查询,发现它们原来是Pádraig Brady用Python开发的、用来对配置文件(即ini文件)进行编辑的工具。它们是同一个命令,有两个名字而已。

openstack-config修改配置文件
 
Pádraig Brady是Linux和OpenStack项目的代码贡献者。根据搜索到的资料推测,他在OpenStack项目中开发了openstack-config,后来感觉这个工具很有用,便将其改名为crudini。2013年9月27日,OpenSuse邮件列表中显示,openstack-config这个命令正式更名为crudini。

我们都知道,crud是4个单词的首字母简写,即create、read、update和delete,中文译为“增删改查”。这个是数据的最常见的4类操作方法。有些软件的配置文件采用的是ini格式,如php.ini。这样的配置文件往往会成若干个段落。段落以[default]之类的格式标识。具体的配置条目则为“datadir=/var/lib/data”形式。一个名叫myconfig.ini的文件可能会显示如下:
[default]
cmdline=/usr/bin/mycmd
datadir=/var/lib/mydata

如果我将datadir修改成/usr/lib/mydata,则要这样修改:
crudini --set myconfig.ini default datadir /usr/lib/mydata

安装crudini

在Ubuntu操作系统上,可以直接命令行安装crudini:

$ sudo apt-get install crudini


CentOS Linux中没有这个命令行工具,可以这样安装

# cd /usr/bin
# yum install -y git
# git clone https://github.com/pixelb/crudini.git

使用git命令将crudini克隆到/usr/bin中之后,会显示这样的结果:
Cloning into 'crudini'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 393 (delta 0), reused 1 (delta 0), pack-reused 387
Receiving objects: 100% (393/393), 190.55 KiB | 13.00 KiB/s, done.
Resolving deltas: 100% (257/257), done.
一个目录/usr/bin/crudini就创建出来。du -h /usr/bin/crudini,有以下内容:
4.0K      ./.git/refs/heads
0      ./.git/refs/tags
4.0K      ./.git/refs/remotes/origin
4.0K      ./.git/refs/remotes
8.0K      ./.git/refs
0      ./.git/branches
40K      ./.git/hooks
4.0K      ./.git/info
204K  ./.git/objects/pack
0      ./.git/objects/info
204K  ./.git/objects
4.0K      ./.git/logs/refs/remotes/origin
4.0K      ./.git/logs/refs/remotes
4.0K      ./.git/logs/refs/heads
8.0K      ./.git/logs/refs
12K      ./.git/logs
288K  /.git
36K      ./tests
424K  ./
总共只有424K字节。接下来,我想在shell中输入crudini就可以使用这个命令,就进行如下的操作:

# mv /usr/bin/crudini /usr/bin/crudinid 
(将原来的目录名称改成crudinid)
# ln -s /usr/bin/crudinid/crudini /usr/bin/crudini 
(创建一个叫crudini的软链接文件)


然后,我们就可以使用crudini了。
# crudini
不带参数,会有使用方法的提示。

基本操作

crudini --set [--existing] config_file section [param] [value]
        --get [--format=sh|ini|lines] config_file [section] [param]
        --del [--existing] config_file section [param]
        --merge [--existing] config_file [section]

作者示例

添加/修改一个变量
crudini --set config_file section parameter value
修改一个现有的变量
crudini --set --existing config_file section parameter value
将shell中的变量写入配置文件
echo name="$name" | crudini --merge config_file section
将两个ini文件合并
crudini --merge config_file < another.ini
删除一个变量
crudini --del config_file section parameter
删除一个配置段落
crudini --del config_file section
输出一个参数值
crudini --get config_file section parameter
输出一个不属于任何一个配置段落的全局变量值 
crudini --get config_file '' parameter
输出一个配置段落
crudini --get config_file section
以shell可以处理的格式输出一个配置段落
eval $(crudini --get --format=sh config_file section)
以文本编辑工具可以处理的格式输出一个配置文件
crudini --get --format=lines config_file

转载于:https://my.oschina.net/u/589241/blog/3065422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值