1. 程式人生 > >uci命令系統詳解

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 命令讀寫配置

命令:

batch
export     [<config>]
import     [<config>]
changes    [<config>]
commit     [<config>]
add        <config> <section-type>
add_list   <config>.<section>.<option>=<string>
show       [<config>[.<section>[.<option>]]]
get        <config>.<section>[.<option>]
set        <config>.<section>[.<option>]=<value>
delete     <config>[.<section[.<option>]]
rename     <config>.<section>[.<option>]=<name>
revert     <config>[.<section>[.<option>]]

引數:

-c <path>  set the search path for config files (default: /etc/config)
-d <str>   set the delimiter for list values in uci show
-f <file>  use <file> as input instead of stdin
-m         when importing, merge data into an existing package
-n         name unnamed sections on export (default)
-N         don't name unnamed sections
-p <path>  add a search path for config change files
-P <path>  add a search path for config change files and use as default
-q         quiet mode (don't print error messages)
-s         force strict mode (stop on parser errors, default)
-S         disable strict mode
-X         do not use extended syntax on 'show'
語法格式
  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>
複製程式碼

相關推薦

uci命令系統

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

分散式系統--框架(Hadoop-基本shell命令

               分散式系統詳解--框架(Hadoop-基本shell命令)         前面的文章我們已經將一個叢集搭建好了,現在就需要知道一些關於hadoo

cd命令使用

表示 如果 用戶家目錄 roo 環境變量 方法 字符 實用 效果   cd命令是目錄切換命令,是shell內置命令。   語法:     cd [-L|-P] [dir]   選項:     -p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄   

dd命令使用

netcat num asc ear 遠程 操作 字節數 放置 顯示 博客原處:http://www.cnblogs.com/qq78292959/archive/2012/02/23/2364760.html 1.命令簡介 dd 的主要選項: 指定數字的地方若以下列字符結

萌店系統開發模式系統

app 上海 好的 供應鏈 實現 即時通訊 消費者 粉絲 統計數據 萌店系統開發(李想.185.6504.8478)O2O的優勢在於把網上和網下的優勢完美結合。通過網購導購機,把互聯網與地面店完美對接,實現互聯網落地。讓消費者在享受線上優惠價格的同時,又可享受線下貼身的服務

redis命令monitor

monitor 窗口 inf 做了 命令 linux blog linux中 技術分享 通過monitor這個命令可以查看數據庫在當前做了什麽操作,對於管理redis數據庫有這很大的幫助 如圖示,在redis客戶端進行操作顯示info,另一個窗口打

iptables命令使用

連接數目 fse output weekday lac centos7 comm delete post iptables的主要功能是實現對網絡數據包進出設備及轉發的控制。當數據包需要進入設備、從設備中流出或者經該設備轉發、路由時,都可以使用iptables進行控制。 環境

Tomcat日誌系統

mat core catalina res 最大的 tor dumps 異常 startup 綜合:Tomcat下相關的日誌文件 catalina引擎的日誌文件,文件名:catalina.日期.log Tomcat下內部代碼丟出的日誌,文件名localhost.日期.lo

Linux vmstat命令實戰

上下文切換 span 一次 過多 sta log 讀取文件 負載 監控 vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換情況,IO讀寫情況。這個命令是我查看Linux/Unix最喜

Python爬蟲從入門到放棄(十三)之 Scrapy框架的命令

directory xpath idf 成了 spider i386 名稱 4.2 不同的 這篇文章主要是對的scrapy命令行使用的一個介紹 創建爬蟲項目 scrapy startproject 項目名例子如下: localhost:spider zhaofan$ sc

linux流量監控iftop命令安裝

libpcap 安裝 流量 指定 evel .tar.gz 之前 完成 configure iftop跟nload差不多,也是捕獲網卡流量的命令,nload的安裝見之前發布的教程:http://www.cnblogs.com/catlee/p/5703541.html 開

sed命令例子

moved 輸入 size 字母轉 amp sep def cde family sed -e ‘/Patricia/h‘ -e ‘/Margot/x‘ datafile    包含Margot的行將被包含Patricia的行替換; sed -e /WE/{h;d;}‘ -

awk命令例子

劃線 pan $1 空格 led 部分 分隔 線表 模式 awk -F: ‘{print "Number of dields: "NF}‘ passwd        字段分隔符設為冒號,所以每條記錄的字段數變成7; awk ‘{print "Number of diel

LINUX下分區命令Parted

運行 script mbr gpt分區 ble 版本號 may was mkpart 通常劃分分區工具我們用的比較多是fdisk命令,但是現在由於磁盤越來越廉價,而且磁盤空間越來越大。而fdisk工具他對分區是有大小限制的,它只能劃分小於2T的磁盤。現在的磁盤

(轉)shell中test命令方法

目的 判斷字符串 演示 警告 gic 一個數 平臺 oracl 差異 test命令用法。功能:檢查文件和比較值 原文:https://www.cnblogs.com/guanyf/p/7553940.html    1)判斷表達式   if test (表達式為真)

linux中cat、more、less命令區別

more|less本文轉自:http://blog.csdn.net/xyw_blog/article/details/16861681在《Python絕技》這本書的第一個小程序首先展示了針對與unix系統中shadow文件密碼的暴力破解的能力,因為之前只是對shadow文件停留在保存了用戶密碼的階段,但並沒

U-Mail郵件系統郵件收發延遲原因及解決方案

郵件系統 郵件是現代社會辦公最常見、最頻繁的通聯工具,但使用郵件系統時,用戶普遍最關心兩個安全,一個是安全性,郵件會不會被竊密?自己的郵箱賬號會不會被盜取被攻占呢?保存的數據會不會丟失呢?關於這個問題,國內知名通聯解決方案提供商U-Mail資深專家馬工已反復闡述過很多次。 另一個問題是關於郵件傳輸的,郵

(轉)linux nc命令使用

遠程拷貝 工作 主機 lin con gin browser -s 反向連接 linux nc命令使用詳解 原文:https://www.2cto.com/os/201306/220971.html 功能說明:功能強大的網絡工具 語  法:nc [-hlnruz][-g&

(轉)linux paste命令用法

--help 分類 chroot 幫助 情況下 alias query 技術分享 一次 linux paste命令用法詳解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用於合並文件的列。 功能

memcache及其telnet命令使用

con hit 過時 ida dump 錯誤 cati 如果 ble 1、啟動Memcache 常用參數memcached 1.4.3-p <num> 設置端口號(默認不設置為: 11211)-U <num> UDP監聽端口 (默