一、系统文件属性
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)代码升级,秒级回退


3)不方便目录移动
超大文件不方便移动,便设置一个软链接,如同windows一样,如果D盘有一个特大文件,为了方便想放在桌面,但C盘太小,放不下,这时就可以设置一个快捷方式,便于查看、管理。
4.硬链接与软链接区别
1)ln命令创建硬链接,ln -s命令创建软链接。
2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。
3)目录软链接特别常用,并且软链接支持跨越分区系统。
4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
5)删除软链接文件,对源文件及硬链接文件无任何影响。
6)删除文件的硬链接文件,对源文件及链接文件无任何影响。
7)删除链接文件的源文件,对硬链接无影响,会导致软链接失效。
8)删除源文件及其硬链接文件,整个文件会被真正的删除。
注:
1.软连接就是一个快捷方式,删除软连接不会影响源文件.
2.硬链接,类似于一个文件副本,删除硬链接不影响原文件,只有删除所有的硬链接及其源文件,这个文件才算彻底被删除.

[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
网友评论