【Linux】Shell命令运行原理和权限详解

【Linux】Shell命令运行原理和权限详解

  • 一、剩余指令的补充
    • 1.tar指令
    • 2.bc指令
    • 3.uname
    • 4.热键
  • 二、Shell命令运行原理
    • 1.Shell
    • 2.为什么Linux不让用户直接使用kernel
  • 三、Linux权限概念
  • 四、Linux权限管理
    • 1.文件访问的用户分类
    • 2.文件类型和访问权限
      • (1)文件类型
      • (2)访问权限
    • 3.权限的表示方法
      • (1)字符表示法:
      • (2)八进制表示法:
    • 4.权限的设置
      • (1)chmod修改文件访问权限
      • (2)chown修改文件拥有者
      • (3)chgrp修改文件或者目录的所属组
      • (4)umask查看或者修改文件掩码
      • (5)目录的权限
      • (6)粘滞位

一、剩余指令的补充

1.tar指令

  1. tar指令(重要):打包/解包,不打开它,直接看内容
  2. 语法:tar [-cxtzjvf] 文件与目录 … 参数:
    常用的为:

(1)-c :建立一个压缩文件的参数指令(create 的意思);

(2)-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩

(3)-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数

(4)-v :压缩的过程中显示文件!

(5)-x :解开一个压缩文件的参数指令!

(6)-C : 解压到指定目录

在这里插入图片描述
我们一般用-czf就够了!
-v把打包的过程显示出来:
在这里插入图片描述
3. tar的解压:只需将-czf / -cvzf 中的 c 变成 x 即可!
在这里插入图片描述
总结:
(1)zip和tar都是:打包
(2)unzip和tar都是:压缩

在这里插入图片描述
在这里插入图片描述

2.bc指令

Linux下的计算器:
如果退出要么:Ctrl+C / quit + 回车
在这里插入图片描述
通过重定向(echo)和管道(|)算一串连续的数字:
在这里插入图片描述

3.uname

1.uname:查Linux下的系统架构:
在这里插入图片描述
在这里插入图片描述

4.热键

(1)Ctrl+C :终止命令。
(2)Tab键:具有命令补齐的功能!

在这里插入图片描述
(3)按两次Ctrl+D 就直接退出关闭XShell
(4)Ctrl+R:在历史命令中进行搜索

二、Shell命令运行原理

1.Shell

Linux作为一个操作系统,称为"kernel",一般用户不能直接使用kernel,而通过"kernel"的外壳程序"Shell"和kernel进行沟通。

    所以广义上Linux发行版=Linux内核+外壳程序,狭义上Linux发行版=Linux内核。

Shell作为外壳程序,包裹在Linux内核外层,是一个应用程序,通过一系列的Linux命令对操作系统 发出相关治疗提供人际界面。它连接了用户和Linux内核,让用户更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。bash是Shell的一种。

Shell命令的执行过程:

在这里插入图片描述

Shell有两个作用:

(1)传递请求指令,让操作系统执行命令

(2)保护内核

2.为什么Linux不让用户直接使用kernel

对比windows GUI,用户操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成用户操作(比如进入D盘的操作,用户通常通过双击D盘盘符而进入D盘)。
在这里插入图片描述
shell 对于Linux,有相同的作用,主要是对用户的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

三、Linux权限概念

  1. 权限与人扮演的角色有关,权限也与事物的属性有关权限==人(角色)+ 事物的属性!
  2. 在Linux下有两种用户,一是超级用户(root),二级是普通用户,超级用户与普通用户的命令提示符不一样:超级用户的命令提示符是"#“,普通用户的命令提示符是”$"。
  3. 超级用户:root 可以在Linux下做任何事情不受限制!
  4. 超级用户与普通用户之间可以相互切换(但是如果你普通用户切换到超级用户系统会让你输入一个密码,这个密码是root的密码,但是你root切换到普通用户不需要输入任何密码
    在这里插入图片描述

四、Linux权限管理

1.文件访问的用户分类

  1. 文件访问的用户分类,分为3类:

(1)拥有者:User(u)

(2)所属组:Group(g)

(3)other:Other(o)

2.文件类型和访问权限

(1)文件类型

​​​​​​​在Linux中,不以文件后缀作为区分文件类型的方式,而是以文件详细列表的第一位进行标识区分:
在这里插入图片描述
在Linux中,我们现阶段只学常用的文件类型有:

d:目录文件
-:普通文件(包括文本、各种静态库、可执行程序、源程序)

  1. 众所周知,windows是如何区分文件类型的,就是通过后缀名,但是Linux不通过后缀来区分文件类型,但是Linux并不是说不用后缀。( Linux区分文件类型是根据前面的第一列字符,现在就知道 - (普通文件)和 d (目录文件)就行了
    在这里插入图片描述
    我们对Linux中文件后缀的态度是可以使用,但并不代表Linux系统下的工具不用后缀来做区分,比如说编译器gcc就需要以后缀名来区分文件类型。
    在这里插入图片描述

在这里插入图片描述

(2)访问权限

linux对文件有3种访问权限:

r:read,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

w:write,对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

x:execute,对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

3.权限的表示方法

(1)字符表示法:

在这里插入图片描述
(1)快速掌握修改权限的做法:

在这里插入图片描述
(2)一次性加减多名角色的权限:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)权限的访问对用户身份只识别一次,如果匹配成功,那么就结束识别!
按 拥有者->所属组->other的顺序进行匹配!
在这里插入图片描述
(1)如何证明Linux对用户身份只识别一次?

在这里插入图片描述
对用户身份只识别一次:如果匹配成功就按成功的来,如果对拥有者匹配不成功就自动匹配所属组,如果两个都不成功,那就说明是other。
注意:“识别”和“匹配”不一样!!!(匹配成功那才叫识别了一次!)

(2)八进制表示法:

在这里插入图片描述

4.权限的设置

(1)chmod修改文件访问权限

只有文件的拥有者和root可以设置文件的访问权限:

chmod 【参数】 权限 文件名

①用户符号+/-/=权限字符:

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

(2)chown修改文件拥有者

修改文件拥有者:

chown 【参数】 用户名 文件名

在这里插入图片描述

(3)chgrp修改文件或者目录的所属组

chgrp 【参数】 用户组名 文件名

在这里插入图片描述

chmod chown chgrp 的语法总结:
在这里插入图片描述

(4)umask查看或者修改文件掩码

新创建一个文件,访问权限按理来说,应该是777,但是却发现新创建的目录的权限是755:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
umask:是Linux中的默认权限掩码
在这里插入图片描述
在这里插入图片描述

(5)目录的权限

①可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
②可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
③可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
在这里插入图片描述

(6)粘滞位

在root的根目录下,有一个tmp文件夹,这个文件夹下存放的是临时文件,用户在保存文件之前,文件都存放在tmp文件夹中,这个文件夹下存放用户的临时文件,可以看到它的权限有个t:
在这里插入图片描述
这个文件夹对拥有者和所属组的权限都是rwx,对other的权限是rwt。这个t是什么属性?和r、w、x有什么区别?

先来看下面的例子,root用户在根目录下创建了一个文件夹test,并在这个文件夹中创建了2个文件test1和test2,然后又root用户切换为yjl用户,此时发现yjl竟然可以删掉test中的文件:

在这里插入图片描述
这怎么能忍,我创建的文件,怎么能够被别人随随便便的删除掉了?test的目录对other有w和x的权限,一旦有w的权限,那么也就是说other可以对他进行创建文件和删除文件的操作,但是不希望一个用户创建的文件被别的用户删除删除掉,我们该怎么办呢?在这种场景下我们就需要粘滞位。

当一个目录被设置了粘滞位以后,即使用户对该目录有写的权限,但是也不能删除该目录中其他用户的文件。只有文件的拥有者和root用户才可以删除。这就达到了各个用户可以在目录中读,写,修改,删除文件,但是不能随意的删除其他用户的文件的目的。
在这里插入图片描述
但是最后发现他报错了,你没有访问权限。

因此,当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由
(1)超级管理员删除
(2)该目录的所有者删除
(3)该文件的所有者删除


好了,今天的分享就到这里了
如果对你有帮助,记得点赞👍+关注哦!
我的主页还有其他文章,欢迎学习指点。关注我,让我们一起学习,一起成长吧!
在这里插入图片描述

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

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

相关文章

GitHub登不上:修改hosts文件来解决(GitHub520,window)

参考链接:GitHub520: 本项目无需安装任何程序,通过修改本地 hosts 文件,试图解决: GitHub 访问速度慢的问题 GitHub 项目中的图片显示不出的问题 花 5 分钟时间,让你"爱"上 GitHub。 (gitee.com) GitHub网站…

Prometheus结合Grafana监控MySQL,这篇不可不读!

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

IOS 发布遇到“Unable to authenticate with App Store Connect”错误咋解决?

问题: 在开发ios app后,先发布adhoc版本,测试通过后,再发布testflight版本测试,但是可能会遇到一下问题。 解决办法: 在Signing &Capabilities中,在ios下边要指定有发布权限的Team账号&a…

数据库之间数据迁移工具datax

简介 DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databe…

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说,企业的客户端上都只能配置一个运营商的DNS服务器地址,DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址,这将导致内网用户的上网流量都集中在一个ISP的链路上转发,最终可能会造成链路拥塞&…

常用的Linux命令;Linux常用命令用法及实现方式

1.系统工作命令 (1)echo命令:echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为“echo [字符串] [$变量]”。 (2)date命令:date命令用于显示或设置系统的时间与日期,语法格式为“date [指定的格式]”。 (3)timedate…

VS2019 - error C2653: 不是类或命名空间名称

文章目录 VS2019 - error C2653: 不是类或命名空间名称概述笔记类的头文件类的实现文件备注END VS2019 - error C2653: 不是类或命名空间名称 概述 工程开了预编译头包含. 编码中, 随手写一个类, 将功能函数加入, 还没开始用这个类, 先习惯性的编译一下. 编译报错如下: St…

常用的17个运维监控系统(必备知识)

1. Zabbix Zabbix 作为企业级的网络监控工具,通过从服务器,虚拟机和网络设备收集的数据提供实时监控,自动发现,映射和可扩展等功能。 Zabbix的企业级监控软件为用户提供内置的Java应用服务器监控,硬件监控&#xff0c…

QT----写完的程序打包为APK在自己的手机上运行

目录 1、qt安装android组件2、打开qt配置Android 环境3、手机打开开发者模式,打开usb调试,连接电脑4、运行代码 1、qt安装android组件 qtcreater–工具-QTMaintenaceTool-startMaintenaceTool—登陆—添加或修改组件—找到android,安装 若是…

【脑切片图像分割】MATLAB 图像处理 源码

1. 简单图像处理 加载图像 Brain.jpg,使用直方图和颜色分割成区域这些区域有不同的颜色。 这是一个更高级的问题,有多个解决它的方法。 例如,您可以计算具有特定数字的图像的直方图(例如 16 - 32),找到直方…

回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测

回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测 目录 回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BiTCN基于双向时间卷积网络的数据回归预测(完整源码和数据&a…

Vue 3的Composition API和vue2的不同之处

Vue 3的Composition API是Vue.js框架的一个重要更新,它提供了一种新的组件逻辑组织和复用方式。在Vue 2中,我们通常使用Options API(data、methods、computed等)来组织组件的逻辑,但这种组织方式在处理复杂组件时可能会…

Czkawka 一款开源、免费的多功能重复文件清理工具,支持多平台

Czkawka (波兰语为 "打嗝")是一款简单、快速、免费的多功能重复文件清理工具,支持空文件、相似图像/视频/音频、损坏/无效文件的查找。 它扫描速度极快,并且适配 Linux、Windows、macOS、FreeBSD 等多个平台、支持中文。 &#x1…

bert 相似度任务训练简单版本,faiss 寻找相似 topk

目录 任务 代码 train.py predit.py faiss 最相似的 topk 数 任务 使用 bert-base-chinese 训练相似度任务,参考:微调BERT模型实现相似性判断 - 知乎 参考他上面代码,他使用的是 BertForNextSentencePrediction 模型,Bert…

紫光展锐T618_4G安卓核心板方案定制

紫光展锐T618核心板是一款采用纯国产化方案的高性能产品,搭载了开放的智能Android操作系统,并集成了4G网络,支持2.5G5G双频WIFI、蓝牙近距离无线传输技术以及GNSS无线定位技术。 展锐T618核心板应用旗舰级 DynamlQ架构 12nm 制程工艺&#x…

掌握PDF全面指南:Python开发者的高效编程技巧

掌握PDF全面指南:Python开发者的高效编程技巧 简介PDF基础知识PDF的结构常见用途PDF在开发中的挑战 PDF处理库介绍PyPDF2ReportLabPDFMiner辅助库 读取和分析PDF文件使用PyPDF2读取PDF文件提取PDF中的文本和元数据分析PDF结构和内容 编辑和修改PDF文件合并多个PDF文…

OSPF故障排查,这10大技巧是个网工都在用!

中午好,我的网工朋友。 OSPF这个名词网工们都不陌生吧。 OSPF,即开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议。 它属于链路状态路由协议,具有路由变化收敛速度快、…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(二)-向量元素到向量寄存器状态的映射

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

Python爬取网站视频资源

思路: 在界面找到视频对应的html元素位置,观察发现视频的url为https://www.pearvideo.com/video_视频的id,而这个id在html中的href中,所以第一步需要通过xpath捕获到所需要的id 在https://www.pearvideo.com/video_id的页面&…

LabVIEW非接触式电阻抗层析成像系统

LabVIEW非接触式电阻抗层析成像系统 非接触式电阻抗层析成像(NEIT)技术以其无辐射、非接触、响应速度快的特点,为实时监测提供了新的解决方案。基于LabVIEW的电阻抗层析成像系统,实现了数据的在线采集及实时成像,提高…