go读取配置文件|如何让golang 把变量解析为json并输出为文件

❶ tectia client 配置文件路径

1. 相对路径go run 或者 go build后在配置目录的相对路径上执行假设当前目录如下:├─config│ │ main.go│ ││ └─file // 配置文件目录│ config.ini│也就是说无论你是go run或者build后的执行程序,都应该在你执行目录下有该配置文件路径如file/config.ini否则就会发生以下错误, 无法读取配置文件panic: Error:can not read file “./file/config.ini”// 测试代码func runOrBuildLoadConfig(){ // 使用库 go get github.com/aWildProgrammer/fconf c, err := fconf.NewFileConf(” ./file/config.ini”) if err != nil { panic(err) } fmt.Println(c.Int(“server.port”))}2. 绝对路径使用绝对路径读取配置文件如果配置文件动态的话, 具体怎么传入 配置文件路径使用flag包, go run或者build的执行程序 带上 -config=xxxxx路径通过配置set/export环境变量, os.Getenv()获取该变量名称对应的值(即路径)// 测试代码func useAbsPathLoadConfig(){ // 这是直接硬编码的路径 ff,err := os.OpenFile(“D:/GoWorkspace/src/Examples/config/file/config.ini”,os.O_RDWR,666) if err != nil { panic(err) } var buf [100]byte ff.Read(buf[:]) log.Println(string(buf[:]))}3. 网络GET, http ftp等3.1 通过网络去获取配置文件e.g http://localhost:8080/config/config.inifunc useNetworkLoadConfig(){ // … 具体不实现}4. 嵌入到应用程序中go-bindata 把配置文件打包进去 1. go get -u github.com/jteeuwen/go-bindata/… 2. 然后在当前目录执行go install ../..安装到GOPATH/bin目录 3. 使用 go-bindata –prefix=file file/… 将file目录下的文件嵌入,会生成bindata.go 4. go run main.go bindata.go 或者 build成可执行文件执行// 测试代码func useBindataLoadConfig(){ data, err := Asset(“config.ini”) if err != nil { panic(err) } // 输出 也可以拿来解析 log.Println(string(data))5. 远程配置中心5.1 使用远程配置中心去读取配置通过key/value的方式存储在redis的配置, 配置过多可以使用pipe方式到导入使用etcd / consul 之类的KV Store 进行动态配置

❷ 我电脑的瑞星杀毒软件升级时显示:读取升级配置文件失败,请使用安装程序的修复功能修复后再升级。

解决方法:首先通过修复瑞星杀毒软件来解决,修复瑞星杀毒软件的方法:单击Windows桌面【开始】按钮-【所有程序】-【瑞星杀毒软件】-【添加删除组件】,在弹出的提示框中,选择【修复】,按“下一步”即可。注意:如果无法正常修复,如点击【添加删除组件】弹出的却是瑞星杀毒软件的安装窗口。说明瑞星杀毒软件出现了异常或已经损坏。出现这种情况的解决方法:下载最新的瑞星杀毒软件(或个人防火墙)2008版安装程序并运行,重新安装。根据瑞星产品类型在下面找到相应的解决方法。【瑞星杀毒软件标准版】用户解决方案步骤1、访问http://update.rising.com.cn/register/pcver/upgrade.htm,输入您的产品序列号和用户ID、附加码后登录产品升级下载页面,点击安装包后的“下载”按钮;步骤2、下载完成后运行安装程序(杀毒软件Rav2008.exe,个人防火墙rfw.exe):1、弹出瑞星安装程序提示窗口这时候直接覆盖安装,即点击“是”按钮,继续安装,按照提示进行操作即可。2、弹出“瑞星软件维护模式”窗口如果弹出“瑞星软件维护模式”窗口,说明计算机中的瑞星软件已经损坏,需要先行卸载再安装,这时候选择“卸载”,点击“下一步”按提示操作;卸载之后重启计算机,再次运行安装程序,按照提示进行瑞星软件的安装即可。【瑞星杀毒防火墙组合版】用户解决方案:登录http://go.rising.com.cn/together/index.asp,下载最新版的瑞星杀毒软件和防火墙安装程序进行安装。安装过程请参考【瑞星杀毒软件标准版】用户解决方案步骤2。【瑞星杀毒软件下载版】用户解决方案:登录http://go.rising.com.cn/download/index.htm下载最新版的瑞星杀毒软件下载版安装程序进行安装。安装过程请参考【瑞星杀毒软件标准版】用户解决方案步骤2。【瑞星防火墙下载版】用户解决方案:登录http://fw.rising.com.cn/download/index.shtml下载最新版的瑞星杀毒软件下载版安装程序进行安装。安装过程请参考【瑞星杀毒软件标准版】用户解决方案步骤2。

❸ 如何做到不用beego配置文件又不让系统报错

在etc/nginx目录下,新建一个文件夹server,在文件夹里面新建.conf文件。然后把下面的代码拷贝进去就好了,如图: 然后在etc/nginx/nginix.conf 主配置文件里用Include引入这个文件就好了。如图:然后重启一下服务就好了,重启Nginx就好了,重启命令:service nginx restart。是不是很简单, `(*∩_∩*)′。 此外还有,另外一个编译的小细节要注意的是,开发是的模式是dev,编译部署之前要把模式修改为prod,除了要改conf里面的,还要改main函数里面的,不然会有问题。

❹ go 怎么写入conf配置文件

为了快速声明配置文件中的全局变量而写的封装包,大家笑纳,废话少说,直接上方法。1.首先,下载包:12 go get "github.com/luckykris/go-utilbox/Env"go get "github.com/luckykris/go-utilbox/Conf/ReadConf"2.书写配置文件(例):vim test.cfg,写入如下配置内容:12345678 [gms]port = 2016[db]db = mysqluser = rootpassword = redhatport = 3306host = 127.0.0.13.写一个test.go来获取配置文件里的配置,并且将所有配置文件内的信息声明全局变量,注意,你需要在go代码里提前定义各项配置的数据类型(string,int目前只支持两类)以及默认值。如下列go代码:123456789101112131415161718192021222324252627282930313233343536373839404142434445 package mainimport( "github.com/luckykris/go-utilbox/Env" "github.com/luckykris/go-utilbox/Conf/ReadConf" "fmt")func main(){ Init()}func Init(){//定义gms配置区域 gms:=ReadConf.CONFIG{ AREA:"gms",//区域名 CONF:map[string]ReadConf.CONFIGROW{ "port":{TYPE:"int",EXIT:false,DEFAULT:1},//具体配置, //此条为port配置默认值为1 //类型为int //注意:如果标明类型是int默认值 //不要加双引号“”不然会被认为 //是字符串. //false的意思是,当配置文件里读 //取不到这个配置的时候程序退出 }, } //定义db配置区域 db:=ReadConf.CONFIG{ AREA:"db",//区域名 CONF:map[string]ReadConf.CONFIGROW{ "port":{TYPE:"int",EXIT:false,DEFAULT:3306}, "db":{TYPE:"string",EXIT:false,DEFAULT:"mongo"}, "user":{TYPE:"string",EXIT:false,DEFAULT:"root"}, "password":{TYPE:"string",EXIT:false,DEFAULT:"root"}, "host":{TYPE:"string",EXIT:false,DEFAULT:"localhost"}, }, } //让程序读取配合文件,并且把需要提取的配置区域变量传入LodConf函数 //这个函数执行之后,所有实现定义的配置就都生成全局变量了。 ReadConf.LoadConf("test.cfg",gms,db) //以下是对配置文件的全局变量的调用方式,用Env.ENV["配置区域/配置条目"].(类型) //因为返回的值是interface{}类型的,所以需要自己转换下类型。 fmt.Printf("gms/port:%d\n",Env.ENV["gms/port"].(int)) fmt.Printf("db/port:%d\n",Env.ENV["db/port"].(int)) fmt.Printf("db/db:%s\n",Env.ENV["db/db"].(string)) fmt.Printf("db/user:%s\n",Env.ENV["db/user"].(string)) fmt.Printf("db/password:%s\n",Env.ENV["db/password"].(string)) fmt.Printf("db/host:%s\n",Env.ENV["db/host"].(string))}4.以下就是执行此GO程序后的输出结果啦:1234567 [[email protected] GoMonitorServer]# go run test.go gms/port:2016db/port:3306db/db:mysqldb/user:rootdb/password:redhatdb/host:127.0.0.1

❺ 想用go语言实现读取一个文件到内存,然后向别人提供这个文件的内容怎么做

如果是把内容放在内存里,那么是不是会有满的时候的。缓冲,放临时文件或内存什么的。你看数据库为啥搜索很快,那就是有索引,根据关键字知道数据在哪里

❻ 如何在 Go 语言中用 Beats 开发 Logstash 插件

配置环境在OSX系统上很容易安装GO的可执行文件:brewinstallgo虽然java或Ruby(或者任何我知道的语言)可以在本地文件系统的任何地方使用命令,,但是Go项目必须使用单一专用的地址,,并且在$GOPATH环境变量下可用。第1段(可获1.54积分)Re;7个月前创建项目对于Logstash插件,Beats项目可以从模板创建。官方文档的说明十分简单。鉴于Go对文件系统上的位置的严格要求,只需按照以下说明生成一个新的即可使用的Go项目。默认模板代码将在控制台中重复发送带增量计数器的事件:./redditbeat-e-d"*"2016/12/1322:55:56.013362beat.go:267:INFOHomepath:[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat]Configpath:[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat]Datapath:[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/data]Logspath:[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/logs]2016/12/1322:55:56.013390beat.go:177:INFOSetupBeat:redditbeat;Version:6.0.0-alpha12016/12/1322:55:56.013402processor.go:43:DBGProcessors:2016/12/1322:55:56.013413beat.go:183:DBGInitializingoutputplugins2016/12/1322:55:56.013417logp.go:219:INFOMetricsloggingevery30s2016/12/1322:55:56.013518output.go:167:INFOLoadingtemplateenabled.Readingtemplatefile:/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/redditbeat.template.json2016/12/1322:55:56.013888output.go:178:.x.Readingtemplatefile:/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/redditbeat.template-es2x.json2016/12/1322:55:56.014229client.go:120:INFOElasticsearchurl:http://localhost:92002016/12/1322:55:56.014272outputs.go:106:.2016/12/1322:55:56.014279publish.go:234:DBGCreateoutputworker2016/12/1322:55:56.014312publish.go:276:..2016/12/1322:55:56.014326publish.go:291:INFOPublishername:LSNM33795267A2016/12/1322:55:56.014386async.go:63:INFOFlushIntervalsetto:1s2016/12/1322:55:56.014391async.go:64:INFOMaxBulkSizesetto:502016/12/1322:55:56.014395async.go:72:DBGcreatebulkprocessingworker(interval=1s,bulksize=50)2016/12/1322:55:56.014449beat.go:207:INFOredditbeatstartrunning.2016/12/1322:55:56.014459redditbeat.go:38:INFOredditbeatisrunning!HitCTRL-Ctostopit.2016/12/1322:55:57.370781client.go:184:DBGPublish:{"@timestamp":"2016-12-13T22:54:47.252Z","beat":{"hostname":"LSNM33795267A","name":"LSNM33795267A","version":"6.0.0-alpha1"},"counter":1,"type":"redditbeat"}第2段(可获0.73积分)Re;7个月前关于命令行参数:-e记录到标准err,而-d“*”启用所有调试选择器。有关参数的完整列表,请键入./redditbeat–help。编码Go代码位于.go文件中(令人惊讶…)在$GOPATH/src文件夹的项目子文件夹中。配置类型第一个有趣的文件是config/config.go,它定义了一个结构来声明Beat的可能参数。至于前面的Logstash插件,让我们添加一个subreddit参数,并设置它的默认值:typeConfigstruct{ Periodtime.Duration`config:"period"` Subredditstring`config:"subreddit"`}varDefaultConfig=Config{ Period:15*time.Second, Subreddit:"elastic",}第3段(可获0.89积分)Re;7个月前BeaterTypeBeat本身的代码在beater/redditbean.go中找到。默认模板为Beat和三个函数创建一个struct:Beat构造函数—用来读取配置:funcNew(b*beat.Beat,cfg*common.Config)(beat.Beater,error){…}Run函数-需要覆盖Beat的主要功能:func(bt*Redditbeat)Run(b*beat.Beat)error{…}Stop函数管理优雅关闭:func(bt*Redditbeat)Stop(){…}Note1:在Go中没有明确的接口实现。实现了interface中的所有方法,即创建一个隐式继承关系.出于写文档的目的,这是Beater接口:typeBeaterinterface{ Run(b*Beat)error Stop()}第4段(可获0.93积分)Re;7个月前因此,由于Beat结构实现了Run和Stop,它是一个Beater。Note2:在Go中没有类的概念,所以方法不能在一个具体类型上声明。但是,它存在扩展函数的概念:可以添加行为到一个类型(在单个包中)的函数。它需要声明receiver类型:这是在fun关键字和函数名之间完成的-这里是指Redditbeat类型(或者更准确地说,是一个指向Redditbeat类型的指针,但是这里有一个隐式转换)。构造函数和Stop函数可以保持不变,无论什么特性都应该在Run函数中。在这种情况下,功能是调用RedditRESTAPI并为每个Reddit帖子发送一条消息。第5段(可获1.59积分)Re;7个月前最终代码如下所示:func(bt*Redditbeat)Run(b*beat.Beat)error{ bt.client=b.Publisher.Connect() ticker:=time.NewTicker(bt.config.Period) reddit:="https://www.reddit.com/r/"+bt.config.Subreddit+"/.json" client:=&http.Client{} for{ select{ case<-bt.done: returnnil case<-ticker.C: } req,reqErr:=http.NewRequest("GET",reddit,nil) req.Header.Add("User-Agent","") if(reqErr!=nil){ panic(reqErr) } resp,getErr:=client.Do(req) if(getErr!=nil){ panic(getErr) } body,readErr:=ioutil.ReadAll(resp.Body) deferresp.Body.Close() if(readErr!=nil){ panic(readErr) } trimmedBody:=body[len(prefix):len(body)-len(suffix)] messages:=strings.Split(string(trimmedBody),separator) fori:=0;i<len(messages);i++{ event:=common.MapStr{ "@timestamp":common.Time(time.Now()), "type":b.Name, "message":"{"+messages[i]+"}", } bt.client.PublishEvent(event) } }}第6段(可获0.09积分)Re;7个月前这里是对最重要的几部分的解释:line4:通过连接字符串创建RedditRESTURL,包括配置Subreddit参数。记住,它的默认值已在config.go文件中定义。line5:引用httpClient类型line12:创建新的HTTP请求。注意Go允许多个返回值。line13:如果没有设置标准请求头,Reddit的API将返回429状态码。line14:Go标准错误不通过异常处理,而是随着常规返回值返回。根据Golangwiki:指示调用者的错误条件,应通过返回错误值来完成line15:panic()函数类似于在Java中抛出异常,被处理时推到栈顶。有关详细信息,请查看相关文档。line17:执行HTTP请求。line21:将响应主体读入字节数组。line22:关闭主体流。注意defer关键字:defer语句延迟函数的执行,直到环绕的函数返回。line26:创建整个响应主体字节数组的切片-对数组的一部分的引用。实质上,它删除了前缀和后缀以保持相关的JSON值。之后将字节数组解析成JSON。line27:分割切片以单独获取每个JSON片段。line29:将消息创建为简单的字典结构。line34:发送。第7段(可获3.11积分)Re;7个月前配置,构建,运行默认配置参数可以在项目根目录下的redditbeat.yml文件中找到。请注意,redditbeat.full.yml中列出了其他常见的Beat参数,以及相关注释。关于Beats的一个有趣的事情是,他们的消息可以直接发送到Elasticsearch或Logstash进行进一步处理。这在上述配置文件中配置。redditbeat:period:10soutput.elasticsearch:hosts:["localhost:9200"]output.logstash:hosts:["localhost:5044"]enabled:true第8段(可获0.78积分)Re;7个月前此配置片段将每10秒循环运行Run方法,并将消息发送到在localhost上运行的Logstash实例在端口5044上。这可以在运行Beat时被覆盖(见下文)。注意:为了使Logstash接受来自Beats的消息,必须安装LogstashBeat插件,并且必须为Beats配置Logstash的input:input{beats{port=>5044}}要构建项目,请在项目的根目录中键入make。它将创建一个可以运行的可执行文件。./redditbeat-e-Eredditbeat.subreddit=java-E参数可以覆盖在的redditbeat.yml配置文件中找到的参数(见上文)。在这里,它设置subreddit读为“java”,而不是默认的“elastic”。第9段(可获1.3积分)Re;7个月前输出如下所示:2016/12/1714:51:19.748329client.go:184:DBGPublish:{"@timestamp":"2016-12-17T14:51:19.748Z","beat":{"hostname":"LSNM33795267A","name":"LSNM33795267A","version":"6.0.0-alpha1"},"message":"{"kind":"t3","data":{"contest_mode":false,"banned_by":null,"domain":"blogs.oracle.com","subreddit":"java","selftext_html":null,"selftext":"","likes":null,"suggested_sort":null,"user_reports":[],"secure_media":null,"saved":false,"id":"5ipzgq","gilded":0,"secure_media_embed":{},"clicked":false,"report_reasons":null,"author":"pushthestack","media":null,"name":"t3_5ipzgq","score":11,"approved_by":null,"over_18":false,"removal_reason":null,"hidden":false,"thumbnail":"","subreddit_id":"t5_2qhd7","edited":false,"link_flair_css_class":null,"author_flair_css_class":null,"downs":0,"mod_reports":[],"archived":false,"media_embed":{},"is_self":false,"hide_score":false,"spoiler":false,"permalink":"/r/java/comments/5ipzgq/jdk_9_will_no_longer_bundle_javadb/","locked":false,"stickied":false,"created":1481943248.0,"url":"https://blogs.oracle.com/java-platform-group/entry/deferring_to_derby_in_jdk","author_flair_text":null,"quarantine":false,"title":"JDK9willnolongerbundleJavaDB","created_utc":1481914448.0,"link_flair_text":null,"distinguished":null,"num_comments":4,"visited":false,"num_reports":null,"ups":11}}","type":"redditbeat"}

❼ vscode go 调试配置文件怎么写

%退出vs2008(或者在未启动vs的状态下),你把你编的工程目录中的debug目录全部删除之后你再看看。% %如果你确定你的语法没有错误,你再新建一个新工程把代码复制里重新编译试试看,如果还是不行,那我就不知道了。% %你试试呗,诸如dev-C++啊,…

❽ 如何在Spring容器中加载自定义的配置文件

配置文件名为:project.properties,内容如下:# 是否开启逻辑删除del.filter.on=falsedomain=http://www.366go.cn/修改Spring配置文件之前代码:<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:dbinfo.properties</value> </list> </property></bean>修改后的配置文件<bean id="propertyConfigurer" class="com.hisun.core.util."> <property name="locations"> <list> <value>classpath:dbinfo.properties</value> <value>classpath:project.properties</value> </list> </property></bean>加入了:project.properties,其为自定义的配置文件将PropertyPlaceholderConfigurer类修改为自定义类,PropertyPlaceholderConfigurer类的具体作用可以查资料这块儿不做详细介绍定义类类的具体内容为下,import java.util.HashMap;import java.util.Map;import java.util.Properties; import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.;import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; public class extends PropertyPlaceholderConfigurer { private static Map ctxPropertiesMap; @Override protected void processProperties( beanFactoryToProcess, Properties props) throws BeansException { super.processProperties(beanFactoryToProcess, props); ctxPropertiesMap = new HashMap(); for (Object key : props.keySet()) { String keyStr = key.toString(); String value = props.getProperty(keyStr); ctxPropertiesMap.put(keyStr, value); } } public static Object getContextProperty(String name) { return ctxPropertiesMap.get(name); }}定义获取配置文件中值的类SpringPropertiesUtil类的具体内容如下: import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component; /** * Spring-PropertiesUtil工具类 -获取属性值 * */@Componentpublic class SpringPropertiesUtil implements ApplicationContextAware { public static final String KEY = "propertyConfigurer"; private static ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringPropertiesUtil.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取配置文件中的内容 * * @param keyName * @return */ public static String parseStr(String keyName) { cp = () applicationContext .getBean(KEY); return cp.getContextProperty(keyName).toString(); } /** * 获取配置文件中的内容 * * @param keyName * @return */ public static int parseInt(String keyName) { cp = () applicationContext .getBean(KEY); return Integer.parseInt(cp.getContextProperty(keyName).toString()); } /** * 获取配置文件中的内容 * * @param keyName * @return */ public static double parseDouble(String keyName) { cp = () applicationContext .getBean(KEY); return Double.parseDouble(cp.getContextProperty(keyName).toString()); }}这样,在项目当中就能够方便快速的获取properties文件中配置的参数如SpringPropertiesUtil.parseStr(“content”)

❾ 如何让golang 把变量解析为json,并输出为文件。

1. 不管golang从json文件读取数据,还是写数据到json配置文件,都需要encoding/json包,如下回:import ("encoding/json")2. 编码JSON,输答出数据到json文件,有方法如下:json.Marshal(xxx) 和 json.MarshalIndent(c, "", " ") ,两个方法的区别是,MarshalIndent(c, "", " ")方法按照json格式 缩进,也就是美化了的 可读性很高的 带缩进的 Json数据。所以只要是json格式数据,当然用第二个方法啦。3. 具体代码如下:c := make(map[string]interface{})c["name"] = "Gopher"c["title"] = "programmer"c["contact"] = map[string]interface{}{"home": "415.333.3333","cell": "415.555.5555",

❿ 怎样利用struts2漏洞读取配置文件

lsb_release -a 内核版本 系统版本arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 – (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd – 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件ls -lh 显示权限 ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 chmod Go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chgrp group1 file1 改变文件的群组 chown user1:group1 file1 改变一个文件的所有人和群组属性 find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 – 运行该文件的用户也被赋予和所有者同样的权限 chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 chmod g+s /home/public 设置一个目录的SGID 位 – 类似SUID ,不过这是针对目录的 chmod g-s /home/public 禁用一个目录的 SGID 位 chmod o+t /home/public 设置一个文件的 STIKY 位 – 只允许合法所有人删除文件 chmod o-t /home/public 禁用一个目录的 STIKY 位文件的特殊属性 – 使用 "+" 设置权限,使用 "-" 用于取消 chattr +a file1 只允许以追加方式读写文件 chattr +c file1 允许这个文件能被内核自动压缩/解压 chattr +d file1 在进行文件系统备份时,mp程序将忽略这个文件 chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 允许一个文件被安全地删除 chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr 显示特殊的属性bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1.gz'的文件 gzip file1 压缩一个叫做 'file1'的文件 gzip -9 file1 最大程度压缩 rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' rar x file1.rar 解压rar包 unrar x file1.rar 解压rar包 tar -cvf archive.tar file1 创建一个非压缩的 tarball tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 tar -tf archive.tar 显示一个包中的内容 tar -xvf archive.tar 释放一个包 tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 zip file1.zip file1 创建一个zip格式的压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包unrar e -p lanlan.rar 解压有密码的rar压缩包apt-get install package_name 安装/更新一个 deb 包 apt-cdrom install package_name 从光盘安装/更新一个 deb 包 apt-get update 升级列表中的软件包 apt-get upgrade 升级所有已安装的软件 apt-get remove package_name 从系统删除一个deb包 apt-get check 确认依赖的软件仓库正确 apt-get clean 从下载的软件包中清理缓存dpkg -i package.deb 安装/更新一个 deb 包 dpkg -r package_name 从系统删除一个 deb 包 dpkg -l 显示系统中所有已经安装的 deb 包 dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 dpkg –contents package.deb 显示尚未安装的一个包所提供的文件列表 dpkg -S /bin/ping 确认所给的文件由哪个deb包提供rpm -ivh package.rpm 安装一个rpm包 rpm -ivh –nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 rpm -U package.rpm 更新一个rpm包但不改变其配置文件 rpm -F package.rpm 更新一个确定已经安装的rpm包 rpm -e package_name.rpm 删除一个rpm包 rpm -qa 显示系统中所有已经安装的rpm包 rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包 rpm -qi package_name 获取一个已安装包的特殊信息 rpm -qg "System Environment/Daemons" 显示一个组件的rpm包 rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 rpm -q package_name –whatrequires 显示与一个rpm包存在依赖关系的列表 rpm -q package_name –whatprovides 显示一个rpm包所占的体积 rpm -q package_name –scripts 显示在安装/删除期间所执行的脚本l rpm -q package_name –changelog 显示一个rpm包的修改历史 rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 rpm –import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 rpm –checksig package.rpm 确认一个rpm包的完整性 rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 rpm -Va 检查系统中所有已安装的rpm包- 小心使用 rpm -Vp package.rpm 确认一个rpm包还未安装


赞 (0)