在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...