使用Linux经常会听到这样一句话:Linux下一切皆文件。也就是说我们的任何设备在Linux下都是文件,Linux中文件种类很多,就连数据间沟通的接口也有相应的文件来负责,
我们可以通过ls -l来查看文件是哪类文件。
1文件种类
1.1常规文件(regular file)
**‘-’**就是我们可以读写的类型文件,形式如[-rwxrwxrwx]中第一个字符’-’来表示
- 纯文本文件(ASCII)
由各种字符、数字等组成,由权限的情况下,可以通过vim打开,或者cat、head等命令查看 - 二进制(binary)文件
比如编译后的.o文件 可以通过 od(具体自己查下)查看 - 数据文件(data)
就是在有些程序运行时会读取特定格式的文件,可以称之为数据文件,例如登录Linux时将读取/var/log/wtmp这个文件,我们可以通过last查看
对于二进制和数据文件使用cat查看,会出现乱码。
1.2目录(directory)
‘d’ 形式 [drwxrwxrwx]
1.3链接(link)
‘l’[lrwxrwxrwx] 类似于Windows下的快捷方式
1.4设备文件(device)
通常在/dev路径下
-
区块(block)设备文件
‘b’:[brwxrwxrwx]
,就是一些储存数据,提供系统随机存取的接口设备,比如硬盘与U盘等等,你可以随机的在硬盘的不同区块读写,这种装置就是区块装置!你可以自行查一下/dev/sda看看,会发现第一个属性为[ b ]。 -
字符(character)设备文件
‘c’:[brwxrwxrwx],即是一些串行端口的接口设备,例如键盘、鼠表等等!这些设备的特色就是『一次性读取』的,不能够截断输出。 第一个属性为 [ c ]。
1.5数据接口(sockets)文件
‘s’:[srwxrwxrwx]
通常被用在网络上进行数据交换。我们可以启动一个程式来监听用户端的要求, 而用户端就可以透过这个socket来进行资料的沟通了。第一个属性为 [ s ], 最常在/run或/tmp这些个目录中看到这种文件类型。
1.6、数据传输(FIFO、pipe)文件
‘p’[prwxrwxrwx]
FIFO是一种特殊的文件类型,主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写,也是我们说的管道,第一个属性为[p] 。
2文件扩展名
基本上,Linux的文件是没有所谓的『扩展名』的,一个Linux文件能不能被执行,与他的第一栏的十个属性有关,与扩展名根本一点关系也没有。这个观念跟Windows的情况不相同!在Windows底下, 能被执行的文件扩展名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x的话,例如[ -rwxr-xr-x ] 即代表这个文件具有可以被执行的能力!
但是为了让用户一目了然的知道文件的作用,还是要用扩展名来辨识。
*.sh : 脚本(scripts)文件,因为使用使用shell写成的,所以扩展名就编成 .sh ;
** *Z, *.tar, *.tar.gz, .zip, .tgz: 压缩文件。由于使用不同的压缩软件,故扩展名不同
** .html, .php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页。.html 的档案可使用网页浏览器来直接开启,.php 的档案,可以透过client端的浏览器来server 端浏览。