1. 程式人生 > >[UCI] OpenWrt-uci命令系統

[UCI] OpenWrt-uci命令系統

目錄:
1.UCI命令
2.
UCI的檔案和流程
3.UCI 的檔案語法
4.UCI 命令讀寫配置
5.綜合例項
1.UCI命令


一個眾所周知的原因,在Linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,
這樣的設計雖然可以體現出各軟體包自身的優勢,同時也增加了學習曲線。在這一點上OpenWrt的UCI無疑處理的更
勝一籌。UCI是集中式配置資訊管理介面(Unified Configuration Interface)的縮寫,他是OpenWrt引進的一套配置
引數管理系統。UCI管理了OpenWrt下最主要的系統配置引數並且提供了簡單、容易、標準化的人機互動介面。UCI中

已經包含了網路配置、無線配置、系統資訊配置等作為基本路由器所需的主要配置引數。同時UCI也可以幫助開發人
員快速的建立一套基於OpenWrt的智慧路由產品控制介面。

2.UCI的檔案和流程


UCI的配置檔案全部儲存在/etc/config目錄下。
  1. [email protected]:/# ls /etc/config/
  2. 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檔案語法舉例
  1. config 'section-type' 'section'
  2.         option  'key'       'value'
  3.         list    'list_key'  'list_value'
  4. config 'example' 'test'
  5.         option  'string'        'some value'
  6.         option  'boolean'       '1'
  7.         list    'collection'    'first item'
  8.         list    'collection'    'second item'
複製程式碼
config 節點 以關鍵字 config 開始的一行用來代表當前節點
            section-type 節點型別
            section 節點名稱
option 選項 表示節點中的一個元素
            key 鍵
            value 值
list 列表選項 表示列表形式的一組引數。
           list_key 列表鍵
           list_value 列表值

config 節點語法格式
  1. config 'section-type' 'section'
複製程式碼 config 節點(後文統一稱為節點)原則
           UCI 允許只有節點型別的匿名節點存在
           節點型別和名字建議使用單引號包含以免引起歧義
           節點中可以包含多個 option 選項或 list 列表選項。
           節點遇到檔案結束或遇到下一個節點代表完成。
option 選項語法格式
  1. option 'key' 'value'
複製程式碼 option 選項(後文統一稱為選項)原則
           選項的鍵與值建議使用單引號包含
           避免相同的選項鍵存在於同一個節點,否則只有一個生效
list 列表選項語法格式
  1. list 'list_key' 'list_value'
複製程式碼 list 列表選項(後文統一稱為列表)原則
      選項的鍵與值建議使用單引號包含
      列表鍵的名字如果相同,則相同鍵的值將會被當作陣列傳遞給相應軟體
UCI 的語法容錯
  1. option example    value
  2. option 'example'   value
  3. option example    "value"
  4. option "example"  'value'
  5. option 'example'   "value"
複製程式碼 UCI 無法容忍的語法
  1. option 'example" "value'
  2. option example some value with space
複製程式碼 儘量使用常規字元去處理器 UCI,特殊字元有可能會破壞資料結構的完整性。

4.UCI 命令讀寫配置
語法格式
  1. uci [<options>] <command> [<arguments>]
複製程式碼 讀寫規則
       UCI 讀取總是先讀取記憶體中的快取,然後再讀取檔案中的
       進行過增加,修改,刪除操作後要執行生效指令,否則所做修改只存留在快取中
讀取類語法
取得節點型別
  1. uci get <config>.<section>
複製程式碼 取得一個值
  1. uci get <config>.<section>.<option>
複製程式碼 顯示全部 UCI 配置
  1. uci show
複製程式碼 顯示指定檔案配置
  1. uci show <config>
複製程式碼 顯示指定節點名字配置
  1. uci show <config>.<section>
複製程式碼 顯示指定選項配置
  1. uci show <config>.<section>.<option>
複製程式碼 顯示尚未生效的修改記錄
  1. uci changes <config>
複製程式碼 匿名節點顯示(如果所顯示內容有匿名節點,使用-X 引數可以顯示出匿名節點的 ID)
  1. uci show -X <config>.<section>.<option>
複製程式碼 寫入類語法
增加一個匿名節點到檔案
  1. uci add <config> <section-type>
複製程式碼 增加一個節點到檔案中
  1. uci set <config>.<section>=<section-type>
複製程式碼 增加一個選項和值到節點中
  1. uci set <config>.<section>.<option>=<value>
複製程式碼 增加一個值到列表中
  1. uci add_list <config>.<section>.<option>=<value>
複製程式碼 修改一個節點的型別
  1. uci set <config>.<section>=<section-type>
複製程式碼 修改一個選項的值
  1. uci set <config>.<section>.<option>=<value>
複製程式碼 刪除指定名字的節點
  1. uci delete <config>.<section>
複製程式碼 刪除指定選項
  1. uci delete <config>.<section>.<option>
複製程式碼 刪除列表
  1. uci delete <config>.<section>.<list>
複製程式碼 刪除列表中一個值
  1. uci del_list <config>.<section>.<option>=<string>
複製程式碼

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

  1. uci commit <config>
複製程式碼

轉自:http://developer.t-firefly.com/thread-1035-1-1.html

相關推薦

[UCI] OpenWrt-uci命令系統

目錄: 1.UCI命令 2.UCI的檔案和流程 3.UCI 的檔案語法 4.UCI 命令讀寫配置 5.綜合例項1.UCI命令一個眾所周知的原因,在Linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,這樣的設計雖然可以體現出各軟體包自身的優勢

openwrt uci 命令實現中繼

開啟WIFI功能,MR10U刷OpenWrt預設沒啟用WIFI uci set [email protected][0].disabled=0 uci commit wireless wifi 建立wwan介面 uci set net

初識OPENWRTuci介紹與命令列運用

1.作用:UCI是集中式配置資訊管理介面(Unified Configuration Interface),是OpenWrt引進的一套配置 引數管理系統。 日前已有大量軟體包支援UCI模式管理,但不

uci命令系統詳解

目錄: 1.UCI命令 2.UCI的檔案和流程 3.UCI 的檔案語法 4.UCI 命令讀寫配置 5.綜合例項1.UCI命令一個眾所周知的原因,在Linux下各種軟體包有各種不同的配置指令碼,每個配置指令碼的語法格式和操作方式不同,這樣的設計雖然可以體現出各軟體包自身的優勢

openwrt uci api續: 找出匿名節點的"名字"

在使用uci api函式進行配置檔案管理的時候,有些配置檔案裡面會有匿名節點的存在。現有的uci api沒有直接支援修改匿名節點的api,所以想要修改匿名節點就略顯頭疼,甚至無從下手。其實匿名節點並非真的匿名,它也有名字存在。以下以/etc/config/wireless檔

[openwrt] uci 的shell和lua介面

uci是openwrt上配置操作的介面,不管是自動化的shell指令碼,還是使用luci來二次開發配置介面,都會用到這部分知識。 uci提供了lua, shell, c介面,這裡主要用到了前兩種

OpenWRT UCI API的使用——C語言

UCI 是OpenWRT為實現配置集中化而引入的一個軟體包, 通過修改UCI,可以實現對OpenWRT的絕對部分配置的修改.LUCI(OpenWRT 的WEB配置介面)也是通過讀UCI配置檔案的操作來實現使用者對路由的配置的。通過掌握UCI的API的使用,可以方便地將您的軟

Openwrt UCI 快捷切換SS 配置

touch /etc/config/mytest uci add mytest ssentry uci set [email protected][0].enable = 1 uci se

Openwrt UCI API的使用

OpenWRT UCI API的使用 UCI 是OpenWRT為實現配置集中化而引入的一個軟體包, 通過修改UCI,可以實現對OpenWRT的絕對部分配置的修改.LUCI(OpenWRT 的WEB配置介面)也是通過讀UCI配置檔案的操作來實現使用者對路由的配置的。通過掌握

Linux命令----系統目錄結構

啟動程序 /etc 內核 行程 掛載 設備 系統目錄 ubun 系統啟動過程 Ubuntu沒有盤符的概念,只有一個根目錄/,所有文件都在它下面 根目錄:   / 系統可執行程序(如:命令):   /bin 內核和啟動程序(所有和啟動相關的文件都保存在這裏):  

Linux命令-系統管理

中文 指定 pin 獲得 IT 大小 命令執行 lin 無法 查看當前日歷:cal cal命令用於查看當前日歷,-y顯示整年日歷: 顯示或設置時間:date 設置時間格式(需要管理員權限): date [MMDDhhmm[[CC]YY][.ss]] +format CC為

Linux命令[系統管理與維護命令]

ls: 列出工作目錄所含的檔案及子目錄, 可以用dir代替ls 語法: ls [選項] [路徑或檔案] -- 註釋: 列出mnt目錄下的檔案及其子目錄-- > ls /mnt apk-update-service git-repo-for-redmine li

Linux基礎命令——系統安全

1)passwd 用於更改賬戶密碼,passwd+使用者名稱,然後重複輸入兩次密碼。 2)su 用於更換使用者,su+使用者名稱。超級許可權使用者換下級使用者不需要密碼,同級以及向上級許可權使用者更換需要密碼。下圖是使用者fst換為root和root換為使用者fst的截圖: 3)

Linux基礎命令——系統管理

1)df 該命令用於檢查檔案的磁碟佔用情況,所有使用者可用,具體效果圖如下。 加上-T顯示檔案系統型別。 2)top 用於顯示執行中的程式。 按下h獲得命令列表,按下q退出該面板。 top -i 不顯示閒置程式,截圖如下: 3)free 該命令用於顯示記憶體的使用情況,-b -

2、基本命令-系統使用者

清屏: $ clear 顯示當前目錄: $ pwd 建立使用者: $ useradd hw:使用者名稱 $ passwd hw:密碼 Linux下,預設情況建立一個使用者的同時會給使用者在系統的目錄下建立一個屬於自己的使用者目錄,該目錄稱為使用者主目錄。

OpenWrt簡單命令配置

文章目錄 OpenWrt簡單命令配置文件 恢復系統(用電腦主機做OpenWrt路由的情況) 配置內容 介面新增 初始配置 配置 PPPoE: 配置WIFI無線網路

Linux命令:系統管理命令系統安全命令

系統管理命令 df 1.作用: 檢查檔案系統磁碟佔用情況 2.格式: df [options] -s:對每個names引數只給出佔用的資料塊總數 -a: 遞迴顯示指定目錄中各檔案及子目錄中各檔案佔用的資料塊數, 若既不指定-

openwrt的編譯系統是如何製作根檔案系統

答:分析以下makefile即可獲取整個過程 以nxp layerscape系統的編譯過程為例 1.分析target/linux/layerscape/image/Makefile的最後一句,這是一個好的開端 $(eval $(call BuildImage))   2.巨集Bu

linux系統管理命令-系統安全

系統安全 18.01 chroot命令 切換作業系統  # mount -t ext3 /dev/sdb1 /mnt  # chroot /mnt/ 18.02 lastb命令 用於顯示使用者異常的登入列表  # lastb  # lastb root 18.03 la

Linux-2 常見的命令——系統管理與維護命令

Linux-2 常見的命令——系統管理與維護命令 1、ls命令:顯示指定工作目錄下的內容,列出工作目錄所含的檔案及子目錄。此命令於Windows下的dir類似。Linux也提供了dir命令可以代替ls命令。 -a:顯示指定目錄下的所有檔案及子目錄,包含隱藏檔案“.”開頭的檔案或者目錄視為隱藏