首页 > 代码库 > 05-linux文件属性-硬链接-时间戳

05-linux文件属性-硬链接-时间戳


linux文件属性-硬链接-时间戳

作者:矮哥

归档:学习笔记

2017/01/19


目 录

第1章 链接... 1

1.1 硬链接... 1

1.1.1 硬链接简介... 1

1.1.2 硬链接删除原理... 1

1.1.3 硬链接小结... 1

1.2 软连接... 2

1.2.1 小结... 2

1.3 软硬链接一些知识... 2

1.4 有关目录的小结... 2

1.5 链接示意图... 3

1.6 文件删除原理图... 4

1.6.1 报错:no space left on device. 4

第2章 linux多用户多任务... 4

2.1 用户介绍... 4

2.2 配置文件/etc/passwd /etc/shadow /etc/group /etc/gshadow.. 5

2.2.1 /etc/passwd:... 5

第3章 文件三种时间... 5

第4章 通配符... 6

第1章 链接

1.1 硬链接

1.1.1 硬链接简介

硬链接是值通过索引节点(Inode)来进行链接。在Linux(ext3,ext3,ext4)文件系统中,保存在磁盘分区的文件不管是什么类型都会给它分配一个编号,这个编号被成为索引节点编号(index inode)简称inode,即在系统中的文件编号。

在Linux文件系统中,多个文件名指向童一个人索引节点(inode号相同)(Inode)是正常且允许的。这样情况的文件被成为硬链接。

在同一个系统中(装修风格),多个文件的Inode号码相同(文件名不同),这些文件互为硬链接文件。

提示:硬链接文件就相当于文件的另外一个路口。硬链接的作用之一是允许一个文件拥有 多个有效路径名(多个入口 超市的多个门),这样 用户就可以建立硬链接到重要文件。以防止“误删”原数据。

1.1.2 硬链接删除原理

在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除

1.1.3 硬链接小结

1. 怎么来的&啥意思

a) 通过 执行命令 “ln 源文件 硬链接文件”,即可完成创建硬链接。

b)在同一文件系统中,具有相同inode节点号的多个文件是互为硬链接文件

2. 特点

a) 硬链接与删除

i. 删除硬链接文件或者删除源文件任意之一,文件实体(block数据文件内容)并未被删除

ii. 只有删除原文件及所有对应的硬链接文件(链接数为0),文件实体block数据文件内容才会被删除。

iii. 当所有的硬链接文件及源文件被删除后,再存放得到数据会被占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收

b)硬链接文件就是文件的另一个入口

c) 可以通过给文件设置硬链接文件,来防止重要文件被误删。

d) 硬链接文件是普通文件,因此可以用rm命令删除

e) 文件彻底删除

i. 对于静态文件(文件没被调用)来讲,当硬链接数为0的时候,文件就被删除了

3. 查看文件的硬链接数

ls -hil ,stat ,i_link的查看文件方法

1.2 软连接

1.2.1 小结

1. 创建

a)执行命令“ln -s 源文件 软连接文件”,即可完成创建,软连接的文件不能存在

2.含义:

a)软连接类似windows的快捷方式,

b)软连接类似一个文本文件,里面存放着的源文件的路径。

3.特点

a)删除源文件,软连接文件依然存在,只是无法访问源文件

b)失效的时候一般是红底白字闪烁提示

c)软连接和源文件是不同类型的文件,也是不同文件,inode号码也不同

4.软链接文件的文件类型为“l”(小写字母L),可以用rm删除

1.3 软硬链接一些知识

目录是不允许创建硬链接的,不同文件系统也不可以创建硬链接。

当一个新目录创建的时候,硬链接数为2

  1 [root@AIGE ~]# ll -di aige aige/.
  2 
  3 283811 drwxr-xr-x 2 root root 4096 Jan 12 21:01 aige
  4 
  5 283811 drwxr-xr-x 2 root root 4096 Jan 12 21:01 aige/.
  6 
  7 [root@AIGE ~]#
  8 

在aige目录下在创建目录的时候:(目录..和上一级目录的inode号码一样)

  1 [root@AIGE ~]# ll -di aige aige/. aige/aige/..
  2 
  3 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige
  4 
  5 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige/.
  6 
  7 283811 drwxr-xr-x 3 root root 4096 Jan 12 21:03 aige/aige/..
  8 
  9 [root@AIGE ~]#
 10 

1.4 有关目录的小结

1. 对于目录,不可以创建硬链接,但可以创建软链接。

2. 对于目录的软连接是生产场景运维中常用的技巧。

3. 猜测为何不能给目录创建硬链接,目录的硬链接不能跨文件系统

4. 每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”

5. 在父目录里创建一个子目录,父目录的链接数增加1(每个子目录都有..来指向父目录。)但是在目录里创建文件,父目录的链接数不会增加

1.5 链接示意图

技术分享

1.6 文件删除原理图

技术分享

1.6.1 报错:no space left on device

block满了

block满了,但是进程正在被调用 lsof | grep -i delete 查看

inode满了

第2章 linux多用户多任务

Linux是一个多用户多任务可以同时在线使用的系统。

UID:一个唯一标识系统用户的账号。(User ID)

GID:组的ID号(Group ID)

2.1 用户介绍

超级用户:root

UID和GID均为0.root用户在每台unix/linux操作系统上是唯一且真实存在的。拥有最高权限

在生产环境中,一般会禁止root账号通过SSH远程连接服务器(保护好皇帝),更改SSH的默认端口号。

安全:最小化。

1. 安装系统最小化

2. 开启服务最小化

在企业工作中,没有特殊需求,应该尽量在普通用户下操作,而不是root

在linux,UID为0的用户是超级用户,但通常不使用超级用户,而是通过sudo提权来实现。

普通用户:

这类用户一般是由具备系统管理员root的权限的运维人员或系统管理员添加的。

切换用户su - 用户名

提权:sudo命令

虚拟用户:

与真实的普通用户区分开。这类用户最大的特点就是安装系统后默认就会存在,且默认情况下,大多数不能登录系统。执行一些服务需要服务,用虚拟用户来执行。安全性提高。

虚拟用户角色---傀儡:

linux安全优化:

1. 安装系统后可以删除用不到的虚拟用,但是最好是用注释的方法,万一有问题可以恢复过来。

2. 我们自己不熟服务的时候,也可以创建虚拟用户。-s /sbin/nologin

UID整数范围

具备该ID的特性

0

超级用户root

当用户的UID为0时,表示这个账号为超级管理员账号,如果要增加一个系统管理员账号的话,只需要将UID改为0即可。不推荐这样做。

1-499

虚拟用户(为软件服务)

这个范围时保留给系统使用的UID,之所以这样划分,是为了防止认为建立账号的UID和系统UID之间冲突。并没有其他特殊含义

500-65535

普通用户

普通账户UID,当使用useradd aige建立时,默认情况下UID时从500开始的。-u指定UID

2.2 配置文件/etc/passwd /etc/shadow /etc/group /etc/gshadow

2.2.1 /etc/passwd:

文件中每一列含义

root

x

0

0

root

/root

/bin/bash

用户名

密码

UID

GID

解释

家目录

shell解释器

第3章 文件三种时间

Access:访问时间

Modify:修改时间

Change:属性改变时间

查看用stat 命令即可

find三个参数 -mtime -ctime -atime对应三个时间戳

第4章 通配符

符号

作用

*

匹配任何字符串/文本,包括空字符串

*代表任意字符(0个或多个)

匹配任何一个字符(不在括号内时)

?代表任意一个字符

字符集合(一堆字符/文本)

[abcd]

匹配abcd中任何一个字符

[a-z]

表示范围a到z,-表示范围的意思

[]匹配中括号中任意一个字符

{...}

表示生成序列,以逗号分隔,且不能有空格

补充

 

[!abcd]

或[^abcd]表示非,表示不匹配括号里面的任何一个字符

  1 [root@AIGE 20170118]# ls
  2 
  3 oldboy00.log oldboy04.log oldboy08.log stu00.txt stu04.txt stu08.txt
  4 
  5 oldboy01.log oldboy05.log oldboy09.log stu01.txt stu05.txt stu09.txt
  6 
  7 oldboy02.log oldboy06.log oldboy10.log stu02.txt stu06.txt stu10.txt
  8 
  9 oldboy03.log oldboy07.log oldboy.txt stu03.txt stu07.txt stu.txt
 10 
 11 [root@AIGE 20170118]# ls old*
 12 
 13 oldboy00.log oldboy02.log oldboy04.log oldboy06.log oldboy08.log oldboy10.log
 14 
 15 oldboy01.log oldboy03.log oldboy05.log oldboy07.log oldboy09.log oldboy.txt
 16 
 17 [root@AIGE 20170118]# ls stu.???
 18 
 19 stu.txt
 20 
 21 [root@AIGE 20170118]# ls oldboy0[12345]*
 22 
 23 oldboy01.log oldboy02.log oldboy03.log oldboy04.log oldboy05.log
 24 
 25 [root@AIGE 20170118]#
 26 

05-linux文件属性-硬链接-时间戳