一、Linux中的文件类型
在Linux系统中,可以说一切(包括目录、普通文件、设备文件等)皆为文件。文件类型包含有普通文件、目录、字符设备文件、设备文件、符号链接文件、管道文件等等,当执行ls -l 或ls - al命令后可显示当前目录下的所有文件及文件夹:
其中,第一列的第一个字符就是用来区分文件类型的,常见的文件类型如下表所示:
二、文件类型分别介绍
1、普通文件(regular file)
在Linux中,以-开头的文件就表示普通文件。这些文件一般是用相关的应用程序或系统命令创建,比如touch、cp、tar、echo、cat等。普通文件的删除方式可以使用rm命令。
普通文件大略还可以分为:
纯文本文件(ascll):文件内容可以直接读到数据,例如:字母、数字、特殊符号等。可以用cat命令读文件,比如配置文件几乎都是这种类型的。
二进制文件(binary):Linux中的命令文件就属于这个格式。例如cat命令就是一个二进制文件。
数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件。例如:Linux在用户登录时,都会将登录的数据记录在/var/log/wtmp(last命令的数据库文件)那个文件内,该文件时一个数据文件。通过last命令读出来,cat命令会读出乱码,因为他书序一种特殊格式文件。lastlog(/var/log/lastlog)
补充:通过file命令可以查看文件类型
[root@centos ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
2、目录文件(directory)
在Linux中,以d字符开头的文件就表示目录。创建目录的命令可以用mkdir命令或cp命令(带-r或-a参数),cp可以把一个目录复制为另一个目录。删除目录用rm -r或rmdir(删除空目录才可以)命令。
3、字符设备或块设备文件
若第一个字符为c,则代表字符设备文件,例如猫等串口设备;若第一个字符是b,则表示块设备,例如硬盘、光驱等都属于块设备。我们可以用find /dev -type b xargs ls -l查看块设备,用find /dev -type c xargs ls -l查看字符设备。
4、套接字(socket)文件
在Linux中,以.socket为后缀的文件表示套接字文件,一般用于网络通信。
5、符号链接文件
符号链接文件也被称之为软链接文件,可以理解为Windows中的快捷方式。
6、管道文件(FIFO.pipe)
在Linux中,若第一个字符为p则代表管道文件。FIFO(fifo-first-in first-out)是一个特殊的文件类型,主要是解决多个程序同时访问一个文件所造成的错误。
三、Linux下常用的扩展名的作用
一般来说,Linux是不区分扩展名的。但是扩展名也代表一定的意义,例如:
.tar(.tar.gz、.tgz、.zip、.tar.bz)表示压缩文件,创建命令一般为tar、gzip、unzip等。
.sh表示shell脚本文件,通过shell语言开发的程序。
.pl表示perl语言文件,通过perl语言开发的程序。
.py表示python语言文件,通过python语言开发的程序。
.html(.htm)、.php、.jsp、.do表示网页语言的文件。
.conf表示系统的配置文件。
.rpm表示rpm安装包文件。
四、文件权限基础
在Linux文件权限中,总共有十位,第0位表示文件类型,后9位表示文件权限。
1、关于每部分权限的解释:
第一部分(第1-3位):属主权限位(user权限位),供主人(自己)使用。
第二部分(第4-6位):属组权限位(group权限位),供小组(你亲近的人)使用。
第三部分(第7-9位): 其它用户权限位,供其他人使用。
2、关于权限掩码的解释:
3、关于权限掩码的计算:
将三部分权限相加,若完全权限为4+2+1=7,若只需要读写权限为4+2+0=6,若只需要读和执行权限为4+0+1=5。
上图的权限为755,分解计算如下算式所示:
7(=4+2+1)5(=4+0+1)5(=4+0+1)
领取专属 10元无门槛券
私享最新 技术干货