如何修改配置文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改配置文件相关的知识,希望对你有一定的参考价值。
对于普通的不依赖于外置程序目录结构的注册表项目,可以用常规方法将修改项写成reg文件(可以直接从xp系统中导出,然后在其基础上修)。在外置程序目录下有个regdoc.cmd,这个文件是毛桃用来注册外置程序文档关联的(就是改注册表),可以用记事本打开它,加入一行:则pe加载外部配置时它会自动导入。
这是最简单的改注册表的方法。但是如果要修的项依赖于外置程序的目录结构(比如要在右键菜单中添加用ultraedit32打开),就不能用上面的方法了,因为外置程序的绝对路径是不确定的(不同的机器中盘符不能确定)。
这种情况就需要用原始的reg命令来做了(就跟毛桃在regdoc.cmd中的做法一样),这个命令的语法比较艰涩,且注册表键值的表示方法跟reg文件不同。在命令提示符下通过/?参数可以获得它的用法(中文的哦),提醒一下/?参数是个以多层使用的,如reg/?得到的是基本参数的说明,如用regadd/?则可得到add这个参数的用法……
有了这个命令的基础后,我们来看看是怎么解决不定路径问题的。
在regdoc.cmd中有一个环境变量%tp%,代表的是regdoc.cmd这个文件所在的路径。我们可以通过%tp%..表示它的上层目录,%tp%....表示它的上两层目录。用此方法可以索引到外置程序目录内的所有路径,而不用考虑外置程序目录本身的绝对路径。
(还有个方法就是在winpe.ini中用pecmd的regi命令一行行添加,这个比系统的reg命令好理解些,同样可以用%curdir%环境变量来索引外置程序目录内的所有路径)
直接修改的好处是启动pe就是所需要设置,不依赖外部配置文件,pe的加载速度也比较快,但麻烦。修改配置文件则比较简单,但要依赖配置文件加载过程(直到加载到那些语句时才会生效),启动时需要额外的时间加载,相当于给系统打补丁去修改默认设置。
一般情况下不推荐直接修改pe注册表,麻烦,重新打包也比较花时间。但有些跟系统紧密的键必须直接修改才有效,比如屏幕分辨率,虽然在外面也可以修改有,但在登录时加载到它之前是无效的,那么在登录的过程中屏幕就会因切换分辨率而闪烁。
自己修改注册表的前提是自己要知道所希望的改变要修注册表中的哪些键值。可以上网搜索,现在网上的这些资源多得是,实在找不到的话可以还可以用regmon之类的注册表监视软件来定位。
比如修改记事本的自动换行,又不知道相应的键值在哪。可以先开启regmon,然后在记事本中改变换行的选项,看regmon的监视结果,来定位是哪个键值。因为系统本身也在不断的更改注册表,regmon中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。 参考技术A 1. 引言
OpenWRT中采用LuCI作为它的Web interface界面框架,采用Lua语言。在本文中将以一个简单的示例详细描述如何自定义开发一个界面,对一个配置文件进行操作。
2.Model与Controler
MVC的设计理念是进行LuCI开发的一个关键
在LuCI中Controller的文件定义在固件中的/usr/lib/lua/luci/controller目录中,模版目录在/usr/lib/lua/luci/view目录下,而model则是在/usr/lib/lua/luci/model中。而model中有一个特殊的模块叫做CBI,被称为LuCI中最酷的功能,该模块的功能是方便的对一个配置文件进行修改。
3.示例
本文中的页面建立在LuCI界面的network下,不单独创建页面,因此无需写view,只用些controller和model就可以了。
1)首先创建一个controller
ccontroller/mycbi.lua
module("LUCI.controller.mycbi", package.seeall)
function index()
entry("admin", "network", "mycbi_change", cbi("mycbi-model/mycbimodule"), "Change My Conf", 30).dependent=false
end
解释一下关键代码:
在index()函数中,使用entry函数来完成每个模块函数的注册,官方说明文档如下:
entry(path, target, title=nil, order=nil)
path is a table that describes the position in the dispatching tree: For example a path of "foo", "bar", "baz" would insert your node in foo.bar.baz.
target describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
title defines the title that will be visible to the user in the menu (optional)
order is a number with which nodes on the same level will be sorted in the menu (optional)
其中target主要分为三类:call,template和cbi。call用来调用函数,template用来调用已有的htm模版,而CBI模块则是使用非常频繁也非常方便的模块,包含的一系列lua文件构成界面元素的组合,所有cbi模块中的控件都需要写在luci.cbi.Map中,在cbi模块中定义各种控件,Luci系统会自动执行大部分处理工作。在cbi.lua文件中封装了所有的控件元素,例如复选框,下拉列表等。
2)创建model
#mkdir /usr/lib/lua/luci/model/cbi/mycbi-model
#vim /usr/lib/lua/luci/model/cbi/mycbi-model/mycbimodule.lua
m = Map("mycbi", "mycbi conf change interface")
s = m:section(TypedSection, "MySection")
s.addremove = true
s:option(Value, "username", "Name:")
key=s:option(Value, "password", "Password")
key.password=true;
return m
解释一下关键代码:
3)创建配置文件
#vim /etc/config/mycbi
config 'MySection' 'mycbi'
option 'username' 'youruser'
option 'password' 'yourpass'
4. 测试
进入OpenWRT界面,登陆后就可以点击“网络”,如果是英文就点击network,可以看到我们添加的子页面入口:
点击后进入页面如下:
输入用户名密码:root/test,点击保存,后台查看配置文件已经被更改:
5. 问题记录
1)首先,配置文件不能有任何后缀,否则页面加载后是空页面
2)如果出现500 错误,说明lua文件写的有问题,要么是路径错误,要么是语法错误,暂时没找到写日志的方法,可以用wireshark抓包看错误本回答被提问者采纳 参考技术B 对于天天上班在办公室工作的白领来说,电脑上不知道安装了多少软件,如果要去修改软件的配置文件,还要从盘符下慢慢的去找到配置文件,费时又费力。
首先在桌面上 或者开始菜单栏 或者其他地方找到要修改配置文件的软件快捷图标,如图中所示
找到软件的快捷图标,然后鼠标移动到图表处单击选中软件的快捷图标,接着使用鼠标右键-->找到右键弹出的菜单中的属性
单击属性菜单,新开一个小窗口,小窗口显示软件快捷图标的代表的软件详细信息,宝库软件安装的位置,此时单击打开文件位置
如图中所示,单击打开文件位置后,新开窗口显示软件安装路径,在这个路径下默认显示的是exe应用程序文件,如图所示
在打开的软件安装路径窗口,单击类型对文件按照类型排序(相同类型的文件放在一起),然后使用滚动条就轻而易举的找到配置文件,如图所示
docker如何修改nginx配置
参考技术A 如果是挂载的配置文件,外面修改,然后重启docker容器;如果不是挂载的配置文件,docker exec -it 容器ID /bin/sh进入容器修改并重启NGINX。
以上是关于如何修改配置文件的主要内容,如果未能解决你的问题,请参考以下文章