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

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

  • 1.Linux中是如何区分文件类型的
  • 2. file指令
  • 3.目录权限
  • 4.umask掩码
  • 5.粘滞位
  • 6.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就可以出现一个会动的小火车:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/171823.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu执行普通用户或root用户执行apt-get update时报错Couldn‘t create temporary file /tmp/...

apt-get update无法更新,报错: Couldnt create temporary file /tmp/apt.conf.GSzv74 for passing config to,,, 这是由于/tmp目录没有权限导致的,解决办法: chmod 777 /tmp

Python 算法高级篇:桶排序与基数排序

Python 算法高级篇:桶排序与基数排序 引言什么是桶排序?桶排序的基本步骤桶排序的示例 什么是基数排序?基数排序的基本步骤基数排序的示例 桶排序与基数排序的应用桶排序的应用基数排序的应用 Python 示例代码总结 引言 在算法高级篇的课程中…

缓解光纤激光切割机老化之如何保养光纤激光切割机的光学镜片

激光切割头具备极高的精密度和昂贵的价格,是光纤激光切割机最关键的运行部分之一。在日常的光纤激光切割机维修过程中频繁出现的关于切割头使用寿命的问题就是内部光学镜片的污染及损坏。 部分导致光纤激光切割机激光切割头光学镜片污染的原因主要包括:对…

ant design vue 的getPopupContainer

在 ant design vue 中,有几个组件是有 getPopupContainer 属性的,比如:下拉菜单 默认是渲染到body 上的,所以如果你想要对 下拉选择组件 的样式,做修改,如果 style 标签上开启了 scoped,肯定不会…

redis6.0源码分析:字典扩容与渐进式rehash

文章目录 字典数据结构结构设计dictType字典类型为什么字典有两个哈希表?哈希算法 扩容机制扩容前置知识字典存在几种状态?容量相关的关键字段定义字典的容量都是2的幂次方 扩容机制字典什么时候会扩容?扩容的阈值 & 扩容的倍数哪些方法会…

STM32 ADC数模转换器

STM32 ADC数模转换器 ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 STM32主要是数字电路,数字电路只有高低电平&#xf…

Node.js 的适用场景

目录 ​编辑 前言 适用场景 1. 实时应用 用法 代码 理解 2. API 服务器 用法 代码示例 理解 3. 微服务架构 用法 代码示例 理解 总结 前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得 JavaScript 可以脱离浏览器运行在服务器…

2023 MathorCup(妈妈杯) 数学建模挑战赛B题完整解题思路+模型+代码

2023妈妈杯数学建模B题完整版思路、模型代码已出!!! 云顶数模最新完整版解题思路、模型代码,供大家参考~~ B题目 解题思路 详细模型解析:

从零开始的LINUX(三)

bc:进行浮点数运算 uname:查看当前的操作系统 ctrlc:中止当前正在执行的程序 ctrld:退出xshell shutdown:关机 reboot:重启 shell外壳: 作用:1、命令解释(将输入的程序…

高速下载b站视频的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

linux--

一、crond 任务调度 1、原理示意图 2、crontab 进行定时任务的设置 2.1. 概述 任务调度,是指系统在某个时间执行的特定的命令或程序。任务调度分类: 系统工作: 有些重要的工作必须周而复始地执行。如病毒扫描等 个别用户工作:个别用户可能希望执行某些…

WWW::Mechanize库使用HTTP如何做爬虫?

在使用Perl的WWW::Mechanize库进行爬虫时,需要注意以下几点: 1、设置User-Agent:有些网站会根据User-Agent来判断请求是否来自爬虫,因此在使用WWW::Mechanize之前,最好设置一个合适的User-Agent,以模拟真实…

【java】建筑施工一体化智慧工地信息管理系统源码

智慧工地系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段,实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 一、智慧工地让工程施工智能化 1、内容全面,多维度数…

Python算法练习 10.28

leetcode 700 二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 示例 1: 输入:root [4,2,7,1,…

macOS鼠标管理操作增强BetterMouse简体中文

BetterMouse是一款专为Mac用户设计的鼠标增强工具,旨在帮助用户更好地掌握和管理鼠标操作。它提供了全局鼠标手势、高度可定制的鼠标设置选项以及一些有用的鼠标增强功能,如鼠标放大镜、鼠标轨迹和应用程序切换功能。这些功能可以大大提高用户的工作效率…

MyBaties存储和查询json格式的数据(实体存储查询版本)

最近在做的功能,由于别的数据库有值,需要这边的不同入口的进来查询,所以需要同步过来,如果再继续一个一个生成列对应处理感觉不方便,如果没有别的操作,只是存储和查询,那就可以用MySql支持的jso…

【linux】麒麟v10安装Redis哨兵集群(ARM架构)

安装redis单示例的请看:麒麟v10安装Redis(ARM架构) 安装服务器 ​Hostname​IP addressmaster,sentinel192.168.0.1slave1,sentinel192.168.0.2slave2,sentinel192.168.0.3 下载安装包 (三台都操作) wget https://re…

[17]JAVAEE-HTTP协议

目录 一、什么是HTTP协议 什么时候会用到HTTP协议? HTTP协议的工作流程 二、HTTP的报文格式 抓包 HTTP请求报文格式 1.首行 2.header 常见键值对: 3.空行 4.正文(body)(有的时候可以没有) HTTP…

Unity的碰撞检测(四)

温馨提示:本文基于前一篇“Unity的碰撞检测(三)”继续探讨两个游戏对象具备刚体的触发检测,阅读本文则默认已阅读前文。 (一)测试说明 在基于两个游戏对象都具备触发器和刚体且属性一致的条件下,若二者刚体的BodyType…

开始学习Go编程

探索Go编程中的语法、数据类型和控制流 Go,又称为Golang,因其简单性、性能和效率而广受欢迎。在本文中,我们将深入研究构成Go编程语言基础的基本概念。从理解其语法和数据类型到掌握控制流和函数,我们将为您提供启动Go编程之旅所…