A. 详解 Tomcat 配置文件 server.xml
前言
Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。
本文将通过实例,介绍server.xml中各个组件的配置,并详细说明Tomcat各个核心组件的作用以及各个组件之间的相互关系。
说明:由于server.xml文件中元素与Tomcat中组件的对应关系,后文中为了描述方便,“元素”和“组件”的使用不严格区分。
一、一个server.xml配置实例
server.xml位于$TOMCAT_HOME/conf目录下;下面是一个server.xml实例。后文中将结合该实例讲解server.xml中,各个元素的含义和作用;在阅读后续章节过程中,可以对照该xml文档便于理解。
二、server.xml文档的元素分类和整体结构
1、整体结构
server.xml的整体结构如下:
该结构中只给出了Tomcat的核心组件,除了核心组件外,Tomcat还有一些其他组件,下面介绍一下组件的分类。
2、元素分类
server.xml文件中的元素可以分为以下4类:
(1)顶层元素:和
元素是整个配置文件的根元素,元素则代表一个Engine元素以及一组与之相连的Connector元素。
(2)连接器:
代表了外部客户端发送请求到特定Service的接口;同时也是外部客户端从特定Service接收响应的接口。
(3)容器:
容器的功能是处理Connector接收进来的请求,并产生相应的响应。Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。一个Engine组件可以处理Service中的所有请求,一个Host组件可以处理发向一个特定虚拟主机的所有请求,一个Context组件可以处理一个特定Web应用的所有请求。
(4)内嵌组件:可以内嵌到容器中的组件。实际上,Server、Service、Connector、Engine、Host和Context是最重要的最核心的Tomcat组件,其他组件都可以归为内嵌组件。
下面将详细介绍Tomcat中各个核心组件的作用,以及相互之间的关系。
三、核心组件
本部分将分别介绍各个核心组件的作用、特点以及配置方式等。
1、Server
Server元素在最顶层,代表整个Tomcat容器,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。
在第一部分的例子中,在最外层有一个元素,shutdown属性表示关闭Server的指令;port属性表示Server接收shutdown指令的端口号,设为-1可以禁掉该端口。
Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。
2、Service
Service的作用,是在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。
在第一部分的例子中,Server中包含一个名称为“Catalina”的Service。实际上,Tomcat可以提供多个Service,不同的Service监听不同的端口,后文会有介绍。
3、Connector
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。
通过配置Connector,可以控制请求Service的协议及端口号。在第一部分的例子中,Service包含两个Connector:
在这个例子中,Tomcat监听HTTP请求,使用的是8080端口,而不是正式的80端口;实际上,在正式的生产环境中,Tomcat也常常监听8080端口,而不是80端口。这是因为在生产环境中,很少将Tomcat直接对外开放接收请求,而是在Tomcat和客户端之间加一层代理服务器(如nginx),用于请求的转发、负载均衡、处理静态文件等;通过代理服务器访问Tomcat时,是在局域网中,因此一般仍使用8080端口。
(2)通过配置第2个Connector,客户端可以通过8009端口号使用AJP协议访问Tomcat。AJP协议负责和其他的HTTP服务器(如Apache)建立连接;在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。之所以使用Tomcat和其他服务器集成,是因为Tomcat可以用作Servlet/jsP容器,但是对静态资源的处理速度较慢,不如Apache和IIS等HTTP服务器;因此常常将Tomcat与Apache等集成,前者作Servlet容器,后者处理静态资源,而AJP协议便负责Tomcat和Apache的连接。Tomcat与Apache等集成的原理如下图(图片来源):
4、Engine
Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。
前面已经提到过,Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。
在第一部分的例子中,Engine的配置语句如下:
其中,name属性用于日志和错误信息,在整个Server中应该唯一。defaultHost属性指定了默认的host名称,当发往本机的请求指定的host名称不存在时,一律使用defaultHost指定的host进行处理;因此,defaultHost的值,必须与Engine中的一个Host组件的name属性值匹配。
5、Host
(1)Engine与Host
Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
(2)Host的作用
Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
Host组件代表的虚拟主机,对应了服务器中一个网络名实体(如”www.test.com”,或IP地址”116.25.25.25”);为了使用户可以通过网络名连接Tomcat服务器,这个名字应该在DNS服务器上注册。
客户端通常使用主机名来标识它们希望连接的服务器;该主机名也会包含在HTTP请求头中。Tomcat从HTTP头中提取出主机名,寻找名称匹配的主机。如果没有匹配,请求将发送至默认主机。因此默认主机不需要是在DNS服务器中注册的网络名,因为任何与所有Host名称不匹配的请求,都会路由至默认主机。
(3)Host的配置
在第一部分的例子中,Host的配置如下:
下面对其中配置的属性进行说明:
name属性指定虚拟主机的主机名,一个Engine中有且仅有一个Host组件的name属性与Engine组件的defaultHost属性相匹配;一般情况下,主机名需要是在DNS服务器中注册的网络名,但是Engine指定的defaultHost不需要,原因在前面已经说明。
unpackWARs指定了是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。
Host的autoDeploy和appBase属性,与Host内Web应用的自动部署有关;此外,本例中没有出现的xmlBase和deployOnStartup属性,也与Web应用的自动部署有关;将在下一节(Context)中介绍。
6、Context
(1)Context的作用
Context元素代表在特定虚拟主机上运行的一个Web应用。在后文中,提到Context、应用或Web应用,它们指代的都是Web应用。每个Web应用基于WAR文件,或WAR文件解压后对应的目录(这里称为应用目录)。
Context是Host的子容器,每个Host中可以定义任意多的Context元素。
在第一部分的例子中,可以看到server.xml配置文件中并没有出现Context元素的配置。这是因为,Tomcat开启了自动部署,Web应用没有在server.xml中配置静态部署,而是由Tomcat通过特定的规则自动部署。下面介绍一下Tomcat自动部署Web应用的机制。
(2)Web应用自动部署
Host的配置
要开启Web应用的自动部署,需要配置所在的虚拟主机;配置的方式就是前面提到的Host元素的deployOnStartup和autoDeploy属性。如果deployOnStartup和autoDeploy设置为true,则tomcat启动自动部署:当检测到新的Web应用或Web应用的更新时,会触发应用的部署(或重新部署)。二者的主要区别在于,deployOnStartup为true时,Tomcat在启动时检查Web应用,且检测到的所有Web应用视作新应用;autoDeploy为true时,Tomcat在运行时定期检查新的Web应用或Web应用的更新。除此之外,二者的处理相似。
通过配置deployOnStartup和autoDeploy可以开启虚拟主机自动部署Web应用;实际上,自动部署依赖于检查是否有新的或更改过的Web应用,而Host元素的appBase和xmlBase设置了检查Web应用更新的目录。
其中,appBase属性指定Web应用所在的目录,默认值是webapps,这是一个相对路径,代表Tomcat根目录下webapps文件夹。
xmlBase属性指定Web应用的XML配置文件所在的目录,默认值为conf//,例如第一部分的例子中,主机localhost的xmlBase的默认值是$TOMCAT_HOME/conf/Catalina/localhost。
检查Web应用更新
一个Web应用可能包括以下文件:XML配置文件,WAR包,以及一个应用目录(该目录包含Web应用的文件结构);其中XML配置文件位于xmlBase指定的目录,WAR包和应用目录位于appBase指定的目录。
Tomcat按照如下的顺序进行扫描,来检查应用更新:
A、扫描虚拟主机指定的xmlBase下的XML配置文件
B、扫描虚拟主机指定的appBase下的WAR文件
C、扫描虚拟主机指定的appBase下的应用目录
元素的配置
Context元素最重要的属性是docBase和path,此外reloadable属性也比较常用。
docBase指定了该Web应用使用的WAR包路径,或应用目录。需要注意的是,在自动部署场景下(配置文件位于xmlBase中),docBase不在appBase目录中,才需要指定;如果docBase指定的WAR包或应用目录就在docBase中,则不需要指定,因为Tomcat会自动扫描appBase中的WAR包和应用目录,指定了反而会造成问题。
path指定了访问该Web应用的上下文路径,当请求到来时,Tomcat根据Web应用的 path属性与URI的匹配程度来选择Web应用处理相应请求。例如,Web应用app1的path属性是”/app1”,Web应用app2的path属性是”/app2”,那么请求/app1/index.html会交由app1来处理;而请求/app2/index.html会交由app2来处理。如果一个Context元素的path属性为””,那么这个Context是虚拟主机的默认Web应用;当请求的uri与所有的path都不匹配时,使用该默认Web应用来处理。
但是,需要注意的是,在自动部署场景下(配置文件位于xmlBase中),不能指定path属性,path属性由配置文件的文件名、WAR文件的文件名或应用目录的名称自动推导出来。如扫描Web应用时,发现了xmlBase目录下的app1.xml,或appBase目录下的app1.WAR或app1应用目录,则该Web应用的path属性是”app1”。如果名称不是app1而是ROOT,则该Web应用是虚拟主机默认的Web应用,此时path属性推导为””。
reloadable属性指示tomcat是否在运行时监控在WEB-INF/classes和WEB-INF/lib目录下class文件的改动。如果值为true,那么当class文件改动时,会触发Web应用的重新加载。在开发环境下,reloadable设置为true便于调试;但是在生产环境中设置为true会给服务器带来性能压力,因此reloadable参数的默认值为false。
下面来看自动部署时,xmlBase下的XML配置文件app1.xml的例子:
在该例子中,docBase位于Host的appBase目录之外;path属性没有指定,而是根据app1.xml自动推导为”app1”;由于是在开发环境下,因此reloadable设置为true,便于开发调试。
自动部署举例
最典型的自动部署,就是当我们安装完Tomcat后,$TOMCAT_HOME/webapps目录下有如下文件夹:
当我们启动Tomcat后,可以使用http://localhost:8080/来访问Tomcat,其实访问的就是ROOT对应的Web应用;我们也可以通过http://localhost:8080/docs来访问docs应用,同理我们可以访问examples/host-manager/manager这几个Web应用。
(3)server.xml中静态部署Web应用
除了自动部署,我们也可以在server.xml中通过元素静态部署Web应用。静态部署与自动部署是可以共存的。在实际应用中,并不推荐使用静态部署,因为server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而自动部署可以在Tomcat运行时通过定期的扫描来实现,不需要重启服务器。
server.xml中使用Context元素配置Web应用,Context元素应该位于Host元素中。举例如下:
1
docBase:静态部署时,docBase可以在appBase目录下,也可以不在;本例中,docBase不在appBase目录下。
path:静态部署时,可以显式指定path属性,但是仍然受到了严格的限制:只有当自动部署完全关闭(deployOnStartup和autoDeploy都为false)或docBase不在appBase中时,才可以设置path属性。在本例中,docBase不在appBase中,因此path属性可以设置。
reloadable属性的用法与自动部署时相同。
四、核心组件的关联
1、整体关系
核心组件之间的整体关系,在上一部分有所介绍,这里总结一下:
Server元素在最顶层,代表整个Tomcat容器;一个Server元素中可以有一个或多个Service元素。
Service在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;Connector接收请求,Engine处理请求。
Engine、Host和Context都是容器,且 Engine包含Host,Host包含Context。每个Host组件代表Engine中的一个虚拟主机;每个Context组件代表在特定Host上运行的一个Web应用。
2、如何确定请求由谁处理?
当请求被发送到Tomcat所在的主机时,如何确定最终哪个Web应用来处理该请求呢?
(1)根据协议和端口号选定Service和Engine
Service中的Connector组件可以接收特定端口的请求,因此,当Tomcat启动时,Service组件就会监听特定的端口。在第一部分的例子中,Catalina这个Service监听了8080端口(基于HTTP协议)和8009端口(基于AJP协议)。当请求进来时,Tomcat便可以根据协议和端口号选定处理请求的Service;Service一旦选定,Engine也就确定。
通过在Server中配置多个Service,可以实现通过不同的端口号来访问同一台机器上部署的不同应用。
(2)根据域名或IP地址选定Host
Service确定后,Tomcat在Service中寻找名称与域名/IP地址匹配的Host处理该请求。如果没有找到,则使用Engine中指定的defaultHost来处理该请求。在第一部分的例子中,由于只有一个Host(name属性为localhost),因此该Service/Engine的所有请求都交给该Host处理。
(3)根据URI选定Context/Web应用
这一点在Context一节有详细的说明:Tomcat根据应用的 path属性与URI的匹配程度来选择Web应用处理相应请求,这里不再赘述。
(4)举例
以请求http://localhost:8080/app1/index.html为例,首先通过协议和端口号(http和8080)选定Service;然后通过主机名(localhost)选定Host;然后通过uri(/app1/index.html)选定Web应用。
3、如何配置多个服务
通过在Server中配置多个Service服务,可以实现通过不同的端口号来访问同一台机器上部署的不同Web应用。
在server.xml中配置多服务的方法非常简单,分为以下几步:
(1)复制元素,放在当前后面。
(2)修改端口号:根据需要监听的端口号修改元素的port属性;必须确保该端口没有被其他进程占用,否则Tomcat启动时会报错,而无法通过该端口访问Web应用。
以Win7为例,可以用如下方法找出某个端口是否被其他进程占用:netstat -aon|findstr “8081″发现8081端口被PID为2064的进程占用,tasklist |findstr “2064″发现该进程为FrameworkService.exe(这是McAfee杀毒软件的进程)。
(3)修改Service和Engine的name属性
(4)修改Host的appBase属性(如webapps2)
(5)Web应用仍然使用自动部署
(6)将要部署的Web应用(WAR包或应用目录)拷贝到新的appBase下。
以第一部分的server.xml为例,多个Service的配置如下:
http://localhost:8080/docs/
http://localhost:8084/docs/
五、其他组件
除核心组件外,server.xml中还可以配置很多其他组件。下面只介绍第一部分例子中出现的组件,如果要了解更多内容,可以查看Tomcat官方文档。
1、Listener
Listener(即监听器)定义的组件,可以在特定事件发生时执行特定的操作;被监听的事件通常是Tomcat的启动和停止。
监听器可以在Server、Engine、Host或Context中,本例中的监听器都是在Server中。实际上,本例中定义的6个监听器,都只能存在于Server组件中。监听器不允许内嵌其他组件。
监听器需要配置的最重要的属性是className,该属性规定了监听器的具体实现类,该类必须实现了org.apache.catalina.LifecycleListener接口。
下面依次介绍例子中配置的监听器:
VersionLoggerListener:当Tomcat启动时,该监听器记录Tomcat、java和操作系统的信息。该监听器必须是配置的第一个监听器。
AprLifecycleListener:Tomcat启动时,检查APR库,如果存在则加载。APR,即Apache Portable Runtime,是Apache可移植运行库,可以实现高可扩展性、高性能,以及与本地服务器技术更好的集成。
JasperListener:在Web应用启动之前初始化Jasper,Jasper是JSP引擎,把JVM不认识的JSP文件解析成java文件,然后编译成class文件供JVM使用。
:与类加载器导致的内存泄露有关。
:通过该监听器,初始化< GlobalNamingResources>标签中定义的全局JNDI资源;如果没有该监听器,任何全局资源都不能使用。< GlobalNamingResources>将在后文介绍。
:当Web应用因thread-local导致的内存泄露而要停止时,该监听器会触发线程池中线程的更新。当线程执行完任务被收回线程池时,活跃线程会一个一个的更新。只有当Web应用(即Context元素)的属性设置为true时,该监听器才有效。
2、GlobalNamingResources与Realm
第一部分的例子中,Engine组件下定义了Realm组件:
Realm,可以把它理解成“域”;Realm提供了一种用户密码与web应用的映射关系,从而达到角色安全管理的作用。在本例中,Realm的配置使用name为UserDatabase的资源实现。而该资源在Server元素中使用GlobalNamingResources配置:
GlobalNamingResources元素定义了全局资源,通过配置可以看出,该配置是通过读取$TOMCAT_HOME/ conf/tomcat-users.xml实现的。
关于Tomcat域管理的更多内容,可以参考:Realm域管理
3、Valve
在第一部分的例子中,Host元素内定义了Valve组件:
单词Valve的意思是“阀门”,在Tomcat中代表了请求处理流水线上的一个组件;Valve可以与Tomcat的容器(Engine、Host或Context)关联。
不同的Valve有不同的特性,下面介绍一下本例中出现的AccessLogValve。
AccessLogValve的作用是通过日志记录其所在的容器中处理的所有请求,在本例中,Valve放在Host下,便可以记录该Host处理的所有请求。AccessLogValve记录的日志就是访问日志,每天的请求会写到一个日志文件里。AccessLogValve可以与Engine、Host或Context关联;在本例中,只有一个Engine,Engine下只有一个Host,Host下只有一个Context,因此AccessLogValve放在三个容器下的作用其实是类似的。
本例的AccessLogValve属性的配置,使用的是默认的配置;下面介绍AccessLogValve中各个属性的作用:
(1)className:规定了Valve的类型,是最重要的属性;本例中,通过该属性规定了这是一个AccessLogValve。
(2)directory:指定日志存储的位置,本例中,日志存储在$TOMCAT_HOME/logs目录下。
(3)prefix:指定了日志文件的前缀。
(4)suffix:指定了日志文件的后缀。通过directory、prefix和suffix的配置,在$TOMCAT_HOME/logs目录下,可以看到如下所示的日志文件。
(5)pattern:指定记录日志的格式,本例中各项的含义如下:
%h:远程主机名或IP地址;如果有nginx等反向代理服务器进行请求分发,该主机名/IP地址代表的是nginx,否则代表的是客户端。后面远程的含义与之类似,不再解释。
%l:远程逻辑用户名,一律是”-”,可以忽略。
%u:授权的远程用户名,如果没有,则是”-”。
%t:访问的时间。
%r:请求的第一行,即请求方法(get/post等)、uri、及协议。
%s:响应状态,200,404等等。
%b:响应的数据量,不包括请求头,如果为0,则是””-。
例如,下面是访问日志中的一条记录
pattern的配置中,除了上述各项,还有一个非常常用的选项是%D,含义是请求处理的时间(单位是毫秒),对于统计分析请求的处理速度帮助很大。
开发人员可以充分利用访问日志,来分析问题、优化应用。例如,分析访问日志中各个接口被访问的比例,不仅可以为需求和运营人员提供数据支持,还可以使自己的优化有的放矢;分析访问日志中各个请求的响应状态码,可以知道服务器请求的成功率,并找出有问题的请求;分析访问日志中各个请求的响应时间,可以找出慢请求,并根据需要进行响应时间的优化。
B. hadoop.home.dir在哪儿
1、bin:
bin目录是Hadoop最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
在这里插入图片描述
2、sbin
存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
在这里插入图片描述
文件名称 作用
hadoop-daemon.sh 通过执行hadoop命令来启动/停止一个守护进程(daemon);他可以单独开启一个进程也可以使用hadoop-daemons来开启多个进程,这样我们在某台机器挂掉时,就不用全部重新开启了
start-all.sh 调用 start-dfs.sh和start-yarn.sh(官方不建议使用)
stop-all.sh 调用 stop-dfs.sh和stop-yarn.sh(官方不建议使用)
start-dfs.sh 启动NameNode ,SecondaryNamenode ,DataNode这些进程
start-yarn.sh 启动ResourceManager,nodeManager 这些进程
stop-dfs.sh 关闭NameNode ,SecondaryNamenode ,DataNode这些进程
stop-yarn.sh 关闭ResourceManager,nodeManager 这些进程
stop-balancer.sh 停止balancer
stop-mapred.sh 停止MapRece
3、etc
存放一些hadoop的配置文件
在这里插入图片描述
文件名称 作用说明
core-site.xml Hadoop核心全局配置文件,可以其他配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性;该文件的模板文件存在于$HADOOP_HOME/src/core/core-default.xml,可将模板文件复制到conf目录,再进行修改。
hadoop-env.sh Hadoop环境变量
hdfs-site.xml HDFS配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/hdfs/hdfs-default.xml,可将模板文件复制到conf目录,再进行修改
mapred-site.xml MapRece的配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/mapred/mapredd-default.xml,可将模板文件复制到conf目录,再进行修改
slaves 用于设置所有的slave的名称或IP,每行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有IP映射配置
4、lib
该目录下存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中。
在这里插入图片描述
5、logs
该目录存放的是Hadoop运行的日志,查看日志对寻找Hadoop运行错误非常有帮助。
在这里插入图片描述
6、include
对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapRece程序。
在这里插入图片描述
7、libexec
各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
在这里插入图片描述
8、share目录
Hadoop各个模块编译后的jar包所在的目录。
在这里插入图片描述
在这里插入图片描述
文章知识点与官方知识档案匹配
CS入门技能树linux入门初识Linux
23099 人正在系统学习中
C. 谁知道电脑文件夹文件的后缀名有多少,有哪些 起什么作用
声音文件格式是用于保存数字音频信息的。它们主要有:
AIFF(.AIF):这是Apple计算机公司开发的声音文件格式,被Macintosh平台和应用程序所支持。支持压缩。
Amiga声音(.SVX):Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩。
MAC声音(.SND):Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩。
MIDI(.MID):国际MIDI协会开发的声音文件格式,被Windows平台和许多应用程序所支持,用于为乐器创建数字声音。
声霸(.VOC):Creative Labs公司开发的声音文件格式,被Windows和DOS平台所支持,支持压缩。
WAVE(.WAV):微软公司用作Windows平台上保存音频信息的资源格式。
压缩文件的后缀名
为了提高存储效率,许多公司都推出了压缩数据的方法和相应的软件,这类文件的使用主要通过压包和解包软件来进行,主要的后缀有:?arj、*.rar、*.lzh、*.jar。还有一些专用的压缩文件,如:*.ex_、*.dl_、*.d3_、*.cab等。
数据库类文件的后缀名
在Dbase、FoxBase、Foxpro系列软件的环境下有以下几类后缀:
.dbf 数据库文件(databasefile) .prg 命令文件(即程序Program)
.fxp 编译后的程序 .scx和.sct 屏幕文件
.fpt 备注字段文件 .frx和.frt 报表文件
.cbx和.pjt 标签文件 .mnx 和.mnt 菜单文件
.pjx和.pjt 工程文件 .app 应用文件
.cdx和.idx 索引文件 .qpr和.qpx SQL查询文件
.fp 配置文件 .ap 生成应用
.err 编译错误文件 .men 内存应用
.fky 键宏文件 .win 窗口文件
.pcb 库文件 .tmp 临时文件
.tbk 临时数据库文件
扩展名 文件类型 打开方式
.aiff 声音文件 Windows media Player
.!!! Netants 暂存文件 Netants
.ani 动画鼠标
.arj 压缩文件 ARJ
.avi 电影文件 Windows media Player
.awd 传真文档
.bak 备份文件
.bas Basic 语言 Basic
.bat DOS批处理文件
.bin MAC 二进制码文件 Stuffit Expander
.bmp 图象文件 画图/看图软件
.cab 压缩文件 Winzip
.cdr Corel图画文件 Corel Draw
.chk Scandisk检察后制作的文件 可以删掉
.com DOS命令文件 自执行
.cpx Cryptapix加密图片文件 Cryptapix
.cur 静态鼠标
.dbf 数据库文件 dBase, FoxBase, Access
.dll 应用程序扩展
.doc 文档文件 word
.dwg AutoCAD文件 AutoCAD
.eps Illustrator 图画文件 Adobe Illustrator
.exe 执行文件 自执行
.fon 字体文件
.gb 国标码文件 南极星文字处理
.get Getright 暂存文件
.gif 256色图象文件 画图/看图软件
.gz 可供UNIX或LINUX使用的压缩文件 Winzip
.hqx Macintosh 文件 Stuffit Expander
.htm 网页 浏览器
.html 网页 浏览器
.ico 图标
.ini 配置设置 笔记本或WordPad
.ipx IPX演示文件 浏览器加装IPX 插件
.jiff 图象文件 画图/看图软件
.jpeg 压缩过的图象文件 画图/看图软件
.jpg 压缩过的图象文件 画图/看图软件
.js javascript
.lnk 快捷方式连接文件 连接文件的相应程序
.m3u Winamp播放列表 Winamp
.mid 声音文件 Windows media Player
.mov Quicktime影像文件 Quick Time
.mp3 压缩音乐文件 Winamp
.mpeg 影像 Windows media Player
.mpg 影像 Windows media Player
.njx 南极星文档 南极星文字处理
.pcb 电子电路图设计文件 Protel PCB
.pdf 便携式文档格式,内含图片文字等等 Adobe Acrobat, Adobe Acrobat Reader
.pm5 PageMaker 5 排版文件 Page Maker
.ppt Power Point 文件 Microsoft Power Point
.ps GhostScript
.psd Photoshop文件 Adobe Photoshop
.pub Publisher排版文件 Microsoft Publisher
.qt Quicktime影像文件 Quick Time
.ra Real Audio声音文件 Real Audio
.ram Real Audio影像文件 Real Audio
.rar 压缩文件 Winrar
.rsf Richwin 字体文件
.sch 电子原理图设计文件 Protel Schematic
.scr 屏保文件
.sea Macintosh 启动文件
.sit 压缩 Stuffit Expander
.swf Flash动画文件 浏览器加装Macromedia flash 插件
.sys 系统文件
.tar UNIX压缩文件 Winzip
.tif 高质量图象文件 画图/看图软件
.tiff 高质量图象文件 画图/看图软件
.tmp 暂存文件 可以删掉
.ttf 字体文件
.txt 纯文本文件 笔记本或全部文字处理系统
.vbs Visual Basic 编程文件 Microsoft Viasual Basic
.viv VIVO影像文件 浏览器加装VIVO 插件
.vqf 压缩声音文件 Yamaha SoundVQ Player
.wav 未压缩的声音文件 Windows media Player
.wk1 Lotus 123 试算软件文件 Lotus 123, Excel
.wq1 Q-Pro 试算软件文件 Q-Pro, Excel
.wri Write文字文档 Word
.xls Excel 试算软件文件 Microsoft Excel
.Z UNIX压缩文件 Winzip
.zip 压缩文件 Winzip
D. 在LInux中用户初始配置文件有哪些,各有什么作用
1. 设置用户:用户名是系统中一个独一无二也叫登陆名。以及和它相对应的password由6-8位组成。以使用户可以通过 password来登陆系
统。同时,还有用户的家目录。是用户登陆以后的主目录。还有用户的shell包
括:Bourne shell Korn shell C shell Z shell BASH shell TC shell。用户初始化
文件用来定制用户的工作环境。
2. 用户名的组成由26个大小写字母和10个数字组成。用户名不能包括下划线和空格。同时UID的范围为100-60000所有的UID必须是唯一的。GID的范围也是100-60000。
3. 通过admintool管理用户可以包括一下方
面:Users Groups Hosts Printers Serial ports Software。Admintool必须用ROOT
用户登陆。Admintool&。使用命令修改锁定用户:passwd –l username在 /etc/shadow 中password
一项的正常显示变为*LK*表示用户已经被锁定。
Passwd中各列为:
loginID:x:UID:GID:comment:home_directory:login_shell
root UID:0 超级用户帐号,几乎没有任何约束并且不考虑其他所有的登陆,保护和许可;可以进入系统访问
daemon UID:1 控制后台进程的系统帐号
bin UID:2 管理大部分命令的帐号
sys UID:3 管理许多系统文件的帐号
adm UID:4 管理某些管理文件的帐号
lp UID:71 打印服务帐号
smtp UID:0 smtp邮件者使用简单网络管理协议。SMTP是INTERNET标准协议
uucp UID:5 为UNIX-to-UNIX拷贝程序(UUCP)捆绑数据文件和目标的帐号
nuucp UID:6 使用远程系统登陆到主机传送文件的帐号
listen UID:37 网络监听帐号
nobody UID:60001 匿名帐号,当独立于root用户建立一个需求时分派NFS服务器。nobody帐号分派软件进程时不需要任何特殊的权限。
noaccess UID:60002 需通过一些应用程序而不登陆系统时,为了访问系统而为一个用户或者进程分派的帐号
nobody4 UID:65534 SunOS4.0或者4.1的匿名帐号
/etc/shadow文件
loginID:password:lastchg:min:max:warn:inactive:expire
/etc/group文件
groupname:group-password:GID:username-list
E. GPG的5个配置文件的含义
您好
55555555555 我仿佛看过LINUX下这个GnuPG,是不是呀?嘎嘎,别笑话我就好。五个配置文件在~内/.gnupg/下:
gpg.conf 内容是容gpg工具的各种配置选项及默认设置值。
pubring.gpg 公钥
random_seed 选择随机数
secring.gpg 密钥
trustdb.gpg 信任度数据库
我乱说的,不记得。
F. LINUX中创建一个用户后系统会在哪些配置文件中作记录
Linux系统下新建一个用户会在以下几个文件中做记录,下面以admin用户为例:
1、/etc/passwd用户信息文件
cat/etc/passwd
#admin:x:503:501::/home/admin:/bin/bash
#用户名admin
2、/etc/shadow用户密码文件
cat/etc/shadow
#admin:Dnakfw28zf38w:8764:0:168:7:::
#admin用户密码,密码加密方式存放
3、/etc/group用户组文件
cat/etc/group
#admin:x:1:root,bin,admin
#admin用户隶属于admin组
4、最后是用户的家目录
cd/home/admin
G. 求最初config文件夹里的5个最关键的系统配置文件(包括sam和system)
不知道你问这个问题出于什么目的?
H. linux下,/etc/hosts文件有什么用途
hosts文件的用途:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址。
当建立dns服务器的时候,或者要搭建本地网的时候就用的着了,跟windows下面的host文件是一样的作用,而且可以用来屏蔽广告和木马。
一旦找到,系统会立即打开相应的网页,如果没有找到,则系统会将url提交到DNS服务器进行IP地址解析,etc/host代表当前计算机主机名。
(8)5个配置文件的名称和作用扩展阅读:
linux中的执行语句有:
1、[root@localhost~]#cat/etc/profile:检查/etc/目录下的profile文件内容。
2、[root@localhost~]#cat-b/etc/profile:检查/etc/目录下的profile内容,而且对非空白行进行编号,行号从1开端。
3、[root@localhost~]#cat-n/etc/profile:对/etc目录中的profile的一切的行(包含空白行)进行编号输出显现。
4、[root@localhost~]#cat-E/etc/profile:检查/etc/下的profile内容,而且在每行的结尾处附加$符号。
关于linux中[root@localhostroot]#第一、二个root,分别表示的意思如下:
root@localhostroot中第一个root表示当前登录的为root账户,localhost是主机名称。第二个root表示当前的目录为root目录,#表示当前为root权限。
另外,root用户的家目录为/root,其他用户通常为/home/用户名,但可以改变。家目录主要保存每个用户的登录信息,个人偏好及一些个人文件等。
I. 注册表5个文件是什么
HKEY-CLASSES-ROOT
文件扩展名与应用的关联及OLE信息
HKEY-CURRENT-USER
当前登录用户控制面板选项和桌面等的设置,以及映
射的网络驱动器
HKEY-LOCAL-MACHINE
计算机硬件与应用程序信息
HKEY-USERS
所有登录用户的信息
HKEY-CURRENT-CONFIG
计算机硬件配置信息
HKEY-DYN-DATA即插即用和系统性能的动态信息
J. 急急急~哪位高手可以告诉我这个qq文件夹里的文件的中文名称是什么是何用途
1.回复:config是什么意思啊?
一般是配置文件的意思
2.导出QQ密码保存的数据库文件ewh?
Ultraedit打开我们自己号码目录下的ewh.db文件,在偏移地址001eh到002dh的16个字节就是加密密码。只要用自己qq号码目录下的ewh.db文件最后4个字节以前的数据段,覆盖其他号的ewh.db文件中的相同的部分,你就可以用这个密码在本地查看他人的好友聊天记录了。更简单的方法是用你的qq号码下的ewh.db文件覆盖别人的这个文件,然后就可以用你的密码本地登录他人的qq了!
3.GameInfo(DAT文件)
游戏存档文件的扩展名.
4\MsgEx.db文件
QQ聊天记录.
5\关于QQ里头notes.db文件内容读取方法.
QQ文件夹下的notes.db的内容是二进制,用HexEdit打开后,只能显示其中一部份内容,据了解是二进制内容也被加密,所以无法全显示.
6\qqstatcount(DAT文件) ,,7\qqstatcountex(DAT文件)
qq SPACE计数器 (猜的)
8\qquhdata(DAT文件)
升级,QQ自动下载更新文件的模块
9\QRT(DAT文件)
QQ炫铃信息
10\ShareInfo(数据库文件)
ShareInfo.db 共享文件夹设置 。
希望有所帮助~~
*************************************************************
QQ目录下各文件用途不完全揭密
·QQ的安装目录下的文件
ACodec.dll (音频聊天)
+BQQApplication.dll (企业好友面板)
*CameraDll.dll (截图文件)
ChatLib.dll (聊天室相关文件)
ContentTab.dll (自定义面板)
Content_Config.ini (跟自定义面板有关)
*CQQApplication.dll (好友面板)
help_01.gif~help_13.gif (跟自定义面板有关)
InPlus.dll (视频语音聊天的设置对话框有关)
*ipsearcher.dll (ip搜索插件)
------ipwry.dat 新格式的ip库,
MailDll.dll (以下mail开头的信箱有关)
+MyIP.dat (自定义ip文件)
NewSkin.dll (皮肤,使用默认皮肤的可以删除)
OEMApplication.dll (内容资讯面板)
*QQ.exe (qq主文件)
QQAvatar.dll (和qq秀有关)
QQBUserApplication.dll (腾讯服务面板)
QQexternal.exe (跟广告有关)
QQFileTransfer.dll (文件传送)
*QQHook.dll (监视键盘的文件)
*QQLdr.exe (以下qqldr开头的和外挂有关)
QQMail.exe (以下mail开头的和信箱有关)
QQMailCore.dll
QQMailHelper.dll
+QQMMSender.dll (短信发送面板)
*QQPlugin.dll (查找好友)
*QQRes.dll (资源文件)
QQUdpGetFileLib.dll (升级,QQ自动下载更新文件的模块)
QQupdate.exe (同上)
QRingMng.dll (炫玲管理)
ShareFiles.dll (共享文件夹)
+vbscript.dll (qq皮肤有关)
VCodec.dll (以下几个和视频有关)
*vqqset.dll (视频设定文件,vqqset.dll 千万别删,否则第一次使用视频语音聊而出现设置对话框时,就会令QQ因错误退出!)
[IMScene] (场景)
[sound] (声音文件)
[smsdata] (短信)
[QRingFiles] (叫什么炫铃吧)
*[newface] (QQ头像)我做了更新版的,具体改变大家自己体会吧.
[help] (帮助,别告诉我你不回用qq)
[mailImage] (QQ邮箱)
*[Face] (表情文件)
+[Dat] (一些引用的图片文件,视情况保留)
[chatTheme] (聊天室相关文件)
[Chat] (聊天室相关文件)
[bface] (服务面板头像)
以下这些文件千万不能删:
CameraDll.dll
CQQApplication.dll
ImageOle.dll
IPSearcher.dll
Mfc42.dll
msvcp60.dll 其实也可以(各个系统兼容性决定)
QQAllInOne.dll
QQBaseClassInDll.dll
QQHelperInDll.dll
QQHook.dll 其实也可以(各个系统兼容性决定)
QQMainFrame.dll
QQPlugin.dll
QQRes.dll
QQZip.dll
riched20.dll 其实也可以(各个系统兼容性决定)
Riched32.dll 其实也可以(各个系统兼容性决定)
vbscript.dll
vqqset.dll
如果不想视频聊天,只用语音聊天,删VCodec1.dll、VCodec2.dll、VCodec.dll、VideoDevice.dll、VqqDVCapture.dll、InPlus.dll。如果再删ACodec.dll、AudioDevice.dll、vphone.dll、VqqAllInOne.dll,则在两人世界里仍可语音聊,但在收发消息里就无法语音聊天了。
QQ号码文件夹下的文件
Config.db QQ系统设置
Content_Config.ini 自定义面板设置
ewh.db QQ密码
MsgEx.db QQ聊天记录
notes.db QQ备忘录
QQMailSettingEx.dat QQMail 设置
QQMailAddr.dat QQMail 地址本
QQMailIndex.dat QQMail
QRT.dat QQ炫铃信息
MailData QQMail 本地邮件
ShareInfo.db 共享文件夹设置
User.db QQ本地好友列表
VQQ.db QQ视频设置
·下面是QQ程序的目录
QQAVFile 好友QQ秀缓存目录
CustomFace QQ自定义表情目录
CustomFaceRecv 接收的 QQ自定义表情保存目录