ini配置文件編輯器crudini

做者:張瑞旗 / 騰科IT培訓集團紅帽講師php

最近,在學習OpenStack過程當中,遇到兩個很是相像的命令:crudini和openstack-config。幾經查詢,發現它們原來是Pádraig Brady用Python開發的、用來對配置文件(即ini文件)進行編輯的工具。它們是同一個命令,有兩個名字而已。git

openstack-config修改配置文件
 
Pádraig Brady是Linux和OpenStack項目的代碼貢獻者。根據搜索到的資料推測,他在OpenStack項目中開發了openstack-config,後來感受這個工具頗有用,便將其更名爲crudini。2013年9月27日,OpenSuse郵件列表中顯示,openstack-config這個命令正式改名爲crudini。github

咱們都知道,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/mydatashell

若是我將datadir修改爲/usr/lib/mydata,則要這樣修改:
crudini --set myconfig.ini default datadir /usr/lib/mydatabash

安裝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就可使用這個命令,就進行以下的操做:spa

# 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

相關文章
相關標籤/搜索