Linux文件属性概述
在Linux 系统中,文件或目录的属性主要包括:索引节点(Inode)、文件类型、权限属性、链接数、所归属的用户和用户组、最近修改时间等内容。每个后面都会展开细讲。
## 执行1s-lhi 命令可以显示目录下内容的常见属性信息,示例如下:
[root@localhost ~]# ls -lhi
total 8.0K
33574979 -rw-------. 1 root root 1.5K Aug 17 15:28 anaconda-ks.cfg
33575027 drwxr-xr-x. 2 root root 6 Aug 18 20:55 sky
33634575 -rw-r--r--. 1 root root 48 Aug 20 11:19 sky.txt
# 每一列的含义
33634575 Inode索引节点编号(相当于人的身份证号、全国唯一)
系统读取文件时首先通过文件名找到Inode号码,然后才能读取到文件内容。
-rw-r--r--. 文件类型及权限 .是与SELinux相关的一个标识
1 文件硬链接个数,相当于超市多个入口,可从不同入口进入文件,还可以互为备份
root 文件所属用户
root 所属组
6 文件大小
Aug 18 20:55 时间戳:文件最新修改的时间mtime
sky.txt 文件或目录名 #注意,文件名不算文件属性
Linux文件类型介绍
Windows 系统是通过扩展名(如.jpg、.avi、.docx等等)来区分不同文件类型的,如果扩展名错误,或者没有扩展名,则会导致文件无 法直接打开。
Linux 不同于 Windows ,Linux 系统不会根据扩展名来区分文件类型,而是通过为文件设定属性的特殊方式来区分文件类型的。但是 Linux 系统中也会包含各种带有扩展名的文件,这此文件可能来自于 Windows 及其他系统,也有部分来自Linux 系统本身,但这些文件的扩展名,并不代表文件的类型,这些扩展名只是为了让用户更容易区分文件类型,更易读,仅此而已。
-rw-r--r--.
# 第一个字符的含义即文件类型,后9个为文件权限符号。详见后面权限管理章节
# linux中一切皆文件,文件类型包括:
-:regular file,普通文件(文本,二进制,压缩,图片等)
d: directory,目录
l:link,软连接文件,类似快捷方式,指向文件实体
c:character,字符设备文件 比如:打印机,终端 比如/dev/tty1
b:block,块设备文件 比如:磁盘 u盘 光驱 比如/dev/sda1 /dev/sda2
s:安全套接字文件,socket 进程间通信时会用到
p:管道文件,named pipe
# 重点:- d l
1、普通文件
特征:- 开头,按文件内容,大略可分为三类
1)(纯)文本文件(ASCII):此类文件的文件内容可以直接读取到数据,例如,字母、数宇、特殊符号等。可以用 cat 命令读文件,比如 Linux 系统里的配置文件几乎都是这种类型。
2)二进制文件 (binary):Linux 中的常见命令就属于这种格式。例如,cat 命令就是一个二进制文件
3)数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件。那些特定格式的文件即称为数据文件。例如,Linux 在用户登录时都会将登录的数据记录在/var/log/wtmp (last 命令的数据库文件)文件内,该文件是一个数据文件,可通过last 命令读取出来。但如果使用 cat 命令读取则会读出乱码。因为它属于一种特殊格式的文件。
2、目录文件
特征:d开头
3、符号链接(软链接)文件
特征:l开头
# 创建软链接命令 ln -s 源文件名 链接名 不加-s是硬链接 # 例
[root@db01 /app]# ll
total 0
lrwxrwxrwx 1 root root 17 Jul 18 15:53 mysql -> /app/mysql-5.6.50
drwxr-xr-x 13 root root 205 Jul 18 16:02 mysql-5.6.50
4、字符设备、块设备
比如:查看/dev下的都是这类设备
[root@localhost ~]# ll /dev
brw-rw---- 1 root disk 8, 0 Jul 18 16:15 sda //b:块设备,如磁盘、光驱
crw-rw-rw- 1 root tty 5, 0 Jul 18 16:15 tty //c:一般典型的文件就是串行端口的接口设备,如猫等串口设备
crw--w---- 1 root tty 4, 0 Jul 18 16:15 tty0
crw--w---- 1 root tty 4, 1 Jul 18 16:16 tty1
5、socket文件
比如,当启动数据库软件 MySQL 服务时,会产生一个mysql.sock 文件。在这个文件的属性里,第一个字符是s,表示是套接字文件。
mysql客户端可以通过socket文件连接服务端。(见mysql章)
[root@db01 /app]# ll /tmp
total 4
srwxrwxrwx 1 mysql mysql 0 Jul 19 16:35 mysql.sock
[root@db01 ~]# ll /dev/log
srw-rw-rw- 1 root root 0 Jul 18 16:15 /dev/log
6、管道文件
管道文件(FIFO)也是一个特殊的文件类型,主要用于解决多个程序同时访问一个文件所造成的错误,第一个字符为p。 FIFO是 First-In First-Out 的缩写。了解即可或者千脆略过,运维工作中极少涉及它。