OpenWrt uci命令系統

2021-07-25 03:50:05 字數 3363 閱讀 7721

在linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,這樣的設計雖然可以體現出各軟體包自身的優勢,但同時也增加了學習曲線。 openwrt的uci無疑處理的更勝一籌。uci是集中式配置資訊管理介面(unified configuration inte***ce)的縮寫,他是openwrt引進的一套配置引數管理系統。uci管理了openwrt下最主要的系統配置引數並且提供了簡單、容易、標準化的人機互動介面。uci中已經包含了網路配置、無線配置、系統資訊配置等作為基本路由器所需的主要配置引數。同時uci也可以幫助開發人員快速的建立一套基於openwrt的智慧型路由產品控制介面。

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

在openwrt中大多軟體包支援uci模式管理,啟動的(以network舉例):

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

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

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

uci的資料檔案較為簡單,配置檔案既可以使用uci命令進行修改,也可以使用文字編輯器直接修改檔案。注意uci命令修改會產生快取,每次修改好要盡快確認儲存。

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

檔案作用

/etc/config/dhcp

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

/etc/config/dropbear

ssh服務配置

/etc/config/firewall

防火牆規則

/etc/config/network

自身網路介面配置

/etc/config/system

時間伺服器時區配置

/etc/config/wireless

無線網路配置

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,特殊字元有可能會破壞資料結構的完整性。

uci命令

語法格式

uci

讀寫規則

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

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

讀取類語法

取得節點型別

uciget .

取得乙個值

uciget ..

顯示全部 uci 配置

ucishow

顯示指定檔案配置

ucishow

顯示指定節點名字配置

ucishow .

顯示指定選項配置

ucishow ..

顯示尚未生效的修改記錄

ucichanges

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

ucishow -x ..

寫入類語法

增加乙個匿名節點到檔案

uciadd

增加乙個節點到檔案中

uciset .=

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

uciset ..=

增加乙個值到列表中

uciadd_list ..=

修改乙個節點的型別

uciset .=

修改乙個選項的值

uciset ..=

刪除指定名字的節點

ucidelete .

刪除指定選項

ucidelete ..

刪除列表

ucidelete ..

刪除列表中乙個值

ucidel_list ..=

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

ucicommit

openwrt uci 設定網路命令

openwrt使用命令列設定無線和有線網路 在我們將 路由器韌體刷成開源的基於linux核心的openwrt系統後,由於openwrt預設未安裝web管理介面,所以我們需要先通過ssh或者telnet對路由器進行網路設定,設定完成後可通過openwrt的軟體包管理opkg安裝web設定介面luci。...

linux 命令 系統命令

1.檢視主機名 hostname 2.修改主機名 重啟後無效 hostname hadoop 3.修改主機名 重啟後永久生效 vi ect sysconfig network 4.修改ip 重啟後無效 ifconfig eth0 192.168.12.22 5.修改ip 重啟後永久生效 vi etc...

系統命令操作

系統命令 1 call 執行命令,返回狀態碼 ret subprocess.call ls l shell false ret subprocess.call ls l shell true 2 check call 執行命令,如果執行狀態碼是0,則返回0,否則拋異常 subprocess.chec...