Day6 07-31 Linux文件属性

Linux文件属性

-rw-r--r--. 1 root root 672 Jul 30 15:23 file.txt

第一列第一个字符  表示文件类型

rw-r--r--      文件权限

root  第三列  文件拥有者(用户)

root  第四列  文件的拥有组(用户组)   

672  第五列  文件大小

Jul 30 15:23  文件创建时间

file.txt          文件名

- 普通文件(图片 压缩包)

d 目录文件(硬盘 光驱 分区)

l  链接文件 快捷方式

s socket  本地进程于进程间的一种通信方式 (mysql)

b block    块设备(磁盘\分区光盘)

c 字符设备 用于提供用户的输入和输出

第二种方式:当无法通过ls -l的属性识别该文件是什么类型时,可以通过file进行查看

file 确定文件类型

[root@centos ~]# file access.log

access.log: ASCII text, with very long lines


我们会将文件表示对应的后缀.让我们好识别

Linux不区分后缀,后缀只是为了让我们好识别

系统连接文件

Linux上分成2个部分:

用户数据即文件数据块,数据块时记录文件真实内容的地方,我们将其称为Block

元数据即文件的附加属性,如文件大小,创建时间,所以者等信息。我们称其为Inode

Linux系统引入两种链接

硬链接 ln 创建硬链接

  硬链接则是拥有相同的inode id .只有删除文件后,才会失效.

  目录不能创建硬链接

  不支持跨分区,

软链接 ln -s 创建软链接

  其实就是通过inode指向block

  文件很少创建软链接

  要用绝对路径

  软链接类似于快捷方式,inode id 不同,删除原文件,则软链接失效

  [root@centos ~]# ln -s file.txt /root/kj.txt

  [root@centos ~]# rm -f /root/kj.txt && ln -s /root/file1.txt /root/kj.txt

  先执行删除,然后执行ln操作,&&(暗的符)前面的命令执行成功,则立即执行&&后面的命令

  1.软件升级

[root@centos ~]# rm -fr qq && ln -s /root/qq_v1.1 /root/qq  删除qq目录并且创建一个qq_v1.1的一个qq软链接

[root@centos ~]# ll

total 0

lrwxrwxrwx. 1 root root 13 Jul 31 11:41 qq -> /root/qq_v1.1

drwxr-xr-x. 2 root root  6 Jul 31 11:29 qq_v1.1

drwxr-xr-x. 2 root root  6 Jul 31 11:29 qq_v1.2

  2.企业代码发布

  3.不方便目录移动

区别

  1,ln命令创建硬链接,ln -s 命令创建软链接

  2,目录不能创建硬链接,并且硬链接不可以跨越分区系统

  3,目录软链接特别常用,并且软链接支持跨分区系统

  4,硬链接文件于源文件的inode相同,软链接文件于源文件ionde不同

  5,删除软链接文件,对源文件及硬链接文件无任何影响

  6,删除文件的硬链接,对源文件及链接文件无任何影响

  7,删除链接文件的源文件,对硬链接无影响,会导致软链接失效

  8,删除源文件及其硬链接文件,整个文件会被真正的删除

总结:

  1.符号链接就是软链接,类似于快捷方式,inode id 不同,删除源文件,则软链接失效

  2.硬链接则是拥有相同inode id 的文件,只有删除所有文件后,才会失效

Linux命令执行流程

  1,命令是否通过绝对路径执行

  2,命令是否存在alias别名

  3,用户输入的是shell内置命令还是外置命令 type -e

  4,bash内部命令直接执行,外部命令检测是否存在缓存

  5,查找系统全局$PATH变量,变量中保存的全部都是命令存放的路径,有执行,无报错command not found

什么是内部命令,什么是外部命令

内部命令:shell程序自带的命令

外部命令:在系统PATH变量的莫格路径下可执行程序

如何检查用户输入的命令是内部命令还是外部命令

[root@centos ~]# type -a cd

cd is a shell builtin  #shell程序自带的命令 内置命令

cd is /usr/bin/cd

ping属于外部命令,同时会打印当前命令路径

[root@centos ~]# type -a ping

ping is /usr/bin/ping 

如果时外置命令,Bash可以通过查找PATH变量,获取该命令的绝对路径

[root@centos ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

hash -r 清除命令执行路径缓存

你可能感兴趣的:(Day6 07-31 Linux文件属性)