天天看点

linux时间戳_超详细!Linux文件和目录的10项属性1.Linux文件2.文件属性详细讲解2.1索引节点:inode2.2.文件类型2.3.链接数2.4.用户和组2.5.文件大小2.6.时间戳2.7.文件名

公众号:老油条IT记

文件和目录10项属性目录

1:索引节点:inode

2:文件类型

3:链接数

4:用户

5:组

6:文件大小

7.8.9:时间戳

10:文件名

1.Linux文件

#概述

#1.linux里一切皆为文件

#2.Linux系统中的文件或目录的属性主要包括:inode(索引节点)、文件类型、权限属性、链接数、所属用户和用户组、最近修改时间等内容

#例如:执行ls -lhi ,会出现10列内容

[[email protected] ~]# ls -lhi

total 28K

33865597 -rw-r--r-- 1 root root 104 Feb 29 09:43 1.txt

33865598 -rw-r--r-- 1 root root 13 Feb 29 09:44 2.txt

33619589 -rwxr-xr-x 1 root root 187 Mar 2 23:44 3.sh

#10列内容讲解

第一列:inode索引节点编号(唯一的,像人的身份证)

第二列:文件类型及权限(共10个字符,第一字符为类型,后9个为文件权限)

第三列:硬链接数

第四列:文件或目录所属的用户

第五列:文件或目录所属的组

第六列:文件或目录的大小

第七、八、九列:时间戳

第十列:实际的文件或目录名

#图片讲解

linux时间戳_超详细!Linux文件和目录的10项属性1.Linux文件2.文件属性详细讲解2.1索引节点:inode2.2.文件类型2.3.链接数2.4.用户和组2.5.文件大小2.6.时间戳2.7.文件名

2.文件属性详细讲解

2.1索引节点:inode

#概述

#1.indoe,中文意思是索引节点(index node)。在每个Linux存储设置或存储设备的分区被格式化为ext4文件系统之后,一般会生成两个部分,第一部分是inode,第二部分是block

#2.block是真正用来存储实际数据的,如照片,视频等普通文件数据,inode是用来存储这些数据的属性信息(也就是ls -l的结果),inode属性信息包括不限于文件大小、属主(用户)、归属的用户组、文件权限、文件类型、修改时间,但是inode里面不包含文件名

#3.inode除了记录文件属性的信息外,还会为每个文件信息索引,操作系统就会根据inode的值最快的找到相对应的文件实体

#扩展:Linux组成

#Linux文件系统由三分部组成:文件名,inode,block(真正存数据)

#使用stat命令查看inode信息

#stat:显示文件和文件系统状态

[[email protected] ~]# stat /etc/passwd

File: ‘/etc/passwd’Size: 1032 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 17042355 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2020-03-04 03:37:21.549000201 -0500

Modify: 2020-02-29 20:50:57.126146678 -0500

Change: 2020-02-29 20:50:57.126146678 -0500

Birth: -

#查看目录的inode号

[[email protected] ~]# ls -di /etc/

16777281 /etc/

#inode的大小

#inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域 一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息

#查看磁盘空间是否满了,由inode是否满了和block是否满了决定的,任何一个满了,都无法存放东西

#磁盘满的特征(no space on device left)

#查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令

[[email protected] ~]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/centos-root 8910848 33678 8877170 1% /devtmpfs

230105 396 229709 1% /devtmpfs

233163 1 233162 1% /dev/shmtmpfs

233163 723 232440 1% /runtmpfs

233163 16 233147 1% /sys/fs/cgroup/dev/sda1

524288 327 523961 1% /boottmpfs

233163 1 233162 1% /run/user/0

#查看磁盘的使用量

[[email protected] ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 17G 2.2G 15G 13% /devtmpfs

899M 0 899M 0% /devtmpfs

911M 0 911M 0% /dev/shmtmpfs

911M 9.5M 902M 2% /runtmpfs

911M 0 911M 0% /sys/fs/cgroup/dev/sda1

1014M 142M 873M 14% /boottmpfs

183M 0 183M 0% /run/user/0

#扩展:linux中ctime,mtime,atime的区别

ctime: 改变时间(change time)

mtime:修改时间(modification time)改变和修改之间的区别在于是改文件的属性还是更改它的内容。chmod a-w myfile,那么这是一个改变echo foo >> myfile,那么这是一个修改改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化

atime: 访问时间(access time)访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,但是它的改变时间和修改时间并没有变

ls -lc filename 列出文件的ctime

ls -lu filename 列出文件atime

ls -l fimename 列出文件的mtime

2.2.文件类型

#概述:在linux系统中,可以说一切(包括目录、普通文件、设备文件等)皆为文件。文件类型包含有普通文件、目录、字符设备文件、块设备文件、符号链接文件、管道文件等等

#在ls -l 显示文件属性内容后,第一列的第一个字符就是用来区分文件类型的

#类型种类

d(directory) : #表示一个目录

-(regular file): #表示一个普通文件

l(link): #表示一个符合链接文件

b(block): #表示块设备和其他外围设备,是特殊类型的文件

c(character): #表示字符设备文件

s(socket): #表示socket文件

p(name pipe): #表示管道文件

#查找文件类型参数命令 find /-type b/p/c

#例子:#查找管道文件

[[email protected] ~]# find / -type p

/run/dmeventd-client

/run/dmeventd-server

/run/systemd/inhibit/1.ref

/run/systemd/sessions/1.ref

/run/systemd/initctl/fifo

#查找块设备文件

[[email protected] ~]# find / -type b

/dev/dm-1

/dev/dm-0

/dev/sr0

/dev/sda2

/dev/sda1

/dev/sda

#普通文件(regular file)

[[email protected] ~]# ls -l 1.txt

-rw-r--r-- 1 root root 104 Feb 29 09:43 1.txt

#可以通过ls -l来查看hosts的属性,可以看到第一列内容-rw-r--r--,值得注意的是第一个符号是-(英文字符减号),在linux中,以这样的字符开头的文件就表示普通文件 这些文件一般都是用相关的应用程序或系统命令创建。比如touch、cp、tar、echo、cat、>、>> 等工具命令。普通文件的删除方式可以使用rm命令

#普通文件(regular file):第一个属性为“-”, 按照文件内容,又大略可以分为 :1、纯文本文件(asell ):文件内容可以直接读到数据,例如:字母、数字等,可以用cat命令读文件,比如配置文件几乎都是这种类型的2、二进制文件(binary):linux中的命令程序就是属于这种格式。例如cat命令就是一个二进制文件3、数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件

#数据格式的例子:例如linux在用户登录时,都会将登陆的数据记录在/var/log/wtmp(last命令的数据库文件)那个文件内,该文件是一个数据文件,通过last命令读出来(last 查看用户登录信息)。cat命令会读出乱码,因为他属于一种特殊格式的文件。lastlog(/var/log/lastlog)

#字符设备或块设备文件

#如果进入/dev/目录,列一下文件。会看到类似如下的内容:

[[email protected] ~]# ls -la /dev/tty

crw-rw-rw- 1 root tty 5, 0 Mar 4 22:07 /dev/tty

可以看到/dev/tty的属性是crw-rw-rw-。注意前面第一个字符是c,这表示字符设备文件。字符设备就是串行端口的接口设备

#再看下面这个

[[email protected] ~]# ls -la /dev/sda

brw-rw---- 1 root disk 8, 0 Mar 4 22:07 /dev/sda

可以看到/dev/sda的属性brw-rw-----,注意前面的第一个字符是b。这表示块设备,块设备就是存储数据供系统及程序访问的接口设备。如硬盘、光驱等都属于块设备

#创建一个字符设备

mknod oldbiy c 5 1

c 指字符设备

5 是该设备在majorh中定义的标记

1 表示第一个子设备

#链接文件find /etc/ -type l | xargs ls -l 查看/etc下的链接文件

2.3.链接数

在linux系统中,链接可分为两种:

  一种为硬链接(hard link),另一种为软链接或符号链接(symblic link or soft link)。ln这个命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建的是硬链接。如果使用ln -s创建链接则为软链接

#创建的格式

硬链接:ln 源文件 目标文件

软链接:ln -s 源文件 目标文件 (目标文件不能事先存在)

#硬链接

定义:

1、 硬链接是指通过索引节点(inode)来进行链接。

2、在linux文件系统中,多个文件名指向同一个索引节点(inode)是正常且允许的。这种情况的文件就称为硬链接。

3、硬链接的作用之一:是允许一个文件拥有多个有效路径名(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据)。

4、为什么一个文件建立了硬链接就会防止数据误删呢?因为文件系统(ext2)的原理是,只要文件的索引节点(index inode)还有一个以上的硬链接,只删除其中一个硬链接(即仅仅删除了该文件的链接指向)。并不影响索引节点本身和其它的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,那个文件才是被删掉了

#硬链接的创建

[[email protected] ~]# ln 1.txt 11.txt

[[email protected] ~]# ls -lhi 1.txt 11.txt

33865597 -rw-r--r-- 2 root root 104 Feb 29 09:43 11.txt

33865597 -rw-r--r-- 2 root root 104 Feb 29 09:43 1.txt

#软链接

软链接(soft link)也称为符号链接(symbolic link)。linux里的软链接文件就类似于window系统中的快捷方式,linux里的软链接文件实际上是一个特殊的文件,文件类型是l。

#软链接的创建

[[email protected] ~]# ln -s /tools/apache2.2.17/ /tools/apache

[[email protected] ~]# ls -ld /tools/apache

lrwxrwxrwx 1 root root 20 Mar 5 00:00 /tools/apache -> /tools/apache 2.2.17/

#扩展:Linux下文件删除的原理

Linux是link的数量誺控制文件删除的,只有当一个文件不存在任何link的时候,文件才会被删除,每个文件都有两个link计数器:i_count和i_link

2.4.用户和组

#linux多用户多任务介绍:linux/unix是一个多用户、多任务的操作系统,

#linux系统中用户角色划分:linux系统中用户是分角色的,对linux系统来说,用户的角色是通过UID和GID识别的,特别是UID,在linux系统运维工作中,一个UID是唯一标识一个系统用户的账号(相当于我们的身份证)。用户名相当于我们的名字UID (User ldentify) 中文用户ID,相当于我们的身份证,在系统中是唯一的GID (Group ldentify)中文组ID,相当于家庭或者学校

#用户

#当我们使用linux时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份运行, 用户限制使用者或进程可以使用、不可以使用哪些资源

用户分类

root用户(根用户、管理员账户、超级用户) (ID为0的用户为root用户)

系统用户 UID:1-999(centos7版本)

普通用户 UID:1000+

#和用户相关联的四个文件

/ect/passwd -保存用户信息

/ect/shadow -保存用户密码

/ect/group -保存组信息

/etc/gshadow -保存组的密码信息

#/etc/passwd中每个字段的作用

如:root:x:0:0:root:/root:/bin/bash

1.root:用户名

2.x:密码占位符

3.0:UID

4.0:GID

5.root:用户描述

6./root:用户主目录

7./bin/bash:登陆后使用的shell

#/etc/shadow结构

如:root:I.m1XoRd0W8Pc7C........Phodj8ZM1: :0:99999:7: : :

1 root: 用户名

2 I.m..M1: 被加密后的密码

3 最近修改密码的日期

4 0:密码不能更改的天数,0表示随时可以修改

5 99999:密码过期时间

6 7:密码需要更改期限到来前7天发出警告

7 宽限天数,密码过期几天后还能改密码

8 账号过期时间

9 保留

#用户的创建,修改,删除

#创建一个用户

命令useradd用以创建一个新用户

useradd+名字(如useradd test)

#修改用户信息命令usermod用来修改用户信息

usermod+参数+你要修改的东西

usermod 参数 username

#删除用户命令userdel用以删除指定用户

userdel test (保留用户的家目录)

userdel -r test (同时删除用户的家目录)

#用户的相关文件

/etc/skel

/etc/login.defs

/etc/default/useradd

#用户组

几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类、管理用户。一般来讲,我们使用部门、职能或地理区域的分类方式来创建使用组。

一每个组有一个组ID

二.组信息保存在/etc/group中

三.每个用户拥有一个主组,同时还可以拥有最多31个附属组

#创建、修改、删除组

命令groupadd用以创建组:

groupadd+组名

命令groupmod用以修改组信息:

groupmod -n newname 原来的组name #修改组名

groupmod -g newGid oldGid #修改组ID

命令groupdel用以删除组:

groupdel +组名

2.5.文件大小

#如:给1.txt创建一个软链接

[[email protected] ~]# ln -s 1.txt aa.txt

[[email protected] ~]# ls -l aa.txt

lrwxrwxrwx 1 root root 5 Mar 4 23:29 aa.txt -> 1.txt

#提示:创建软链接的时候,文件的大小不一样

2.6.时间戳

#7、8、9三列是时间(默认是修改时间)

modify 修改 对应的是 -mtime 一般是修改文件内容时候改变

change 改变时间 -ctime 文件属性改变

access 访问时间 -atime 访问文件内容时候改变

#示例:时间的变化

[[email protected] ~]# touch guo.txt

[[email protected] ~]# stat guo.txt

File: ‘guo.txt’Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: fd00h/64768d Inode: 33574991 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2020-03-04 23:26:28.523104035 -0500

Modify: 2020-03-04 23:26:28.523104035 -0500 #开始时间

Change: 2020-03-04 23:26:28.523104035 -0500 #开始时间

Birth: -

[[email protected] ~]# echo aa > guo.txt

[[email protected] ~]# stat guo.txt

File: ‘guo.txt’Size: 3 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 33574991 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2020-03-04 23:26:28.523104035 -0500

Modify: 2020-03-04 23:26:41.455206922 -0500 #时间变了

Change: 2020-03-04 23:26:41.455206922 -0500 #时间变了Birth: -

#如果想要格式化属性时间的话就使用

[[email protected] ~]# ls -l --time-style=long-iso 1.txt

-rw-r--r-- 1 root root 104 2020-02-29 09:43 1.txt

2.7.文件名

#文件名不在inode里,而是在上级目录的Block里