• Linux区分文件类型,file指令,目录权限,umask掩码,共享文件,Linux中的一些有趣指令


    file指令,Linux区分文件类型,目录权限,umask掩码,共享文件,Linux中的一些有趣指令

    在这里插入图片描述

    所属专栏:Linux学习❤️
    🚀 >博主首页:初阳785❤️
    🚀 >代码托管:chuyang785❤️
    🚀 >感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️
    🚀 >博主也会更加的努力,创作出更优质的博文!!❤️
    🚀 >关注我,关注我,关注我,重要的事情说三遍!!!!!!!!❤️

    1.Linux中是如何区分文件类型的

    • 我们知道在Windows下我们是通过文件的后缀名来区分文件的类型的。那么在Linux中也是通过后缀名来区分的吗?在Linux中文件时不通过后缀名来区分文件类型,那么我们怎么来区分文件的类型呢?通常通过件属性的第一个字符来区分文件的类型。

    在这里插入图片描述

    文件类型所属意思
    d文件夹
    -普通文件(文本,源代码,图片视频,库,可执行文件等)
    l软链接(类似Windows的快捷方式)
    b块设备文件(例如硬盘、光驱等)
    p管道文件
    c字符设备文件(例如屏幕等串口设备)
    s套接口文件
    1. “-”表示普通文件,例如我们touch出来的一个文件:
      在这里插入图片描述
    2. "d"表示一个普通目录,例如我们用mkdir创建一个目录出来:
      在这里插入图片描述
    3. "b"——block,快设备文件,就有点类似于我们windows下的D盘C盘之类的。
    4. "c"——字符设备文件,就是我们常见的键盘,显示器,这就是为什么我们之前说Linux下一切皆文件。
      而这个以c开头的文件主要是显示的,比如我们再开一个对话窗口。
    • 没添加对话框之前:
      在这里插入图片描述
    • 添加对话框之后:
      在这里插入图片描述
      就会多出一个以c开头的文件。
    1. “l"——链接文件:
      在这里插入图片描述
      链接文件有指向特点。
    • 上面我们说了,LInux中是通过文件后缀来区分文件的,那也就是说,假如我有一个a.out的可执行文件,我们直接 ./a.out执行这个文件,这个文件是可以执行的。那么我们现在把这个文件改成 a.txt再次执行,发现还是可以执行的,所以在LInux中判断一个文件是否可以被执行主要两个方面,1.这个文件可不可以执行,2.这个文件有没有可执行权限。
    • 但是现在我们用gcc ./a.txt执行这个文件,会发现执行不了了,这是因为,虽然Linux系统下是不通过后缀区分文件的,但是Linux下的工具 例如gcc/g++这些工具是会通过后缀区分文件的,所以这个时候如果我们改了可执行文件的后缀之后,gcc就不认识这个文件是可执行文件了,也就编译不了这个文件。

    2. file指令

    功能说明:辨识文件类型。
    语法:file [选项] 文件或目录…
    常用选项:
    -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
    -z 尝试去解读压缩文件的内容

    在这里插入图片描述

    3.目录权限

    之前我们将文件权限的时都只是针对一个普通文件文件而言的,那么如果我如果要进入一个目录的话需要什么文件呢?

    1. 去掉r读权限:
      在这里插入图片描述

    2. 去掉”w"写权限:
      在这里插入图片描述

    3. 去掉“x"执行权限:
      在这里插入图片描述

    从上面的排除法我们可以知道,只有拥有"x”执行权限我们才可以进入目录。
    那么r和w权限有什么用呢?

    • 我们先恢复最初目录的权限,并在目录底下创建几个文件:

    在这里插入图片描述

    • 现在我们去掉目录的r权限:

    在这里插入图片描述
    我们会发现,目录没有了r权限后无法查看目录里面的信息,但是能创建文件。

    • 现在我们去掉文件的 w 写权限:

    在这里插入图片描述
    我们会发现,目录没有了w权限后可以查看目录里面的信息,但是不能创建文件也不能删除文件以及修改文件信息。

    总结:
    1.可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
    2.可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
    3.可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

    4.umask掩码

    • 当我们创建一个文件或者目录的时候,我们每次创建的时候,这个目录/文件的权限都是固定的。
      在这里插入图片描述

    八进制的权限表示封顶是777,那为什么创建一个普通文件时664,而目录时775呢?
    其实我们的目录的起始权限时777,
    普通文件的起始权限时666。
    但是系统当中除了有起始文件,还有一个概念叫umask叫做权限掩码。
    它可以定制一个文件创建时的默认权限。这个默认权限就是最终创建出来的权限。

    在系统当中想看到掩码只需要输入umask就行:
    在这里插入图片描述
    则是一个八进制的2转换成二进制就是:000 000 010而这个就叫做权限掩码。这个掩码的用途是:从起始权限中去掉umask中出现的权限(注意:这里的去掉不是减法,而是去掉对应位置的)。
    比如:我们的目录和文件:
    在这里插入图片描述
    也就是是说:默认权限 = 起始权限 & (~umask)

    • 同样的我们也可以修改umask:umask 起始掩码
      在这里插入图片描述

    5.粘滞位

    • 我们一个系统下可以有多个用户,root是超级用户,不受任何权限控制,可以在普通用户之间随意切换,也可以在普用户里面进行操作,但是对于普通用户来讲,只能在自己的用户底下进行操作。或者得到部分root的权限进行操作。但是我们的root用户只有一个,而普通用户占大多数,有时候我们的普通用户可能需要将各自的文件放到一起,普通用户之间可能需要查看其他用户的文件。而如果每次需要查看其他普通用户的文件时都要登入对方的用户,这样岂不是很麻烦?于是为了解决这个问题,Linux系统提供了一个公共区域文件tmp文件,这个文件任何普通用户都可以进行文件的查看,创建,删除,修改,就很好的解决了这个问题。

    在这里插入图片描述

    • 在这个目录底下,实现了文件共享:

    在这里插入图片描述

    • 我们也可修改qfw用户添加的文件

    在这里插入图片描述

    • 要是qfw用户他想它文件不被任何人操作,也可以修改他的权限
      在这里插入图片描述

    • 细心的伙伴会发现,在tmp这个文件中other权限后面还有一个符号t
      在这里插入图片描述

    • 我们先把这个t删除掉:
      在这里插入图片描述

    • 这个时候chuyang用户就生气了,qfw用户既然你不想让我访问你的文件,那我就删掉这个文件:
      在这里插入图片描述
      此时chuyang老铁就把这个文件给删除了

    • 那么问题来了,如果说因为我不给你权限你就删除了,那这不就是Linux底下的一个bug吗,所以为了这个Linux就又给tmp这个文件加了一个权限t,叫做粘滞位。

    • 当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由一、超级管理员删除二、该目录的所有者删除三、该文件的所有者删除

    6.Linux中的一些有趣指令

    我们在Linux中显示一个会动的小火车:

    yum install -y sl

    输出sl就可以出现一个会动的小火车:
    在这里插入图片描述

  • 相关阅读:
    第2-4-5章 规则引擎Drools高级语法-业务规则管理系统-组件化-中台
    UnityShader_基础理论
    java面试题-jvm基础知识
    如何正确的写出第一个java程序:hello java
    SpringBoot - @Bean注解详解
    数据挖掘实验一
    【CSS】H9_CSS变形transform、过渡transition、CSS3动画 animation
    剑指offer专项突击版第19天
    【JUC系列-10】深入理解ArrayBlockingQueue的底层原理
    Android挖取原图手指触点区域RectF(并框线标记)放大到ImageView宽高与矩阵mapRadius,Kotlin
  • 原文地址:https://blog.csdn.net/qq_74276498/article/details/133999396