zoukankan      html  css  js  c++  java
  • linux文件属性和类型

    Linux文件属性和类型

    1.linux文件属性

    第一种查看方式

    [root@beua ~]# ls -l ks.cfg
    -rw-------. 1 root root 4434 May 30 13:58 ks.cfg

    -rw-------.    ①:第一个字符是文件类型,其他则是权限
    1           ②:硬链接次数
    root        ③:文件属于哪个用户
    root        ④:文件属于哪个组
    4434         ⑤:文件大小
    May30 13:58    ⑥⑦⑧:最新修改的时间与日期
    ks.cfg       ⑨:文件或目录名称

    2.linux文件类型

    -rwxr-xr-x. 1 root root 117680 Oct 31 03:16 /bin/ls
    srw-rw-rw-. 1 root root 0 Apr 3 16:57 /dev/log
    brw-rw----. 1 root disk 8, 0 Apr 3 16:57 /dev/sda
    crw--w----. 1 root tty 4, 1 Apr 3 16:57 /dev/tty1
    lrwxrwxrwx. 1 root root 22 Mar 28 03:33 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
    -rw-r--r--. 1 root root 158 Apr 1 18:09 /etc/hosts
    prw-------. 1 root root 0 Apr 3 16:57 /run/dmeventd-client
    drwxrwxrwt. 22 root root 4096 Apr 3 20:57 /tmp

    #最前面那个字母含义:

    - 通常指的是文件 s socket文件(mysql) b block 块设备(磁盘分区光盘) c 字符设备 l 链接文件(呈现浅蓝色) p 管道文件 d 目录文件(呈现蓝色状态)

    第二种查看方式:

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

    我们会将文件标注对应的后缀. .txt .sh .mp3 .mp4 .exe .zip Linux的文件加上后缀能够便于我们快速的识别.这个文件是什么类型.

    3.linux系统链接文件

    #软链接使用场景 1.软件升级 2.企业代码发布 3.不方便目录移动

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

    [root@beua ~]# rm -f /root/qq && ln -s /root/qq_v1.2/ /root/qq  #版本升级
    [root@beua ~]# rm -f /root/qq && ln -s /root/qq_v1.1/ /root/qq

    4.硬链接与软链接区别

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

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

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

    4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。

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

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

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

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

    总结: 软链接就是快捷方式,不同的inode同时指向同一个block,删除软链接,源文件没有任何影响,删除源文件则软链接失效.

    硬链接是多个相同的inode指向同一个block,其实就是用于给文件做备份.(只有删除所有文件,硬链接才会失效)

    *当前的磁盘空间还剩余500GB,但就是无法往里面写入数据.
    No space left on device 要不是真的没有磁盘空间(),要么就是inode被占满

    5.linux命令执行流程(扩展)

    ⑴ping 探测对端主机是否存活

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

    2) 命令是否存在alias别名

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

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

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

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

    内部命令: shell程序自带的命令。 外部命令: 在系统PATH变量的某个路径下的可执行程序。

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

    cd命令属于shell内部命令

    type -a cd
    cd is a shell builtin
    cd is /usr/bin/cd

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

    type -a ping
    ping is /bin/ping
    ⑷如果是外置命令,Bash可以通过查找PATH变量,获取该命令的绝对路径。

    打印当前环境变量目录:

    [root@beua ~]# echo $PATH
      /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    PS: PATH由多个路径组成,每个路径值之间用冒号间隔,对这些路径的增加和删除操作都将影响到Bash解释器对Linux命令的查找

    ⑸如果是外置命令还会涉及到一个内存缓存,也就是说,当我们出现重复执行相同的命令,会通过缓存调取执行,也就意味着不会搜索PATH路径。
    表缓存命令所在位置
    [root@beuai ~]# hash
    hits command
    1 /usr/bin/tty
    3 /sbin/ifconfig
    已缓存命令,如果移动位置会导致无法找到该命令
    [root@beua ~]# mv /sbin/ifconfig /bin/
    [root@beua ~]# ifconfig
    -bash: /sbin/ifconfig: No such file or directory
    删除缓存过的ifconfig命令, 即可执行
    [root@beua ~]# hash -d ifconfig
    [root@beua ~]# ifconfig
    #当然可以清空缓存表
    [root@beua ~]# hash -r
    #注意: 命令缓存hash需要注意如下情况:

    1.只要执行外部命令1次就会对该命令进行缓存

    2.如果将命令移动了位置,该如何执行

    a.使用绝对路径执行

    b.删除hash表的缓存指令

    总结: 命令执行的流程

    1) 检查执行的命令是否使用的是绝对路径执行的。

    2) 检查ping命令是否存在alias别名

    3) 检查ping命令是内部命令还是外部命令

    4) 如果是内部命令Bash直接执行,如果是外部命令,首先检查Hash缓存,存在则直接调取

    5) 如果该命令不存在Hash缓存,则通过PATH路径进行逐行查找该命令所在的位置

    6) 如果PATH路径没有查找到该命令所在的路径,则返回错误码。command not found

    6.符号: 通配符

    .     #代表当前目录,但文件名以点开头则代表隐藏文件 如果在grep时,使用.代表匹配任意的单个字符 
    ..     #代表上一级目录, 上级目录的inode和..的inode是一致(硬链接) /usr/local cd ..
    ~     #回到当前用户的家目录
    *     #所有
        #转义字符
    #     #命令行是不执行命令,但会保留在history中,文件中有#代表不执行
    $()    #小括号中必须是命令,与其类似的还有 ``
    >     #标准重定向,会覆盖文件的内容
    ^     #在匹配字符的时候,以什么开头
    $     #在匹配字符的时候,以什么结尾
    |      #将左边命令的输出,交给右边命令的输入
    ||     #前者命令执行不成功,后者命令执行
    &&     #前者命令执行成功,后者命令则执行
    !      #调用历史history中的命令 !Number !string
    !!     #调用上一次执行的命令

     

  • 相关阅读:
    Educational Codeforces Round 23 D. Imbalanced Array(单调栈)
    hdu 4355 Party All the Time(三分)
    Educational Codeforces Round 21 F. Card Game(网络流之最大点权独立集)
    qscoj Round 1(div 2)
    玲珑杯 ACM Round #10
    hihoCoder #27
    Codeforces Round #396(div 2)
    高数A(下)第九章
    Mutual Training for Wannafly Union #5
    寒假集训补完
  • 原文地址:https://www.cnblogs.com/longren/p/10735096.html
Copyright © 2011-2022 走看看