最全最易懂的文件属性信息

11 linux中文件的属性    369

11.1 linux系统的组成部分    369

11.1.1 系统的组成部分有哪些    369

11.1.2 图示系统的组成部分    370

11.2 linux系统的组成部分__文件类型    371

11.2.1    常见的文件类型有哪些    371

11.2.2 查看普通文件类型的方法    371

11.2.3 查找命令的总结    372

11.2.4 压缩、解压、查看的命令    384

11.3 linux系统的组成部分__文件权限    388

11.3.1 文件权限常见有哪些    388

11.3.2 文件权限代表的意思    388

11.3.3 文件和目录创建时候默认权限    389

11.4 linux系统的组成部分__用户类型    390

11.4.1 常见的用户类型    390

11.4.2 查看用户    391

11.5 linux系统的组成部分__时间    391

11.5.1 查看时间    391

11.5.2 时间常用的一些代表符号    392

11.5.3 将时间修改成人类可读的时间类型    392

11.5.4 修改时间    392

11.5.5 将时间进行穿越式的修改    393

11.5.6 mtime,atime,ctime的区别和什么时候使用哪种类型    393

11.6 linux系统的组成部分__inodeblock    395

11.6.1 inode的介绍    395

11.6.2 block的介绍    396

11.6.3 图示inodeblock    398

11.6.4 硬链接的介绍    398

11.6.5 软链接的介绍    399

11.6.6 硬链接和cp命令的不同,什么时候使用硬链接,什么时候使用cp    400

11.6.7 文件误删除的情况怎么处理(日志文件,备份文件还原上面没有办法执行)    401

11.6.7 软硬链接图示    401

11 linux中文件的属性

11.1 linux系统的组成部分

11.1.1 系统的组成部分有哪些

[root@oldboy6666 ~] # ls -li

total 12

134318489 -rw-r--r-- 1 root root 28 Sep 16 16:53 1.txt

134318478 -rw-------. 1 root root 1502 Aug 30 12:16 anaconda-ks.cfg

202147906 drwxr-xr-x. 2 root root 6 Sep 9 11:23 oldboy01

134340492 -rw-r--r--. 1 root root 986 Sep 2 14:36 passwd

  • 134318489 属于文件的inode
    • 属于文件的类型
  • rw-r --r-- 属于文件的权限
  • 1 属于文件的硬连接数
  • root 属于文件的属主
  • root 属于文件的属组
  • 28 属于文件的block(文件的实际大小)
  • Sep 16 16:53 属于文件的时间类型
  • 1.txt 属于文件的文件名称(文件名称不属于文件属性)

11.1.2 图示系统的组成部分

11.2 linux系统的组成部分__文件类型

  1. 常见的文件类型有哪些

  • 普通文件(-)
    • 文本文件
    • 二进制文件(命令文件)
    • 脚本文件
    • 数据文件
  • 目录文件(d)
  • 链接文件(l)
  • 套接字文件(s)------------socket(网络编程方面的)
  • 设备文件
    • 字符流文件(c)-----character(可以产生随机数)
    • 块设备文件(b)-----block(设备文件,挂载的存储数据)

11.2.2 查看普通文件类型的方法

命令为file命令

11.2.2.1 文本文件

[root@oldboy6666 ~] # file 1.txt

1.txt: ASCII text

[root@oldboy6666 ~] #

11.2.2.2 二进制文件

[root@oldboy6666 ~] # file /usr/bin/cp

/usr/bin/cp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=d5e29bd19107fc7c0a75cffa392da6ac299add6d, stripped

[root@oldboy6666 ~] #

11.2.2.3 脚本文件

[root@oldboy6666 ~] # file /server/scripts/test_ping.sh

/server/scripts/test_ping.sh: Bourne-Again shell script, ASCII text executable

[root@oldboy6666 ~] #

11.2.2.4 数据文件

[root@oldboy6666 ~] # file /usr/share/doc/automake-1.13.4/amhello-1.0.tar.gz

/usr/share/doc/automake-1.13.4/amhello-1.0.tar.gz: gzip compressed data, from Unix, last modified: Sat Jun 15 00:05:35 2013, max compression

[root@oldboy6666 ~] #

 

 

11.2.3 查找命令的总结

11.2.3.1 locate命令的使用

安装失败

[root@oldboy6666 ~] # yum install -y locate

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

No package locate available.

Error: Nothing to do

查看安装包的名字----provides

[root@oldboy6666 ~] # yum provides locate

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

base/7/x86_64/filelists_db | 7.1 MB 00:00:12

epel/x86_64/filelists_db | 12 MB 00:00:20

extras/7/x86_64/filelists_db | 249 kB 00:00:00

updates/7/x86_64/filelists_db | 5.2 MB 00:00:09

mlocate-0.26-8.el7.x86_64 : An utility for finding files by name

Repo : base

Matched from:

Filename : /usr/bin/locate

重新安装

[root@oldboy6666 ~] # yum install -y mlocate

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

Resolving Dependencies

1/1 Installed:

mlocate.x86_64 0:0.26-8.el7

 

Complete!

查找文件(查找1.txt所在的地方,结果查找失败)

[root@oldboy6666 ~] # locate 1.txt

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

[root@oldboy6666 ~] #

更新数据库再次查找

[root@oldboy6666 ~] # updated 更新数据库

[root@oldboy6666 ~] # locate 1.txt

/.1.txt.swp

/1.txt

/etc/pki/nssdb/pkcs11.txt

/opt/1.txt

/root/1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.0.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.1.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.2.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.3.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.4.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.5.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.5.6.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.0.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.1.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.2.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.3.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.4.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.5.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.6.6.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.0.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.1.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.10.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.11.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.11.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.12.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.2.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.3.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.4.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.5.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.6.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.7.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.8.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.7.9.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.8.0.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.8.1.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.8.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.8.2.1.txt

/usr/share/doc/git-1.8.3.1/RelNotes/1.8.3.1.txt

/usr/share/man/man5/pkcs11.txt.5.gz

/usr/share/vim/vim74/doc/gui_x11.txt.gz

/usr/share/vim/vim74/doc/usr_01.txt.gz

/usr/share/vim/vim74/doc/usr_11.txt.gz

/usr/share/vim/vim74/doc/usr_21.txt.gz

/usr/share/vim/vim74/doc/usr_31.txt.gz

/usr/share/vim/vim74/doc/usr_41.txt.gz

[root@oldboy6666 ~] #

11.2.3.2 locate命令的执行原理,图示讲解

11.2.3.3 find命令的使用

语法格式:find 路径 执行的参数

根据文件名称进行查找(-name,-iname(不区分大小写))

  • 查找/root/oldboy01目录下1.txt的文件

[root@oldboy6666 ~] # find /root/oldboy01 -name "1.txt"

/root/oldboy01/1.txt

/root/oldboy01/oldboy02/1.txt

[root@oldboy6666 ~] #

  • 查找/root/oldboy01目录下a(A).txt的文件

[root@oldboy6666 oldboy02] # find /root/oldboy01 -iname "a.txt"

/root/oldboy01/oldboy02/a.txt

/root/oldboy01/oldboy02/A.txt

/root/oldboy01/a.txt

[root@oldboy6666 oldboy02] #

根据文件的类型进行查找(-type)

  • 文件 f
  • 目录 d
  • 链接 l
  • 块设备 b
  • 字符流 c
  • 套接字 s
  • 查找/root/oldboy01目录下文件的并且名字为a.txt的文件

[root@oldboy6666 oldboy02] # find /root/oldboy01 -type f -name "a.txt"

/root/oldboy01/oldboy02/a.txt

/root/oldboy01/a.txt

[root@oldboy6666 oldboy02] #

根据文件的大小进行查找(-size)

常见的文件大小单位

  • c 字节单位
  • b 块设备(512字节,块设备查找只能是512字节的倍数才能查找出来)
  • w (1w=2字节)
  • K KB
  • M MB
  • G GB
  • 查找/root/oldboy01目录下文件大于1M的

[root@oldboy6666 oldboy01] # find /root/oldboy01 -size +1M

/root/oldboy01/2.txt

/root/oldboy01/4.txt

[root@oldboy6666 oldboy01] #

注意

+1M:查找大于1M的文件

-1M:查找小于1M的文件

1M:查找等于1M的文件

根据文件的权限来进行查找(-perm)

  • 查找文件的权限为755的文件或者目录

[root@oldboy6666 oldboy01] # find /root/oldboy01 -perm 755

/root/oldboy01

/root/oldboy01/oldboy02

/root/oldboy01/2.txt

[root@oldboy6666 oldboy01] #

根据文件的修改时间来进行查找(-mtime)

  • 查找文件的修改时间在7天之内的

[root@oldboy6666 oldboy01] # find /root/oldboy01 -mtime -7

/root/oldboy01

/root/oldboy01/1.txt

/root/oldboy01/oldboy02

/root/oldboy01/oldboy02/2.txt

/root/oldboy01/oldboy02/1.txt

/root/oldboy01/oldboy02/a.txt

/root/oldboy01/oldboy02/A.txt

/root/oldboy01/a.txt

/root/oldboy01/2.txt

/root/oldboy01/3.txt

/root/oldboy01/4.txt

/root/oldboy01/5.txt

[root@oldboy6666 oldboy01] #

注意

  • +7 代表7天以前的信息文件
  • -7 代表7天之内的信息文件
  • 7 代表正好是第7天的信息文件

根据文件的路径进行查找(-path)

  • 查找/root/oldboy01/oldboy02目录

[root@oldboy6666 oldboy01] # find /root/oldboy01 -path /root/oldboy01/oldboy02

/root/oldboy01/oldboy02

  • 02目录和里面的文件进行排除

[root@oldboyedu oldboy02] # find /oldboy02 -path "/oldboy02/02" -prune -o -name "*.txt" -print 第一种

/oldboy02/01/01.txt

/oldboy02/01/02.txt

/oldboy02/01/03.txt

/oldboy02/03/01.txt

/oldboy02/03/02.txt

/oldboy02/03/03.txt

[root@oldboyedu oldboy02] #

 

[root@oldboyedu oldboy02] # find /oldboy02 ! -path "/oldboy02/02/*" ! -path "/oldboy02/02" 第二种

/oldboy02

/oldboy02/01

/oldboy02/01/01.txt

/oldboy02/01/02.txt

/oldboy02/01/03.txt

/oldboy02/03

/oldboy02/03/01.txt

/oldboy02/03/02.txt

/oldboy02/03/03.txt

根据文件的inode来进行查找(-inum)

  • 查找inode的数为202165184

[root@oldboy6666 oldboy01] # ll -i

total 13324

202165181 -rwxrw-rw- 1 root root 0 Sep 16 19:14 1.txt

202120440 -rwxr-xr-x 1 root root 2097152 Sep 16 19:28 2.txt

202120442 -rwxrw-rw- 1 root root 1048576 Sep 16 19:28 3.txt

202118699 -rwxrw-rw- 1 root root 10485760 Sep 16 19:28 4.txt

202035674 -rwxrw-rw- 1 root root 10240 Sep 16 19:28 5.txt

202035661 -rwxrw-rw- 1 root root 0 Sep 16 19:19 a.txt

202165184 -rw-r--r-- 2 root root 0 Sep 16 19:14 hard.txt

202165182 drwxr-xr-x 2 root root 58 Sep 16 19:19 oldboy02

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -inum "202165184"

/root/oldboy01/oldboy02/1.txt

/root/oldboy01/hard.txt

[root@oldboy6666 oldboy01] #

根据文件的最大深度进行查找(-maxdepth)

查找/etc/目录下面最大深度为1的目录,并且统计有多少个目录

[root@oldboy6666 ~] # find /etc -maxdepth 1 -type d | wc -l

80

[root@oldboy6666 ~] #

根据文件的最小深度进行查找(mindepth)

查找/etc/目录下面最小深度为2的目录,并且统计有多少个目录

[root@oldboy6666 ~] # find /etc -mindepth 2 -type d | wc -l

534

[root@oldboy6666 ~] #

 

 

11.2.3.4 查找文件的信息,并且进行删除

-delete参数的使用

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -inum "202165184"

/root/oldboy01/oldboy02/1.txt

/root/oldboy01/hard.txt

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -inum "202165184" -delete

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -inum "202165184"

[root@oldboy6666 oldboy01] #

-exec命令的使用

\;和+;的区别

1.exec执行原理不同

  • \;会查找出来一条数据就会进行直接处理,处理完成才会进行第二条数据的处理,直到处理完毕
  • +;会讲所有数据查询完毕,在一起处理,例如(tar命令打包操作)

2.输入方式有区别

  • \;可以在{}后面添加数据
  • +;只能和{}直接相连,不能中间插入数据

查找文件并且删除(使用\来解决)

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "2.txt"

/root/oldboy01/oldboy02/2.txt

/root/oldboy01/2.txt

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "2.txt" -exec rm {} \;

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "2.txt"

 

[root@oldboy6666 oldboy02] #

 

将文件进行打包(使用+号来不进行覆盖,进行累加)

[root@oldboy6666 tmp] # find /oldboy -name "*.txt" -exec tar zcvf /tmp/oldboy1.tar.gz {} +;
tar: Removing leading `/' from member names
/oldboy/1.txt
/oldboy/2.txt
/oldboy/3.txt
/oldboy/4.txt
/oldboy/aa.txt
/oldboy/bb.txt
[root@oldboy6666 tmp] # tar tf oldboy1.tar.gz 
oldboy/1.txt
oldboy/2.txt
oldboy/3.txt
oldboy/4.txt
oldboy/aa.txt
oldboy/bb.txt
[root@oldboy6666 tmp] #

xargs命令的使用

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "3.txt"

/root/oldboy01/3.txt

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "3.txt" |xargs rm

[root@oldboy6666 oldboy02] # find /root/oldboy01/ -name "3.txt"

[root@oldboy6666 oldboy02] #

11.2.3.5 xargs命令的常用参数和使用方法

xargs -n num:分组为n num,

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -name "*.txt" | xargs -n2

/root/oldboy01/oldboy1.txt /root/oldboy01/oldboy2.txt

/root/oldboy01/oldboy3.txt /root/oldboy01/oldboy4.txt

/root/oldboy01/oldboy5.txt /root/oldboy01/oldboy6.txt

/root/oldboy01/oldboy7.txt /root/oldboy01/oldboy8.txt

/root/oldboy01/oldboy9.txt /root/oldboy01/oldboy10.txt

[root@oldboy6666 oldboy01] #

 

xargs -i :将执行结果放循环放到后面的{}里面

[root@oldboy6666 oldboy01] # find /root/oldboy01/ -name "*.txt" | xargs -i cp {} /tmp/oldboy_tmp/

[root@oldboy6666 oldboy01] # cd /tmp/oldboy_tmp/

 

[root@oldboy6666 oldboy_tmp] # ls

oldboy10.txt oldboy1.txt oldboy2.txt oldboy3.txt oldboy4.txt oldboy5.txt oldboy6.txt oldboy7.txt oldboy8.txt oldboy9.txt

[root@oldboy6666 oldboy_tmp] #

11.2.3.4 which命令

查找命令文件保存的路径

[root@oldboy6666 oldboy] # which cp

alias cp='cp -i'

    /usr/bin/cp

[root@oldboy6666 oldboy] #

11.2.3.5 whereis命令

查找命令文件的路径和其他有关于此命令的全部信息

[root@oldboy6666 oldboy] # whereis cp

cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz

[root@oldboy6666 oldboy] #

11.2.4 压缩、解压、查看的命令

11.2.4.1 压缩命令

压缩常见的参数详解

标准模式czvf 特殊模式:czvPhf

  • c 创建一个压缩文件
  • z 压缩成gzip文件格式的
  • v 详细显示压缩的过程
  • f 指定压缩包的路径
  • h 压缩的时候不会压缩软连接文件,会直接压缩真正的文件
  • P 压缩的时候采用绝对路径的压缩,解压的时候也是,(会造成文件的覆盖)
  • --exclude-from=指定的文件 将文件中的内容排除,不进行打包
  • --exclude=排除的文件目录 将指定的文件进行排除

    压缩文件格式

格式:tar czvf 压缩包的名字 压缩的数据

/root/oldboy01/下面的文件找到,并且进行打包,打包名字为oldboy_tar.tar.gz

[root@oldboy6666 ~] # find /root/oldboy01/ -name "*.txt" | xargs tar czvf /root/oldboy_tar.tar.gz

tar: Removing leading `/' from member names

/root/oldboy01/oldboy1.txt

/root/oldboy01/oldboy2.txt

/root/oldboy01/oldboy3.txt

/root/oldboy01/oldboy4.txt

/root/oldboy01/oldboy5.txt

/root/oldboy01/oldboy6.txt

/root/oldboy01/oldboy7.txt

/root/oldboy01/oldboy8.txt

/root/oldboy01/oldboy9.txt

/root/oldboy01/oldboy10.txt

[root@oldboy6666 ~] # ls

anaconda-ks.cfg oldboy01 oldboy_tar.tar.gz passwd

[root@oldboy6666 ~] #

/etc/rc.local进行打包(必须加参数h,要不就的去打包本身的路径)

[root@oldboy6666 ~] # tar zcvfh rc.local.tar.gz /etc/rc.local

tar: Removing leading `/' from member names

/etc/rc.local

[root@oldboy6666 ~] # ls

anaconda-ks.cfg h oldboy01 oldboy_tar.tar.gz passwd rc.local.tar.gz

[root@oldboy6666 ~] # tar tf rc.local.tar.gz

etc/rc.local

[root@oldboy6666 ~] #

 

将/oldboy/oldboy01下面的a.txt,b.txt打包, 将/oldboy/oldboy02下面的c.txt,a.txt不打包,剩余的打包

  1. 使用- -exclude-from方法解决

[root@oldboy6666 oldboy] # tar zcvf oldboy01.tar.gz ./oldboy01 ./oldboy02 --exclude-from=./1.txt

./oldboy01/

./oldboy01/a.txt

./oldboy01/b.txt

./oldboy02/

./oldboy02/b.txt

./oldboy02/c.txt

[root@oldboy6666 oldboy] # cat 1.txt

./oldboy01/c.txt

./oldboy02/a.txt

[root@oldboy6666 oldboy] #

 

(2)使用- -exclude进行解决

[root@oldboy6666 oldboy] # tar zcvf oldboy01.tar.gz ./oldboy01 --exclude=./oldboy01/c.txt ./oldboy02 --exclude=./oldboy02/a.txt

./oldboy01/

./oldboy01/a.txt

./oldboy01/b.txt

./oldboy02/

./oldboy02/b.txt

./oldboy02/c.txt

[root@oldboy6666 oldboy] #

解答

  • tar: Removing leading `/' from member names?

出现这个问题是因为:一个警告,告诉你打包的时候会将根排除,因为如果将根打包会造成解压的时候数据覆盖

解决办法

  • 采取相对路径进行打包操作
  • 采取带P参数进行操作

11.2.4.2 查看压缩命令

查看压缩文件的格式

tar tf 查看的压缩包

查看oldboy_tar.tar.gz里面的内容是否压缩完整

[root@oldboy6666 ~] # tar tf oldboy_tar.tar.gz

root/oldboy01/oldboy1.txt

root/oldboy01/oldboy2.txt

root/oldboy01/oldboy3.txt

root/oldboy01/oldboy4.txt

root/oldboy01/oldboy5.txt

root/oldboy01/oldboy6.txt

root/oldboy01/oldboy7.txt

root/oldboy01/oldboy8.txt

root/oldboy01/oldboy9.txt

 

[root@oldboy6666 ~] #

11.2.4.3 解压命令

解压常见的参数

  • x 进行解压
  • -C 指定解压的路径

    解压格式

tar xf 解压的压缩包

oldboy01.tar.gz进行解压

[root@oldboy6666 oldboy_tmp] # tar xf oldboy01.tar.gz

[root@oldboy6666 oldboy_tmp] # ls

oldboy01.tar,gz oldboy01.tar.gz root

[root@oldboy6666 oldboy_tmp] # ls

oldboy01.tar,gz oldboy01.tar.gz root

[root@oldboy6666 oldboy_tmp] # ls

oldboy01.tar,gz oldboy01.tar.gz root

[root@oldboy6666 oldboy_tmp] # cd /root/oldboy01/

[root@oldboy6666 oldboy01] # ls

oldboy02 oldboy10.txt oldboy1.txt oldboy2.txt oldboy3.txt oldboy4.txt oldboy5.txt oldboy6.txt oldboy7.txt oldboy8.txt oldboy9.txt

[root@oldboy6666 oldboy01] #

 

oldboy01.tar.gz解压到/tmp目录下

[root@oldboy6666 oldboy] # ls

oldboy01.tar.gz oldboy01.txt oldboy02.txt oldboy03.txt

[root@oldboy6666 oldboy] # tar xf oldboy01.tar.gz -C /tmp

[root@oldboy6666 oldboy] # cd -

/tmp

[root@oldboy6666 tmp] # ls

oldboy01.txt oldboy02.txt oldboy03.txt

[root@oldboy6666 tmp] #

11.3 linux系统的组成部分__文件权限

11.3.1 文件权限常见有哪些

  • r
  • w
  • x 执行
    • 无权限

11.3.2 文件权限代表的意思

  • r 4
  • w 2
  • x 1

- 0

11.3.3 文件和目录创建时候默认权限

11.3.3.1 文件:644

[root@oldboy6666 oldboy] # touch oldboy01.txt

[root@oldboy6666 oldboy] # ll

total 0

-rw-r--r-- 1 root root 0 Sep 17 07:53 oldboy01.txt

[root@oldboy6666 oldboy] #

 

11.3.3.2 目录:755

[root@oldboy6666 /] # mkdir oldboy

[root@oldboy6666 /] # ls

bin boot dev etc home lib lib64 media mnt oldboy opt proc root run sbin server srv sys tmp usr var

[root@oldboy6666 /] # ll -d oldboy

drwxr-xr-x 2 root root 6 Sep 17 07:52 oldboy

11.3.3.3 为什么目录默认权限是755,文件是644

创建一个新文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是由umask(权限掩码)来控制的,一般umask默认值为022,其最终效果就是新创建的目录权限为755,文件权限为644。所以只要修改了用户的umask值,就可以控制默认权限。

11.3.3.4 为什么文件不受umask控制的时候默认权限666,目录777

文件默认是不会给执行权限的,就算是最高root用户也一样,所以是666

目录默认是会有执行全新年的,普通用户也一样,要不没办法切换目录,所以是777

11.4 linux系统的组成部分__用户类型

11.4.1 常见的用户类型

11.4.1.1 皇帝(root)

  • 计算机识别数为0
  • 权限:所有权限
  • 特点:拥有linux系统中的所有权限,可以登录

11.4.1.2 傀儡(虚拟用户)

  • 计算机识别数:1-999(centos7) 1-499(centos6)
  • 代表用户:nobody
  • 特点:管理一些进程使用的用户,不可以登陆,不存在用户家目录
  • 权限:管理进程使用
  • 注意: 首先不是ID为999以后就不是虚拟用户,只要满足没有家目录,不能登录则为一个虚拟用户

11.4.1.3 平民(其他用户)

  • 计算机识别数:1000+(centos7) 500+(centos6)
  • 特点:权限只能管理用户本身家目录里面的信息,权限比较小
  • 代表用户:oldboy
  • 权限:管理本身用户的家目录信息

 

11.4.2 查看用户

11.4.2.1 查看root用户的信息

[root@oldboy6666 tmp] # id root

uid=0(root) 01 gid=0(root) 02 groups=0(root) 03

[root@oldboy6666 tmp] #

  • 01:表示用户的名称和用户的编号信息
  • 02:表示用户组的名称和用户组的编号信息------主要用户组
  • 03:表示用户组的名称和用户组的编号信息-------次要用户组

11.5 linux系统的组成部分__时间

11.5.1 查看时间

11.5.1.1 date命令

[root@oldboy6666 oldboy] # date

Tue Sep 17 08:28:48 CST 2019

[root@oldboy6666 oldboy] #

11.5.2 时间常用的一些代表符号

  • y 代表年
  • Y 代表年(带世纪)
  • m 代表分钟
  • M 代表月
  • d 代表天
  • S 代表秒
  • W 代表一年的第几周
  • w 代表这周星期几
  • H 代表小时

11.5.3 将时间修改成人类可读的时间类型

[root@oldboy6666 oldboy] # date "+%Y-%m-%d %H:%M:%S"

2019-09-17 10:05:20

[root@oldboy6666 oldboy] #

11.5.4 修改时间

  • -s 修改时间

[root@oldboy6666 oldboy] # date -s "20190918 10:20:00"

Wed Sep 18 10:20:00 CST 2019

[root@oldboy6666 oldboy] # date

Wed Sep 18 10:20:02 CST 2019

[root@oldboy6666 oldboy] # date "+%Y-%m-%d %H:%M:%S"

2019-09-18 10:20:05

[root@oldboy6666 oldboy] #

11.5.5 将时间进行穿越式的修改

11.5.5.1 查看后20天的时间

[root@oldboy6666 ~] # date -d "+20 day" "+%Y-%m-%d"

2019-10-08

[root@oldboy6666 ~] #

11.5.5.2 查看前5天的时间

[root@oldboy6666 ~] # date -d "-5 day" "+%Y-%m-%d"

2019-09-13

[root@oldboy6666 ~] #

11.5.5.3 查看1970年01-01后的1234567890秒时间

[root@oldboy6666 tmp] # date -d "1970-01-01 +1234567890second" "+%F %T"

2009-02-13 23:31:30

[root@oldboy6666 tmp] #

11.5.6 mtime,atime,ctime的区别和什么时候使用哪种类型

11.5.6.1 atime

atime(access):代表的是访问的时间

[root@oldboy6666 ~] # stat /oldboy/oldboy01.txt

File: '/oldboy/oldboy01.txt'

Size: 0     Blocks: 0 IO Block: 4096 regular empty file

Device: 803h/2051d    Inode: 201983163 Links: 1

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

Access: 2019-09-17 07:53:10.450938578 +0800

Modify: 2019-09-17 07:53:10.450938578 +0800

Change: 2019-09-17 07:53:10.450938578 +0800

Birth: -

[root@oldboy6666 ~] #

 

11.5.6.2 mtime

mtime(modify):文件修改的时间

[root@oldboy6666 ~] # echo aa >> /oldboy/oldboy01.txt

[root@oldboy6666 ~] # stat /oldboy/oldboy01.txt

File: '/oldboy/oldboy01.txt'

Size: 7     Blocks: 8 IO Block: 4096 regular file

Device: 803h/2051d    Inode: 201983568 Links: 1

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

Access: 2019-09-18 10:50:55.721105498 +0800

Modify: 2019-09-18 10:51:19.508106850 +0800

Change: 2019-09-18 10:51:19.508106850 +0800

Birth: -

[root@oldboy6666 ~] #

11.5.6.3 ctime

ctime(change):文件改变时间(文件属性的修改)

[root@oldboy6666 ~] # chmod 777 /oldboy/oldboy01.txt

[root@oldboy6666 ~] # stat /oldboy/oldboy01.txt

File: '/oldboy/oldboy01.txt'

Size: 7     Blocks: 8 IO Block: 4096 regular file

Device: 803h/2051d    Inode: 201983568 Links: 1

Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2019-09-18 10:50:55.721105498 +0800

Modify: 2019-09-18 10:51:19.508106850 +0800

Change: 2019-09-18 10:53:55.717115731 +0800

Birth: -

[root@oldboy6666 ~] #

11.6 linux系统的组成部分__inode和block

扩展文件系统

  • 做磁盘的阵列
  • 创建分区
  • 格式化分区(会默认创建文件系统的)
  • 挂载分区

centos6和centos7文件系统是什么,他们有什么区别

  • centos6:ext3/ext4
  • centos7:xfs

区别:centos7的文件系统数据存储性能更高和格式化文件速度更快

11.6.1 inode的介绍

11.6.1.1 inode概念说明

索引节点

11.6.1.2 inode作用

存储文件属性和文件指针的信息

11.6.1.3 inode的创建

创建文件系统的时候

11.6.1.4 inode的查看

[root@oldboy6666 ~] # df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/sda3 51539456 168078 51371378 1% /

devtmpfs 120529 388 120141 1% /dev

tmpfs 124468 1 124467 1% /dev/shm

tmpfs 124468 981 123487 1% /run

tmpfs 124468 16 124452 1% /sys/fs/cgroup

/dev/sda1 75800 346 75454 1% /boot

tmpfs 124468 7 124461 1% /run/user/42

tmpfs 124468 21 124447 1% /run/user/0

/dev/sr0 0 0 0 - /run/media/root/CentOS 7 x86_64

[root@oldboy6666 ~] #

11.6.1.5 inode的特点

  • inode 里面存放的是文件属性和指针信息
  • 一个文件创建拥有-个inode
  • 2个inode相同的文件互为硬链接

11.6.2 block的介绍

11.6.2.1 block的概念说明

block:存储数据块

11.6.2.2 block作用

存储文件数据的信息

11.6.2.3 block的创建

创建文件系统的时候出现

11.6.2.4 block的特点

  • 存储文件的数据信息
  • 每个文件至少占用一个block
  • block的大小可以调整

    如果是大文件存储或者读取,希望block变大,这样可以减少磁盘I/O的损耗

如果是文件比较小的情况下,希望block减小,这样可以节约block,节省磁盘的 数据

11.6.2.5 block的查看

[root@oldboy6666 ~] # df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda3 103028584 5082648 97945936 5% /

devtmpfs 482116 0 482116 0% /dev

tmpfs 497872 0 497872 0% /dev/shm

tmpfs 497872 8824 489048 2% /run

tmpfs 497872 0 497872 0% /sys/fs/cgroup

/dev/sda1 201380 163736 37644 82% /boot

tmpfs 99576 8 99568 1% /run/user/42

tmpfs 99576 36 99540 1% /run/user/0

/dev/sr0 4480476 4480476 0 100% /run/media/root/CentOS 7 x86_64

[root@oldboy6666 ~] #

 

 

11.6.3 图示inodeblock

11.6.4 硬链接的介绍

inode号码一致的文件互为硬链接文件

11.6.4.1 创建语法

ln 源文件 硬链接的文件

将/oldboy/oldboy01.txt文件设置硬链接,名字为oldboy02.txt

[root@oldboy6666 oldboy] # ln oldboy01.txt oldboy02.txt

[root@oldboy6666 oldboy] # ll -i

total 8

201983568 -rwxrwxrwx 2 root root 7 Sep 18 2019 oldboy01.txt

201983568 -rwxrwxrwx 2 root root 7 Sep 18 2019 oldboy02.txt

[root@oldboy6666 oldboy] #

11.6.4.2 特点

  • 源文件删除,链接文件不会失效
  • 硬链接创建成功,不会占用inode和block
  • 硬链接对目录不能进行处理, 不能创建硬链接目录
  • 默认目录链接数为2,文件为1

11.6.4.3 作用

可以防止数据的误删除,但是不可以防止数据的变化

11.6.5 软链接的介绍

数据信息的快捷方式

11.6.5.1 创建语法

ln -s 源文件 创建的软链接

将/oldboy/oldboy01.txt文件设置软链接,名字为oldboy03.txt

[root@oldboy6666 oldboy] # ln -s oldboy01.txt oldboy03.txt

[root@oldboy6666 oldboy] # ll -i

total 8

201983568 -rwxrwxrwx 2 root root 7 Sep 18 2019 oldboy01.txt

201983568 -rwxrwxrwx 2 root root 7 Sep 18 2019 oldboy02.txt

201940459 lrwxrwxrwx 1 root root 12 Sep 17 11:34 oldboy03.txt -> oldboy01.txt

[root@oldboy6666 oldboy] #

11.6.5.2 特点

  • 源文件删除,链接文件会失效
  • 硬链接创建成功,会占用一个inode,block不会占用
  • 软链接对目录可以进行处理, 可以创建软链接目录

11.6.5.3 作用

可以方便研发人员调取数据

11.6.6 硬链接和cp命令的不同,什么时候使用硬链接,什么时候使用cp

  • 硬链接创建以后,由于inode号相同,导致硬链接指向的内容也是源文件指向的内容,源文件的内容进行修改,硬链接的文件内容也会进行修改;真乃删除源文件的时候,硬链接数-1,知道硬链接数为0,文件就会消失
  • cp创建复制文件的时候,由于inode号不同,所指向的内容也不同,cp只会保存开始复制以后之前的书记,后面的数据不会随着源文件的内容改变而出现改变

11.6.7 文件误删除的情况怎么处理(日志文件,备份文件还原上面没有办法执行)

  • 查看有没有硬链接文件
  • 重启服务,重新加载日志服务系统(systemctl restart rsyslog.service)

 

11.6.7 软硬链接图示

 

猜你喜欢

转载自www.cnblogs.com/liangyuxing/p/11962673.html