参考书籍:《鸟哥的Linux私房菜:基础学习篇》
Linux下一切皆文件,文件分为常规文件、目录、链接文件、设备与设备文件、数据接口文件、数据传送文件几种类型。
常规文件(regular file):
指一般进行读写的类型的文件,属性字符【-】,按照文件的内容又可分为
1、纯文本文件(ASCII)
Linux系统中最多的一种文件类型,内容为我们可以直接读到的数据。几乎只要我们可以用来做为设置的文件都属于这一种文件类型。可以执行【cat】命令来查看文件内容。
2、 二进制文件(binary)
系统中的可执行文件(scripts,脚本文件不算)就是二进制格式,上面的【cat】命令也是个二进制文件。
3、数据文件(data)
程序运行过程中读取的特殊格式的文件,例如登录linux用户时,都会将登录的数据记录在/var/log/wtmp这个文件内,改文件就是一个数据文件,能够使用【last】命令读出来,使用【cat】命令则会出现乱码。
目录(directory)
属性字符为【d】
链接文件(link)
类似于windows下的快捷方式,属性字符为【l】(首字母)
设备与设备文件(device)
与系统周边及存储等相关的一些文件,通常都集中在/dev目录下,分以下两种
1、区块(block)设备文件:存储数据,以提供系统随机存取的接口设备,如硬盘和软盘,属性字符为【b】
2、字符(character)设备文件:串行端口的设备文件,如键盘、鼠标。特点是一次性读取,不能够截断输出,属性字符为【c】
数据接口文件(sockets)
用来进行网络数据交换,属性字符为【s】,最常在/run或/tmp这些目录中看到这类文件。
数据传送文件(FIFO,pipe)
FIFO(first-in-first-out):解决多个程序同时读写一个文件所造成的错误问题,即管道,属性字符为【p】
Linux文件扩展名:
基本上,linux文件是没有所谓的扩展名,一个Linux文件能不能被执行,与它第一栏的十个属性有关,与文件名根本一点关系没有。
可被执行与可以执行成功是不一样的,x代表文件具有可执行的能力,但是能不能执行成功,取决于文件的内容,是否有可执行的数据。
虽然如此,还是希望能通过扩展名来了解文件的类型,通常还是会以适当的扩展名来表示文件,有以下常用的扩展名:
1、.sh:脚本或批处理文件(scripts),批处理文件使用shell写成
2、Z 、.tar、.tar.gz、.zip、.tgz:压缩文件,与压缩软件相关
3、.html、.php:网页相关文件,分别代表HTML语法和PHP语法的网页文件
文件名开头为【.】表示隐藏文件,文件避免以一些特殊字符命名,这些字符在linux命令模式下有特殊意义