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自定義表情保存目錄