day6-文件属性及文件类型

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变量查找命令,有则执行,无则报错

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容