day6 2019.7.31
文件属性
[root@kuangjie ~]# ll -h
total 59M
-rw-r--r--. 1 root root 672 Jul 30 15:33 1.txt
-rw-r--r--. 1 root root 56M Jul 30 16:00 access.log
-rw-------. 1 root root 1.5K Jul 24 16:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 20 Jul 30 11:51 file.txt
-rw-r--r--. 1 root root 48 Jul 30 11:37 fire.txt
-rw-r--r--. 1 root root 2.5M Jul 30 12:22 fj.xuliangwei.com.log
# - 表示文件类型
# rw-r--r-- 权限
# 1 链接数
# root 拥有用户
# root 拥有用户组
# 672 文件大小
# Jul 30 15:33 日期
# 1.txt 名称
文件类型
[root@kuangjie ~]# 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:14 /dev/log
brw-rw----. 1 root disk 8, 0 Jul 31 08:14 /dev/sda
crw--w----. 1 root tty 4, 1 Jul 31 08:15 /dev/tty1
lrwxrwxrwx. 1 root root 22 Jul 29 09:05 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
drwxrwxrwt. 15 root root 4096 Jul 31 09:45 /tmp
# - 普通文件
# b 块设备文件 (block)
# c 字符设备 提供用户的输入与输出
# s 套接字文件 (socket) 本地进程与进程间的一种通信方式
# l 链接文件(link)
# d 目录文件(directoyr)
使用file命令查看文件的具体类型
[root@kuangjie ~]# file 1.txt oldboy/ passwd messages web.log
1.txt: ASCII text
oldboy/: directory
passwd: ASCII text
messages: UTF-8 Unicode text
web.log: ASCII text
#linux不区分后缀
#后缀只是为了更好的区分文件类型
#更改后缀也更改不了文件类型
系统链接文件
inode 索引 (权限 属性 大小 唯独没文件名)
block 真实数据
软链接 多个不同inode指向同一个block
硬链接 多个相同inode指向同一个block
[root@kuangjie ~]# ll -i file.txt file1.txt file2.txt
67413007 -rw-r--r--. 2 root root 20 Jul 30 11:51 file1.txt
67400866 lrwxrwxrwx. 1 root root 9 Jul 31 11:08 file2.txt -> file2.txt
67413007 -rw-r--r--. 2 root root 20 Jul 30 11:51 file.txt
#软链接使用场景
1.软件升级 软件回退
[root@kuangjie tmp]# mkdir qq_v1.1
[root@kuangjie tmp]# ln -s ./qq_v1.1/ ./qq
[root@kuangjie tmp]# ll
total 0
lrwxrwxrwx. 1 root root 10 Jul 31 14:35 qq -> ./qq_v1.1/
drwxr-xr-x. 2 root root 6 Jul 31 14:34 qq_v1.1
#软件升级
[root@kuangjie tmp]# mkdir qq_v1.2
[root@kuangjie tmp]# rm -f ./qq && ln -s ./qq_v1.2 ./qq
[root@kuangjie tmp]# ll
total 0
lrwxrwxrwx. 1 root root 9 Jul 31 14:40 qq -> ./qq_v1.2
drwxr-xr-x. 2 root root 6 Jul 31 14:34 qq_v1.1
drwxr-xr-x. 2 root root 6 Jul 31 14:36 qq_v1.2
#软件回退
[root@kuangjie tmp]# rm -f ./qq && ln -s ./qq_v1.1 ./qq
[root@kuangjie tmp]# ll
total 0
lrwxrwxrwx. 1 root root 9 Jul 31 14:41 qq -> ./qq_v1.1
drwxr-xr-x. 2 root root 6 Jul 31 14:34 qq_v1.1
drwxr-xr-x. 2 root root 6 Jul 31 14:36 qq_v1.2
2.代码升级 秒级回退
#当代码升级上线时出现故障,将链接重新指向上一个版本,让系统正常运行再解决版本问题
硬链接与软链接的区别
1.ln 创建硬链接 ln -s 创建软链接
2.目录不能创建硬链接,并且硬链接不能跨分区
3.硬链接文件inode与源文件相同,软链接inode与源文件不同
4.删除软链接文件,对源文件与硬链接文件无影响
5.删除文件的硬链接文件,对源文件与软链接文件无影响
6.删除源文件,对硬链接无影响,会导致软链接失效
7.删除源文件及硬链接,整个文件都会被正在删除
命令执行流程
1.判断命令是否通过绝对路径执行
2.判断命令是否存在alias别名
3.判断用户输入的是内置命令还是外置命令
4.bash内部命令直接执行,外置命令检测是否存在缓存
5.通过$PASH变量查找命令,有则执行,无则报错