Day06-CentOS7文件属性、文件类型、软、硬链接的学习
2019-07-31 本文已影响39人
郝煜_Hyman
文件属性
使用 ls -l 查看的详细信息,每一列都是干什么的
[root@haoyu1 ~]# ll -h
total 2.6M
-rw-------. 1 root root 1.4K Jul 25 00:31 anaconda-ks.cfg
-rw-r--r--. 1 root root 16 Jul 30 11:31 file1.txt
-rw-r--r--. 1 root root 24 Jul 30 11:36 file2.txt
-rw-r--r--. 1 root root 25 Jul 30 11:10 file.txt
-rw-r--r--. 1 root root 2.5M Jul 30 12:25 fj.xuliangwei.com.log
-rw-r--r--. 1 root root 744 Apr 2 14:57 ip.txt
-rw-r--r--. 1 root root 14K Feb 14 17:51 ks.jpeg
# 第一列第一个字符 表示文件类型 --->
# rw-r--r-- 权限
# 1 这个文件被链接的次数
# root 文件的拥有者(用户)
# root 文件的拥有组(用户组)
# 1.4K 文件的大小
# Feb 14 17:51 文件的日期,以及创建的文件的时间
# 1.txt 文件名称
文件类型
文件类型,怎么精准定位一个文件到底是什么类型的

- 文件 (普通文件 图片 压缩包)
s socket 本地进程与进程间的一种通信方式 (mysql)
b 块设备文件 (硬盘 光盘 分区)
c 字符设备 用于提供用户的输入与输出
l 链接文件 类似windows的快捷方式
d 目录 类似windows的文件夹
对于一些文件无法精准的区分类型, 可以使用file命令查看
[root@[root@oldboyedu.com~]# file /bin/ls 1.sh 1.txt access.log img.jpg 123.zip
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b , stripped
1.sh: Bourne-Again shell script, ASCII text executable
1.txt: ASCII text
access.log: ASCII text, with very long lines
img.jpg: JPEG image data, JFIF standard 1.01
123.zip: Zip archive data, at least v2.0 to extract
因为Linux不区分后缀, 后缀通常都是用来表示的,为了方便我们自己好识别
链接文件
1.软连接(类似于Windows的快捷方式)
软链接的使用场景(很少对文件做软链接)
1.软件升级 2.软件回退
#创建链接文件
[root@haoyu1 /test]# mkdir hy_v1.1
[root@haoyu1 /test]# ln -s /test/hy_v1.1/ /test/hy
#升级
[root@haoyu1 /test]# mkdir hy_v1.2
[root@haoyu1 /test]# rm -f /test/hy && ln -s /test/hy_v1.2 /test/hy
#回退
[root@haoyu1 /test]# rm -f /test/hy && ln -s /test/hy_v1.1 /test/hy
2.代码升级 秒级回退

3.不方便移动的目录(使用硬链接)
#硬链接
[root@haoyu1 /test]# ln 1232 123123
4.硬链接与软链接区别 (笼统的说法)
1)ln命令创建硬链接,ln -s命令创建软链接。
2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。
3)目录软链接特别常用,并且软链接支持跨越分区系统。
4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不 同。
5)删除软链接文件,对源文件及硬链接文件无任何影响。
6)删除文件的硬链接文件,对源文件及链接文件无任何影响。
7)删除链接文件的源文件,对硬链接无影响,会导致软链接失效。
8)删除源文件及其硬链接文件,整个文件会被真正的删除。
5.软链接与硬链接的区别?(能看懂的说法)
1.软连接就是一个快捷方式,删除软连接不会影响源文件.
2.硬链接,类似于一个文件副本,删除硬链接不影响原文件,只有删 除所有的硬链接及其源文件,这个文件才算彻底被删除.
软链接和硬链接的区别实践
软链接和硬链接的区别实践图例
#创建一个实验文件并添加一些随机的内容
[root@haoyu1 /test]# touch hy123
[root@haoyu1 /test]# vi
[root@haoyu1 /test]# vi hy123
[root@haoyu1 /test]# cat hy123
qutv
ut
#创建软链接和硬链接并查看
[root@haoyu1 /test]# ln -s hy123 hy123_sort1
[root@haoyu1 /test]# ln hy123 hy123_hard1
[root@haoyu1 /test]# ll
total 8
-rw-r--r--. 2 root root 8 Jul 31 15:40 hy123
-rw-r--r--. 2 root root 8 Jul 31 15:40 hy123_hard1
lrwxrwxrwx. 1 root root 5 Jul 31 15:41 hy123_sort1 -> hy123
#删除源文件并查看软链接和硬链接的区别
[root@haoyu1 /test]# rm hy123
rm: remove regular file ‘hy123’? y
[root@haoyu1 /test]# cat hy123_sort1
cat: hy123_sort1: No such file or directory
[root@haoyu1 /test]# cat hy123_hard1
qutv
ut
[root@haoyu1 /test]# ll
total 4
-rw-r--r--. 1 root root 8 Jul 31 15:40 hy123_hard1
lrwxrwxrwx. 1 root root 5 Jul 31 15:41 hy123_sort1 -> hy123
命令执行流程[扩展了解]
当我们执行一个命令, 整个命令执行流程如下:
- 判断命令是否通过绝对路径执行
- 判断命令是否存在alias别名
- 判断用户输入的是内置命令还是外置命令
- Bash内部命令直接执行,外部命令检测是否存在缓存
- 通过$PATH变量查找命令,有执行,无报错 command not found
绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有 command not found