美文网首页
day06-Linux基础学习 文件相关知识点

day06-Linux基础学习 文件相关知识点

作者: 云运维之道 | 来源:发表于2019-07-31 15:40 被阅读0次

一、系统文件属性

ls -l 以长格式的方式显示文件详细信息,也就是文件属性,一共分为十列。

[root@oldboy ~]# ls -l
-rw-------. 1 root root     1523 Jul 24 16:20 anaconda-ks.cfg

        -              文件类型
        rw-------.     权限    . 代表没有关闭selinux
        1              硬链接次数
        root           属主
        root           属组
        1523         文件大小
        Jul 24 16:20   时间与日期
        ks.cfg         文件或目录名称

二、系统文件类型

1.通过 ls -l 以长格式显示一个文件的属性,通过第一列的第一个字符来近一步的判断文件具体的类型。

[root@oldboy ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log
-rwxr-xr-x.  1 root root 117680 Oct 31  2018 /bin/ls
srw-rw-rw-.  1 root root      0 Jul 31 08:44 /dev/log
brw-rw----.  1 root disk   8, 0 Jul 31 08:45 /dev/sda
crw--w----.  1 root tty    4, 1 Jul 31 08:45 /dev/tty1
lrwxrwxrwx.  1 root root     22 Jul 24 16:11 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--.  1 root root    158 Jul 29 15:50 /etc/hosts
drwxrwxrwt. 30 root root   4096 Jul 31 09:48 /tmp

      -   普通文件
      s   套接字文件, 进程间通信(socket)
      b   设备文件(块设备)存储设备硬盘 
      c   设备文件(字符设备),终端 
      l   链接文件
      d   目录文件

2.使用 file命令 来判断无法通过 ls -l命令查看的文件的类型

[root@oldboy ~]# file 12.PNG 
12.PNG: PNG image data, 1202 x 355, 8-bit/color RGBA, non-interlaced
[root@oldboy ~]# file 1.rar 
1.rar: RAR archive data, flags: Archive volume, Commented, Locked, Solid,
[root@oldboy ~]# file 1.txt 
1.txt: ASCII text
[root@oldboy ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text
[root@oldboy ~]# file passwd 
passwd: ASCII text
[root@oldboy ~]# file web3_access.log 
web3_access.log: ASCII text, with very long lines
[root@oldboy ~]# 

Linux文件后缀不代表任何含义,仅为了我们能更好的识别该文件是什么类型。

三、系统链接文件

Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)

1.软链接

指向原始文件所在的路径,相当于Windows的快捷方式。
选项:
-s 创建软链接

[root@oldboy ~]# ln -s /root/file /root/aa
[root@oldboy ~]# ll
lrwxrwxrwx. 1 root root 10 Jul 31 16:00 aa -> /root/file
-rw-r--r--. 1 root root  5 Jul 31 15:28 file

2.硬链接

指向原始文件对应的数据存储位置

[root@oldboy ~]# ln /root/file /root/bb
[root@oldboy ~]# ll
-rw-r--r--. 2 root root  5 Jul 31 15:28 bb
-rw-r--r--. 2 root root  5 Jul 31 15:28 file

3.软链接使用场景

1)软件升级

[root@oldboy ~]# mkdir qq_v1.1
[root@oldboy ~]# ln -s /root/qq_v1.1/ /root/qq
[root@oldboy ~]# ll
total 0
lrwxrwxrwx. 1 root root 14 Jul 31 14:56 qq -> /root/qq_v1.1/
drwxr-xr-x. 2 root root  6 Jul 31 14:56 qq_v1.1
#升级
[root@oldboy ~]# mkdir qq_v1.2
[root@oldboy ~]# rm -rf /root/qq && ln -s /root/qq_v1.2/ /root/qq
[root@oldboy ~]# ll
total 0
lrwxrwxrwx. 1 root root 14 Jul 31 14:59 qq -> /root/qq_v1.2/
drwxr-xr-x. 2 root root  6 Jul 31 14:56 qq_v1.1
drwxr-xr-x. 2 root root  6 Jul 31 14:58 qq_v1.2
#回退
[root@oldboy ~]# rm -rf /root/qq && ln -s /root/qq_v1.1/ /root/qq
[root@oldboy ~]# ll
total 0
lrwxrwxrwx. 1 root root 14 Jul 31 15:00 qq -> /root/qq_v1.1/
drwxr-xr-x. 2 root root  6 Jul 31 14:56 qq_v1.1
drwxr-xr-x. 2 root root  6 Jul 31 14:58 qq_v1.2

2)代码升级,秒级回退

升级.png
秒级回退.png

3)不方便目录移动

超大文件不方便移动,便设置一个软链接,如同windows一样,如果D盘有一个特大文件,为了方便想放在桌面,但C盘太小,放不下,这时就可以设置一个快捷方式,便于查看、管理。

4.硬链接与软链接区别

1)ln命令创建硬链接,ln -s命令创建软链接。
2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。
3)目录软链接特别常用,并且软链接支持跨越分区系统。
4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
5)删除软链接文件,对源文件及硬链接文件无任何影响。
6)删除文件的硬链接文件,对源文件及链接文件无任何影响。
7)删除链接文件的源文件,对硬链接无影响,会导致软链接失效。
8)删除源文件及其硬链接文件,整个文件会被真正的删除。

注:
1.软连接就是一个快捷方式,删除软连接不会影响源文件.
2.硬链接,类似于一个文件副本,删除硬链接不影响原文件,只有删除所有的硬链接及其源文件,这个文件才算彻底被删除.

图.png
[root@oldboy ~]# touch file
[root@oldboy ~]# ln -s /root/file /root/file_sort_1 
[root@oldboy ~]# ln -s /root/file /root/file_sort_2
[root@oldboy ~]# ln /root/file /root/file_hard_1
[root@oldboy ~]# ll
total 0
-rw-r--r--. 2 root root  0 Jul 31 15:26 file
-rw-r--r--. 2 root root  0 Jul 31 15:26 file_hard_1
lrwxrwxrwx. 1 root root 10 Jul 31 15:26 file_sort_1 -> /root/file
lrwxrwxrwx. 1 root root 10 Jul 31 15:27 file_sort_2 -> /root/file

[root@oldboy ~]# vi file
[root@oldboy ~]# cat file
qqqq
[root@oldboy ~]# rm -rf file_sort_1
[root@oldboy ~]# cat file
qqqq
[root@oldboy ~]# cat file_sort_2 
qqqq
[root@oldboy ~]# rm -rf file_sort_2 
[root@oldboy ~]# cat file
qqqq
[root@oldboy ~]# cat file_hard_1 
qqqq
[root@oldboy ~]# rm -rf file_hard_1 
[root@oldboy ~]# cat file 
qqqq

四、命令执行流程[扩展了解]

执行流程:
绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有command not found

首先判断命令是否通过绝对路径执行,无报错;
是则就判断命令是否存在alias别名,无报错;
是则判断用户输入的是内置命令还是外置命令,
是内置命令直接执行,是外部命令则检测是否存在缓存;
通过$PATH变量查找命令,有执行,无报错 command not found

相关文章

网友评论

      本文标题:day06-Linux基础学习 文件相关知识点

      本文链接:https://www.haomeiwen.com/subject/kfxtdctx.html