歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統文件擴展名學習

Linux系統文件擴展名學習

日期:2017/2/28 14:37:19   编辑:Linux教程

Linux系統下的擴展名並不能標識該文件是屬於哪一種類型的文件。
文件是否可以執行等都跟文件的擴展名無關。

因為文件script沒有執行權限,所以也就無法執行,
sh-3.2# touch ./script
sh-3.2# ls -lh ./script
-rw-r--r-- 1 root root 0 Dec 28 06:15 ./script
sh-3.2#
sh-3.2# ./script
sh: /script: Permission denied
sh-3.2#
sh-3.2# chmod 755 ./script
sh-3.2# ./script
sh-3.2# echo $?
0
sh-3.2#

在Linux系統中,雖然擴展名也和具體的程序相關聯。
但文件是否可以執行卻是跟擴展名無關的。
也許這種關聯是為了管理上的方便吧?

Linux系統下常見的擴展名有:
.sh,通常用來表明這個文件是一個shell script文件;
.so(shared object),共享庫文件,這和windows系統下的dll很像,它可以在程序運行時動態裝載;
.ko(kernel object),這是從Linux內核版本2.6之後才有的,它又通常被稱之為模塊(module);
.o,即編譯某個源文件所生成的目標文件;
.a,即靜態庫文件,它會在編譯階段就被打包到可執行程序中;

Linux系統支持.so和.ko,所以它使得模塊化變得簡單。
那要如何根據需要編譯出自己的.so或.ko?
這就要看Makefile文件怎麼寫了,要透過Makefile向編譯器(gcc)傳遞正確的編譯參數,
這樣編譯器就會根據用戶的需求編譯出對應的文件。
比如在Makefile中向編譯器指定-shared參數,那編譯器就知道用戶是需要編譯一個
.so檔案出來。
簡言之:
編譯器最終的輸出結果是由Makefile中的配置決定的;
Makefile是由用戶根據需要設定的。

gcc的命令行參數有:
鏈接選項、優化選項以及c語言選項等等。

軟件=程序+文檔,
程序=算法+數據結構

Linux系統的文件類型與文件的擴展名 http://www.linuxidc.com/Linux/2007-05/4383.htm

Copyright © Linux教程網 All Rights Reserved