Linux下的文件及文件后缀名
1、Linux文件的擴展名;
一談到文件類型,大家就能想到Windows的文件類型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根據文件的后綴就能判斷文件的類型。但在Linux一個文件是否能被執行,和后綴名沒有太大的關系,主要看文件的屬性有關。但我們了解一下Linux文件的后綴名還是有必要的,特別是我們自己創建一些文件,最好還是加后綴名,這樣做的目的是僅僅是為了我們的在應用時方便。
現在的Linux桌面環境和Windows一樣智能化,文件的類型是和相應的程序關聯的。在我們打開某個文件時,系統會自動判斷用哪個應用程序打開。如果從這方面來說,Linux桌面環境和Windows桌面沒有太大的區別。
在Linux中,帶有擴展名的文件,只能代表程序的關聯,并不能說明文件是可以執行,從這方面來說,Linux的擴展名沒有太大的意義。
file.tar.gz file.tgz file.tar.bz2 file.rar file.gz file.zip ... ... 這些大家都熟悉,是歸檔文件。要通過相應的工具來解壓或提取;
file.PHP?這個大家都知道吧,是能用php語言解釋器進行解釋,能用瀏覽器打開的文件;
file.so 這類是庫文件;
file.doc file.obt 這是OpenOffice 能打開的文件;
... ...
用一些工具創建的文件,其后綴也不相同,就看我們用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,創建出來的文件后綴名也不一樣。
2、Linux 文件類型;
Linux文件類型和Linux文件的文件名所代表的意義是兩個不同的概念。我們通過一般應用程序而創建的比如file.txt、file.tar.gz ,這些文件雖然要用不同的程序來打開,但放在Linux文件類型中衡量的話,大多是常規文件(也被稱為普通文件)。
Linux文件類型常見的有:普通文件、目錄、字符設備文件、塊設備文件、符號鏈接文件等;現在我們進行一個簡要的說明;
2.1 普通文件;
-rw-r--r-- 1 root root 53K 03-16 08:54 install.log
我們用 ls -lh 來查看某個文件的屬性,可以看到有類似 -rw-r--r-- ,值得注意的是第一個符號是 - ,這樣的文件在Linux中就是普通文件。這些文件一般是用一些相關的應用程序創建,比如圖像工具、文檔工具、歸檔工具... .... 或 cp工具等。這類文件的刪除方式是用rm 命令;
2.2 目錄;
總計 14M
-rw-r--r-- 1 root root?????2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root???53K 03-16 08:54 install.log
-rw-r--r-- 1 root root???14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17
drwxr-xr-x 2 root root??4.0K 04-19 10:53 mydir
drwxr-xr-x 2 root root??4.0K 03-17 04:25 Public
當我們在某個目錄下執行,看到有類似 drwxr-xr-x ,這樣的文件就是目錄,目錄在Linux是一個比較特殊的文件。注意它的第一個字符是d。創建目錄的命令可以用 mkdir 命令,或cp命令,cp可以把一個目錄復制為另一個目錄。刪除用rm 或rmdir命令。
2.3 字符設備或塊設備文件;
如時您進入/dev目錄,列一下文件,會看到類似如下的;
[root@localhost ~]# ls -la /dev/ttycrw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty
[root@localhost ~]# ls -la /dev/hda1
brw-r----- 1 root disk 3, 1 2006-04-19 /dev/hda1
我們看到/dev/tty的屬性是 crw-rw-rw- ,注意前面第一個字符是 c ,這表示字符設備文件。比如貓等串口設備;
我們看到 /dev/hda1 的屬性是 brw-r----- ,注意前面的第一個字符是b,這表示塊設備,比如硬盤,光驅等設備;
這個種類的文件,是用mknode來創建,用rm來刪除。目前在最新的Linux發行版本中,我們一般不用自己來創建設備文件。因為這些文件是和內核相關聯的。
2.4 套接口文件;
當我們啟動MySQL服務器時,會產生一個mysql.sock的文件。
[root@localhost ~]# ls -lh /var/lib/mysql/mysql.socksrwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock
注意這個文件的屬性的第一個字符是 s。我們了解一下就行了。
2.5 符號鏈接文件;
lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log
當我們查看文件屬性時,會看到有類似 lrwxrwxrwx,注意第一個字符是l,這類文件是鏈接文件。是通過ln -s 源文件名新文件名。上面是一個例子,表示setup.log是install.log的軟鏈接文件。怎么理解呢?這和Windows操作系統中的快捷方式有點相似。
符號鏈接文件的創建方法舉例;
[root@localhost ~]# ls -lh kernel-2.6.15-1.2025_FC5.i686.rpm-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
[root@localhost ~]# ln -s kernel-2.6.15-1.2025_FC5.i686.rpm??kernel.rpm
[root@localhost ~]# ls -lh kernel*
-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root??33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
3、關于本文;
???在Linux環境下一個文件是否能被執行,和后綴名沒有太大的關系,主要看文件的屬性有關。但我們了解一下Linux文件的后綴名還是有必要的,特別是我們自己創建一些文件,最好還是加后綴名,這樣做的目的是僅僅是為了我們的在應用時方便。
? ? ? ? ?現在的Linux桌面環境和Windows一樣智能化,文件的類型是和相應的程序關聯的。在我們打開某個linux文件時,系統會自動判斷用哪個應用程序打開。如果從這方面來說,Linux桌面環境和Windows桌面沒有太大的區別。? ? ? ? ?在Linux中,帶有擴展名的文件,只能代表程序的關聯,并不能說明文件是可以執行,從這方面來說,Linux的擴展名沒有太大的意義。
?
Linux下常見的文件擴展名
*.php ------這個大家都知道吧,是能用php語言解釋器進行解釋,能用瀏覽器打開的文件;
*.so -------這類是庫文件;
*.doc??*.obt --------這是OpenOffice 能打開的文件;
.bz2 ------bzip2的壓縮文件
.gz ------gzip的壓縮文件
.tar ------tar打包文件(是包文件不是壓縮文件)
.tbz------tar打包并用bzip壓縮文件
.tgz-----tar打包并用gzip壓縮的文件
.au -----audio文件
.gif -----gif圖象文件
.html/.htm-----HTML文件
.jpg-----JPEG圖象文件
.pdf------電子文檔(PDF格式的)
.png-----PNG圖象文件
.ps------postscinpt文件(打印格式文件)
.txt------純文本文件
.wav-----audio文件
.xpm-----圖象文件
.conf-------配置文件
.lock-------LOCK文件(用來判斷一個文件或設備是否被使用)
.rpm------REDHATPackage.Manager文件(套件包或軟件包)
.c -------C源程序代碼文件
.cpp------C++源程序代碼文件
.h -------C或C++程序的頭文件
.o------程序目標文件
.pl------perl腳本文件
.so-----類庫文件
?
以下是部分后綴的詳細解釋:
1.*.sh
sh是linux,unix命令, 用途:調用缺省 shell。 語法:請參閱 ksh 命令的語法。將 /usr/bin/sh 文件鏈接到 Korn shell。 描述:sh 命令調用缺省 shell 并使用它的語法和標志。鏈接到 /usr/bin/sh 路徑的 shell 是缺省的 shell。操作系統的標準配置把 /usr/bin/sh 路徑鏈接到 Korn shell。關于 Korn shell 功能的具體信息,請參閱《AIX 5L V5.2 系統用戶指南:操作系統與設備》中的『Korn Shell 或 POSIX Shell 命令』。 標志:請參閱 Korn shell(ksh 命令)的標志。文件:/usr/bin/sh 包含 sh 命令。
?
2.*.cfg
?????這只是一個為開發及使用方便而"發明"的一個后綴名。這種文件沒有固定的格式,用途也僅僅是保存用戶的設置。一般為只讀,也可以用于讀寫。
?????同樣,為了方便起見,里面的內容大多數時候也確實是文本。可以用任何文本編輯器打開。本例中用Source insight。
?????智能手機中的文件:CFG 是一個引導文件, CFG 和TFS文件放在同一文件夾中,相當于程序里的頭文件。tfs的cfg文件,可以用resource manager 生成。
??????CFG(Config)腳本文件,一般用于程序讀取指定值,以下為常見格式:
例:
102 (Home)
115 (VolumeUp)
114 (VolumeDown)
248 (Reading)
158 (Back)
139 (Menu)
end
3. *.ko
???是Linux 2.6內核使用的動態連接文件的后綴名,也就是模塊文件,用來在Linux系統啟動時加載內核模塊,一般是驅動程序。
???加載:
???modprobe module-name???????or??????????insmod /path-to/module-name.ko
???但要注意的是,該模塊在跟你系統環境類似的庫及內核版本下編譯才可以使用,否則會出錯。
?
?
4. *.conf
????程序配置文件,啟動netmeeting
????應用系統中的配置文件,在類unix系統使用廣泛,大多數同時有windows和類unix系統版本的軟件也使用
?
5. *.allow和*.deny
/etc/hosts.allow和/etc/hosts.deny? ? ? ? ?這兩個文件是tcpd服務器的配置文件,tcpd服務器可以控制外部IP對本機服務的訪問.這兩個配置文件的格式如下:
? ? ? ?#服務進程名:主機列表:當規則匹配時可選的命令操作
? ? ? ?server_name:hosts-list[:command]
? ? ? ? ?/etc/hosts.allow控制可以訪問本機的ip地址, ? ? ? ?/etc/hosts.deny控制禁止訪問本機的IP. ? ? ? ?如果兩個文件的配置有沖突,以/etc/hosts.deny為準.下面是一個/etc/hosts.allow的示例:
ALL:127.0.0.1 #允許本機訪問本機所有服務進程
smbd:192.168.0.0/255.255.255.0 #允許192.168.0.網段的IP訪問smbd服務
ALL關鍵字匹配所有情況,EXCEPT匹配除了某些項之外的情況,PARANOID匹配你想控制的IP地址和它的域名不匹配時(域名偽裝)的情況. 6. *.types ? ? 在遇到有2個后綴的文件時,在該文件中檢查這個有2個后綴的文件是否被定義了,以便選擇合適的文件處理方法。 ? ?This file controls what Internet media types are sent to the client for given file extension(s). ? ? ?每遇到一種后雙重后綴名(如xxx.php.rar)的文件,Apache都會去conf/mime.types 文件中檢查最后一個后綴, 如果最后一個后綴并沒有在mime.types文件中定義, 則使用前一個后綴來解釋 , 因為在默認情況下,rar并未在mime.types中定義, 故Apache會使用php后綴來解釋文件。(這就是漏洞的原因所在) 7. *.rc ? ? ?VC中以rc為擴展名的文件稱為資源腳本文件, 其中包含了應用程序中用到的所有的windows資源, rc文件可以直接在VC集成環境中以可視化的方法進行編輯和修改。
8. *.so ? ?在linux環境下,c++編譯得到庫文件后綴包括:.so or .a or .la,當然,linux下文件的類型是不依賴于其后綴名的,后綴及其含義:
.so 為共享庫 : 動態庫(shared library/shared object/dynamic link library) .so.1, .so.6等:后邊的是表示版本而已,這都是動態運行庫,大部分屬于基礎庫,即glibc。 .a為靜態庫 : archive / static library
.la為libtool自動生成的一些共享庫,可以用vi編輯查看,主要記錄了一些配置信息。可以用如下命令查看*.la文件的格式? ? ?file *.la
總結
以上是生活随笔為你收集整理的Linux下的文件及文件后缀名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年5月语音合成(TTS)和语音识
- 下一篇: 开发实用Linux命令