OpenWrt的UCI系统

简介

“uci”是“Unified Configuration Interface”(统一配置界面)的缩写,意在OpenWrt整个系统的配置集中化。

共同原则
OpenWrt的所有配置文件皆位于/etc/config/目录下。每个文件大致与它所配置的那部分系统相关。

配置文件

第一个参考链接详解。
OpenWrt的UCI系统_第1张图片
OpenWrt的UCI系统_第2张图片

说明

package 'example'
 
config 'example' 'test'
        option   'string'      'some value'
        option   'boolean'     '1'
        list     'collection'  'first item'
        list     'collection'  'second item'
  1. config 'example' 'test'是一个section的开始,这个section的类型为example,名称为test.
  2. option 'string' 'some value' 定义了一个option,该option的namestring,该option的value'some value'

OpenWrt的UCI系统_第3张图片

匿名section的值需要注意的点

# foo
config bar 'first'
    option name 'Mr. First'
config bar
    option name 'Mr. Second'
config bar 'third'
    option name 'Mr. Third'
config bar
    option name 'Mr. Four'

show,显示

root@OpenWrt:/etc/config# uci show foo
foo.first=bar
foo.first.name='Mr. First'
foo.@bar[0]=bar
foo.@bar[0].name='Mr. Second'
foo.third=bar
foo.third.name='Mr. Third'
foo.@bar[1]=bar
foo.@bar[1].name='Mr. Four'

使用show时,foo.@bar[0]表示第一个匿名选项。有名的都会显示其名称。

获取与设置option值

root@OpenWrt:/etc/config# uci get foo.@bar[0].name
Mr. First

getset时,foo.@bar[0]表示第一个以bar类型的section,容易与show误解。

帮助文档

# uci
Usage: uci [<options>] <command> [<arguments>]

Commands:
	batch
	export     [<config>]
				//导出
	import     [<config>]
				//导入
	changes    [<config>]
				//显示尚未保存的修改值
	commit     [<config>]
				//将给定配置文件的更改写入文件系统,如果没有指定,则将所有配置文件写入文件系统。所有uci set、uci add、uci rename和uci delete命令都暂存到一个临时位置,并通过uci提交立即写入到flash中。在使用文本编辑器编辑配置文件之后,这是不需要的
	add        <config> <section-type>
				//增加一个匿名的section
	add_list   <config>.<section>.<option>=<string>
				//增加一个list
	del_list   <config>.<section>.<option>=<string>
				//删除一个list
	show       [<config>[.<section>[.<option>]]]
				//显示指定option
	get        <config>.<section>[.<option>]
				//获得一个option的值
	set        <config>.<section>[.<option>]=<value>
				//设置一个option的值
	delete     <config>[.<section[.<option>]]
				//删除一个option
	rename     <config>.<section>[.<option>]=<name>
				//重命名一个option
	revert     <config>[.<section>[.<option>]]
				//恢复
	reorder    <config>.<section>=<position>
				//移动section到另一个位置

Options:
	-c <path>  set the search path for config files (default: /etc/config)
			   //设置配置文件的搜寻目录
			   
	-d <str>   set the delimiter for list values in uci show
			   //使用uci show时,为list的值设置分割符
			   
	-f <file>  use <file> as input instead of stdin
			   //从指定的文件作为输入,而不是标准输入
			   
	-m         when importing, merge data into an existing package
			   //当导入数据时,合并数据到已有的package内
			   
	-n         name unnamed sections on export (default)
			   //导出时,给没有命名的section命名
			   
	-N         don't name unnamed sections
			   //不要给没有命名的section命名
			   
	-p   add a search path for config change files
	-P   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'
			   //在show的时候不要使用扩展语法

参考

https://openwrt.org/start?id=zh/docs/guide-user/base-system/uci
https://openwrt.org/zh/docs/techref/uci
https://blog.csdn.net/Damon_linux/article/details/76407899

你可能感兴趣的:(OpenWrt)