日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

UCI工具命令

發布時間:2023/12/31 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 UCI工具命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UCI工具命令

https://blog.csdn.net/qq_41453285/article/details/102528227

一、UCI工具介紹

在開發調整配置時,可以直接使用vi編輯器修改UCI配置文件。但是UCI統一配置文件的目的就是所有 OpenWrt 配置可以通過統一接口讀取和修改。對于開發人員而言,如 果使用 awk 和 grep 工具來解析將是非常低效的,UCI實用工具提供了修改和分析UCI文件的腳本編程開發接口

備注(重點)

當使用UCI工具寫入配置文件時,配置文件都是整個重寫并且不需要確認命令。這意味著在文件中任何多余的注釋行和空行均會被刪除
如果你有 UCI 類型的配置文件,想保存自己的注釋和空行,那就不應該使用UCI命令行工具來編輯文件

二、命令格式與選項

命令格式:

uci [<options>] <command> [<arguments>]

options如下:

-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'

command如下:

命 令 含 義
add 增加指定配置文件的類型為 section-type 的匿名區段
add_list 對已存在的 list 選項增加字符串
commit 對給定的配置文件寫入修改,如果沒有指定參數則將所有的配置文件寫入文件系統。所 有的“uci set”“uci add”“uci rename”和“uci delete”命令將配置寫入一個臨時位置, 在運行“uci commit”時寫入實際的存儲位置
export 導出一個機器可讀格式的配置。它是作為操作配置文件的 shell 腳本而在內部使用,導 出配置內容時會在前面加“package”和文件名
import 以 UCI 語法導入配置文件
changes 列出配置文件分階段修改的內容,即未使用“uci commit”提交的修改。如果沒有指定 配置文件,則指所有的配置文件的修改部分
show 顯示指定的選項、配置節或配置文件。以精簡的方式輸出,即 key=value 的方式輸出
get 獲取指定區段選項的值
set 設置指定配置節選項的值,或者是增加一個配置節,類型設置為指定的值
delete 刪除指定的配置節或選項
rename 對指定的選項或配置節重命名為指定的名字
revert 恢復指定的選項,配置節或配置文件

三、-P選項(/var/state文件)

有些運行中的狀態值沒有保存在/etc/config目錄下,而是保存在/var/state下,這時可 以使用“-P”參數來查詢當前狀態值

四、演示案例(修改IP地址)

網絡配置的相關信息存放在/etc/config/network文件中

下面我們修改“lan”這個網絡接口的IP地址(修改完在下面圖中可以看到“lan”這個網絡接口的IP地址為我們設置的值)

uci set network.lan.ipaddr=192.168.0.50

uci commit network
 
/etc/init.d/network restart

刪除上面我們設置的IP地址

uci delete network.lan.ipaddr
 
uci commit network
 
/etc/init.d/network restart

五、演示案例(修改多個配置節類型或匿名配置節)

概念:當有多個配置節類型相同或者為匿名配置節時,UCI使用數組數字引用它們
規則如下:

①例如:OpenWrt 系統默認有 3 個網卡接口,可以通過network.@interface[0]來引用第一個,通過network.@ interface[1]來引用第二個,通過network.@interface[2]來引用第三個
②也可以使用負索引, 例如network.@interface[?1],其中“?1”指的是最后一個,“?2”指的是倒數第二個,以此類推

演示案例(獲取各個網卡名稱)

我這個OpenWrt系統中有兩個網卡

uci get network.@interface[0].ifname   //獲取第一個
uci get network.@interface[1].ifname   //獲取第二個
 
uci get network.loopback.ifname   //獲取第一個
uci get network.lan.ifname   //獲取第二個
 
uci get network.@interface[-2].ifname   //獲取第一個
uci get network.@interface[-1].ifname   //獲取第二個

六、演示案例(更改鏈表配置)

當一個配置文件中的選項(option)為鏈表時,操作方法有所不同

演示案例

例如我們的/etc/config/system配置文件中就有“list”形式的鏈表選項

添加到鏈表中一個配置項:

uci add_list system.ntp.server='ntp.dongshao.net'
 
uci commit system

刪除鏈表中的一個配置項

uci del_list system.ntp.server='ntp.dongshao.net'
 
uci commit system

刪除鏈表中的所有配置項

uci delete system.ntp.server
 
uci commit system

七、自定義配置文件及修改

下面我們創建一個helloRoute的配置

第一步:先創建一個“hello”的配置文件

touch /etc/config/hello

第二步:首先通過命令行創建配置文件。像上面的配置一樣,如果你想增加一個配置節,大多數人都會想到使用“uci add”命令,但實際上“uci add”僅可以創建匿名配置節,不能完 成創建命名配置的目標,要使用“uci set”命令來完成

uci set hello.globe=system

第三步:設置配置節的3個選項

uci set hello.globe.agent=dongshao                           //用戶代理屬性
uci set hello.globe.url='https://blog.csdn.net/qq_41453285'  //訪問URL
uci set hello.globe.delay=100                                //啟動延遲時間
 
uci commit  //提交配置修改

查看配置文件內容

============End

總結

以上是生活随笔為你收集整理的UCI工具命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。