1、Linux文件的扩展名;
在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。
了解一下Linux文件的后缀名还是有必要的,特别是创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。
现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。
在打开某个文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。
在linux系统中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。
用一些工具创建的文件,其后缀也不相同,就看用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,创建出来的文件后缀名也不一样。
2、Linux 文件类型;
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如
file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在
Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。
Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;
2.1 普通文件;
我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... 或 cp工具等。这类文件的删除方式是用rm 命令;
2.2 目录;
[root@jb200.com ~]# ls -lh
总计 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目录,列一下文件,会看到类似如下的;
要以看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备;
/dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备;
这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。
2.4 套接口文件;
当我们启动mysql服务器时,会产生一个mysql.sock的文件。
注意此文件的属性的第一个字符是 s。
2.5 符号链接文件;
当查看文件属性时,会看到有类似 lrwxrwxrwx。
注意第一个字符是l,这类文件是链接文件。
是通过ln -s 源文件名新文件名。
以上例子,表示setup.log是install.log的软链接文件。这和Windows操作系统中的快捷方式有点相似。
符号链接文件的创建方法举例;
3、关于本文;
在linux操作系统中,下一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关
现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。在打开某个linux文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。
在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。
附,Linux下常见的文件扩展名:
部分后缀的详细解释:
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