UCI OpenWrt uci命令系統

2021-08-06 02:13:45 字數 4169 閱讀 5718

目錄:1.uci命令

2.uci的檔案和流程

3.uci 的檔案語法

4.uci 命令讀寫配置

5.綜合例項

1.uci命令

乙個眾所周知的原因,在linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,

這樣的設計雖然可以體現出各軟體包自身的優勢,同時也增加了學習曲線。在這一點上openwrt的uci無疑處理的更

勝一籌。uci是集中式配置資訊管理介面(unified configuration inte***ce)的縮寫,他是openwrt引進的一套配置

引數管理系統。uci管理了openwrt下最主要的系統配置引數並且提供了簡單、容易、標準化的人機互動介面。uci中

已經包含了網路配置、無線配置、系統資訊配置等作為基本路由器所需的主要配置引數。同時uci也可以幫助開發人

員快速的建立一套基於openwrt的智慧型路由產品控制介面。

2.uci的檔案和流程

uci的配置檔案全部儲存在/etc/config目錄下。

root@openwrt:/# ls /etc/config/

dhcp            dropbear    firewall    network      system        wireless

複製**

日前已有大量軟體包支援uci模式管理,但不是所有的軟體包,支援的軟體包是這樣來完成

啟動的(以samba舉例):

1.啟動指令碼/etc/init.d/samba

2.啟動指令碼通過uci分析庫從/etc/config/samba獲得啟動引數

3.啟動指令碼完成正常啟動

由於uci的資料檔案較為簡單,並且具備了很nice的直接觀感,所以配置檔案既可以使用uci

命令進行修改,也可以使用vi編輯器直接修改檔案。但如果兩種方式都是用時需要注意uci命

令修改會產生快取,每次修改好要盡快確認儲存避免出現衝突。

最常見的幾個uci配置作用說明

檔案作用

/etc/config/dhcp

面向lan口提供的ip位址分配服務配置

/etc/config/dropbear

ssh服務配置

/etc/config/firewall

路由**,埠**,防火牆規則

/etc/config/network

自身網路介面配置

/etc/config/system

時間伺服器時區配置

/etc/config/wireless

無線網路配置

3.uci的檔案語法

uci檔案語法舉例

config 'section-type' 'section'

option  'key'       'value'

list    'list_key'  'list_value'

config 'example' 'test'

option  'string'        'some value'

option  'boolean'       '1'

list    'collection'    'first item'

list    'collection'    'second item'

複製**

config 節點 以關鍵字 config 開始的一行用來代表當前節點

section-type 節點型別

section 節點名稱

option 選項 表示節點中的乙個元素

key 鍵

value 值

list 列表選項 表示列表形式的一組引數。

list_key 列表鍵

list_value 列表值

config 節點語法格式

config 'section-type' 'section'

複製**

config 節點(後文統一稱為節點)原則

uci 允許只有節點型別的匿名節點存在

節點型別和名字建議使用單引號包含以免引起歧義

節點中可以包含多個 option 選項或 list 列表選項。

節點遇到檔案結束或遇到下乙個節點代表完成。

option 選項語法格式

option 'key' 'value'

複製**

option 選項(後文統一稱為選項)原則

選項的鍵與值建議使用單引號包含

避免相同的選項鍵存在於同乙個節點,否則只有乙個生效

list 列表選項語法格式

list 'list_key' 'list_value'

複製**

list 列表選項(後文統一稱為列表)原則

選項的鍵與值建議使用單引號包含

列表鍵的名字如果相同,則相同鍵的值將會被當作陣列傳遞給相應軟體

uci 的語法容錯

option example    value

option 'example'   value

option example    "value"

option "example"  'value'

option 'example'   "value"

複製**

uci 無法容忍的語法

option 'example" "value'

option example some value with space

複製**

盡量使用常規字元去處理器 uci,特殊字元有可能會破壞資料結構的完整性。

4.uci 命令讀寫配置

語法格式

uci

複製**

讀寫規則

uci 讀取總是先讀取記憶體中的快取,然後再讀取檔案中的

進行過增加,修改,刪除操作後要執行生效指令,否則所做修改只存留在快取中

讀取類語法

取得節點型別

uci get .

複製**

取得乙個值

uci get ..

複製**

顯示全部 uci 配置

uci show

複製**

顯示指定檔案配置

uci show

複製**

顯示指定節點名字配置

uci show .

複製**

顯示指定選項配置

uci show ..

複製**

顯示尚未生效的修改記錄

uci changes

複製**

匿名節點顯示(如果所顯示內容有匿名節點,使用-x 引數可以顯示出匿名節點的 id)

uci show -x ..

複製**

寫入類語法

增加乙個匿名節點到檔案

uci add

複製**

增加乙個節點到檔案中

uci set .=

複製**

增加乙個選項和值到節點中

uci set ..=

複製**

增加乙個值到列表中

uci add_list ..=

複製**

修改乙個節點的型別

uci set .=

複製**

修改乙個選項的值

uci set ..=

複製**

刪除指定名字的節點

uci delete .

複製**

刪除指定選項

uci delete ..

複製**

刪除列表

uci delete ..

複製**

刪除列表中乙個值

uci del_list ..=

複製**

生效修改(任何寫入類的語法,最終都要執行生效修改,否則所做修改只在快取中,切記!)

uci commit

複製**

UCI OpenWrt uci命令系統

目錄 1.uci命令 2.uci的檔案和流程 3.uci 的檔案語法 4.uci 命令讀寫配置 5.綜合例項 1.uci命令 乙個眾所周知的原因,在linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,這樣的設計雖然可以體現出各軟體包自身的優勢,同時也增加了學習曲線。...

Tcl TK之命令 命令 命令

在tcl中,一切動作都是通過命令實現的,命令通過換行符或分號隔開,對於使用過linux系統的朋友來說非常容易理解。tcl處理一條命令分為兩個步驟 解析和執行。下面將列舉幾個常見的命令 set命令用於建立 讀取和修改變數,此命令需要乙個或者兩個引數。第乙個引數是變數,第二個引數 若給出 是變數的新值。...

source 命令 命令

source 命令 從 c shell 而來 是 bash shell 的內建命令。點命令 就是乙個點符號.從 bourne shell 而來 是 source 的另一名稱。這兩個命令都以乙個指令碼檔名為引數,該指令碼將作為當前 shell 的環境執行,即不會啟動乙個新的子程序。所有在指令碼中設定的...