linux系统扩展名大全,Linux系统文件扩展名学习
Linux系統(tǒng)下的擴(kuò)展名并不能標(biāo)識(shí)該文件是屬于哪一種類型的文件。
文件是否可以執(zhí)行等都跟文件的擴(kuò)展名無關(guān)。
因?yàn)槲募cript沒有執(zhí)行權(quán)限,所以也就無法執(zhí)行,
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系統(tǒng)中,雖然擴(kuò)展名也和具體的程序相關(guān)聯(lián)。
但文件是否可以執(zhí)行卻是跟擴(kuò)展名無關(guān)的。
也許這種關(guān)聯(lián)是為了管理上的方便吧?
Linux系統(tǒng)下常見的擴(kuò)展名有:
.sh,通常用來表明這個(gè)文件是一個(gè)shell script文件;
.so(shared object),共享庫(kù)文件,這和windows系統(tǒng)下的dll很像,它可以在程序運(yùn)行時(shí)動(dòng)態(tài)裝載;
.ko(kernel object),這是從Linux內(nèi)核版本2.6之后才有的,它又通常被稱之為模塊(module);
.o,即編譯某個(gè)源文件所生成的目標(biāo)文件;
.a,即靜態(tài)庫(kù)文件,它會(huì)在編譯階段就被打包到可執(zhí)行程序中;
Linux系統(tǒng)支持.so和.ko,所以它使得模塊化變得簡(jiǎn)單。
那要如何根據(jù)需要編譯出自己的.so或.ko?
這就要看Makefile文件怎么寫了,要透過Makefile向編譯器(gcc)傳遞正確的編譯參數(shù),
這樣編譯器就會(huì)根據(jù)用戶的需求編譯出對(duì)應(yīng)的文件。
比如在Makefile中向編譯器指定-shared參數(shù),那編譯器就知道用戶是需要編譯一個(gè)
.so檔案出來。
簡(jiǎn)言之:
編譯器最終的輸出結(jié)果是由Makefile中的配置決定的;
Makefile是由用戶根據(jù)需要設(shè)定的。
gcc的命令行參數(shù)有:
鏈接選項(xiàng)、優(yōu)化選項(xiàng)以及c語(yǔ)言選項(xiàng)等等。
軟件=程序+文檔,
程序=算法+數(shù)據(jù)結(jié)構(gòu)
總結(jié)
以上是生活随笔為你收集整理的linux系统扩展名大全,Linux系统文件扩展名学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql建表语句转达梦_MySQL建表
- 下一篇: 企业服务总线全双工异步通信机