shell命令以及运行原理

目录

一、命令解释器

1、什么是命令行解释器

shell和bash联系

2、为什么用命令行解释器

作用

存在意义

二、Linux权限

1、用户分类

2、Linux权限管理 

1)权限身份

 2)文件类型和访问权限

3)文件访问权限的相关设置方法

a. chmod

格式一:用户表示符 +/-/= 权限字符

格式二:三位8进制数字

b. chown

c. chgrp 

 d. umask(权限掩码)

3、共享目录

1)问题引入

2) 粘滞位

3)tmp文件

一、命令解释器

1、什么是命令行解释器

[xiaoming@moonshot ~]$ xxx
——————————————————————|vbash命令行
  • xiaoming:用户名
  • moonshot:主机名
  • ~:当前目录
  • $:命令行提示符
  • xxx:输入指令过程(本质输入字符串)

指令的本质就是编译好的程序和脚本,存放在系统特定路径下(Linux中存放在/usr/bin/下) 

所有的指令最终都要在OS内部运行,但OS使用难度比较高,因此用户不能直接和OS打交道,故用户命令行解释器。

命令行解释器:1)在Windows中称为GUI 2)在Linux中称命令行,bash/sh,shell

shell和bash联系

shell是命令行解释器的总称,bash,sh是不同种类的解释器,上边bash命令行即为bash的样子。

2、为什么用命令行解释器

作用

对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

存在意义

  1. 进行命令行解析
  2. 保护OS,对于用户非法请求直接拦截

二、Linux权限

1、用户分类

超级用户:可以再linux系统下做任何事情,不受权限限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是"$"

命令:su [用户名]

功能:切换用户

su/su -:将普通用户变为root,使用Ctrl+D返回普通用户

暂时对一条指令提权:sudo command
注:只有将普通用户添加到系统的信任白名单(/etc/sudoers)中后才可以使用sudo

2、Linux权限管理 

1)权限身份

  1. 文件和文件目录的拥有者:u---User
  2. 文件和文件目录的所有者所在的组的用户:g---Group
  3. 其它用户:o---0thers

 2)文件类型和访问权限

使用ll指令可查看

 a. 文件类型(Linux中文件名后缀没有直接的意义,系统是通过第一位进行文件区分)

  • d:文件夹
  • -:普通文件(文本,可执行程序,库 基本都属于普通文件)
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

b. 基本权限

  1. 读(r / 4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w / 2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x / 1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. “—” :表示不具有该项权限

rwx相对位置固定,每个位置只有是或否含义(可用八进制方案表示)

判断当前登录用户属于哪一组:将登陆用户与文件属性信息中显示的拥有者和所属组比较,只要配对成功,就结束,均不等时为Other

3)文件访问权限的相关设置方法

a. chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

参数常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限 

权限值的格式:

格式一:用户表示符 +/-/= 权限字符
  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户表示符:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户
格式二:三位8进制数字

 chmod 664 /home/abc.txt

b. chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名 

常用选项:-R 递归修改文件或目录的所属组

chown -R user1 filegroup1 

c. chgrp 

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

 d. umask(权限掩码)

凡是在umask中出现的权限,不会在最终的文件权限中出现

格式:1)修改:umask 权限值   2)查看:umask

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

新建目录默认权限是0777,新建文件默认权限是0666,但普通用户创建新文件时权限是0664,创建新目录时是0775,原因在于:

新建文件:110 110 110

umask:   000 000 010

操作后文件:110 110 100 (664)
故文件显示出的权限为:文件权限 & ~mask 

3、共享目录

1)问题引入

a. 普通用户的家目录权限是700,故在家目录下创建的文件和目录别人都看不到,但有时多个用户想进入文件进行数据共享,因此共享文件不能放在任何一个人的家目录中,故用root在根目录下创建一个shared目录(目录的u和g均为root)-------> 任何人只要在根目录进入共享目录就可以文件操作

b. 一个用户无法访问和修改某个文件,但其可以删除该文件,因为一个文件能否被删除不是由该文件权限决定,而是由该文件所处目录决定,如果去掉共享目录的Others w权限,每一名用户都无法在创建删除目录中的文件 -----> 无法实现共享

2) 粘滞位

给目录设置权限,一般是共享目录,大家可在目录中进行各自文件的增删改查,但只允许文件拥有者或root能删除该文件,其他人一概不允许。

chmod o+t shared

t是一种特殊的x权限

3)tmp文件

在根目录下已存在一个共享目录

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

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

相关文章

精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目

精准检测花生豆:基于EfficientNet的深度学习分类项目 在现代农业生产中,作物的质量检测和分类是确保产品质量的重要环节。针对花生豆的检测与分类需求,我们开发了一套基于深度学习的解决方案,利用EfficientNetB0模型实现高效、准…

CSS利用浮动实现文字环绕右下角,展开/收起效果

期望实现 文字最多展示 N 行,超出部分截断,并在右下角显示 “…” “更多”; 点击更多,文字展开全部内容,右下角显示“收起”。效果如下: 思路 尽量使用CSS控制样式,减少JS代码复杂度。 利…

FOC控制原理-HALL传感器测量电角度

0、相关文章 【电机控制算法】基于霍尔位置传感器(HALL)估算连续电角度(基于STM32F407CubeMXHAL)_峰岹hall-CSDN博客 电机控制【FOC】_SimpleFOC_通过 Hall 计算电机角度和速度原理 - 大大通(简体站) (wpgdadatong.com.cn) STM32 FOC SDK2.0中使用hall传…

手机实时提取SIM卡打电话的信令声音-智能拨号器的SIP线路-双卡双待单通方案

手机实时提取SIM卡打电话的信令声音 --智能拨号器的SIP线路-双卡双待单通方案 一、前言 蓝牙电话的技术方案最初是从蓝牙耳机和车机蓝牙的使用领域延伸出来的技术方式。通过蓝牙的HFP协议,把手机通话的声音和通话事件状态提取出来进行复用和处理。但中国大陆现行…

C++--类与对象

1.封装 封装是c面向对象的三大特性之一 将属性和行为作为一个整体 将属性和行为加以权限控制 语法: class 类名{ 访问权限: 属性/行为 }; 访问权限 public 公共权限 类内类外均可以访问 protected 保护权限 类内可以访问,类外不可以访问 pr…

遗传算法与深度学习实战(29)——编码卷积自编码器架构

遗传算法与深度学习实战(29)——编码卷积自编码器架构 0. 前言1. 构建卷积自编码器2. 构建卷积自编码器基因序列3. 解析基因序列构建模型小结系列链接 0. 前言 使用遗传算法 (Genetic Algorithm, GA) 构建自编码器 (AutoEncoder, AE) 优化器时&#xff…

蓝桥杯(Java)(ing)

Java前置知识 输入流: (在Java面向对象编程里面有提过相关知识) // 快读快写 static BufferedReader in new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter out new BufferedWriter(new OutputStreamWriter…

Ajax数据爬取

有时我们用requests 抓取页面得到的结果,可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,而使用requests 得到的结果中并没有这些数据。这是因为 requests 获取的都是原始 HTML 文档,而浏览器中的页面是JavaScript 处理…

tcpdump 网络数据包分析工具

简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的…

手机发烫怎么解决?

在当今这个智能手机不离手的时代,手机发烫成了不少人头疼的问题。手机发烫不仅影响使用手感,长期过热还可能损害手机硬件、缩短电池寿命,甚至引发安全隐患。不过别担心,下面这些方法能帮你有效给手机 “降温”。 一、使用习惯方面…

BUUCTF Pwn ciscn_2019_es_2 WP

1.下载 checksec 用IDA32打开 定位main函数 发现了个假的后门函数: 看看vul函数: 使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造 所以使用栈迁移: 栈迁移需要用到leave ret 使用ROPgadget找地址: …

IEDA 使用auto Dev编码助手配置Deep Seek V3

文章目录 API Key的申请和创建auto Dev的下载auto Dev的安装Deep seek V3的连接配置和注意事项错误解决:You LLM server Key is empty API Key的申请和创建 登陆Deep Seek开放平台,创建API Key 并复制 auto Dev的下载 auto Dev项目地址,发…

vue3学习笔记(6)-生命周期、hooks

1.生命周期 <template><div><div>{{ a }}</div><div click"test"></div></div> </template> <script setup lang"ts" name"hi"> import { ref, onBeforeMount, onMounted, onBeforeUpdat…

#端云一体化开发# #HarmonyOS Next#《说书人》鸿蒙原生基于角色的对话式文本编辑开发方案

1、写在前面 过去的一百年里&#xff0c;在“编程”的这个行业诞生之初&#xff0c;人们采用面向过程的方式进行开发&#xff0c;但是&#xff0c;伴随着程序规模的日益增大&#xff0c;程序的复杂度也随之增加&#xff0c;使用结构化编程方法来管理复杂的程序逻辑变得越来越困…

【ELK】ES单节点升级为集群模式--太细了!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言准备工作1. 查看现状【单节点】2. 原节点改集群模式3. 改es配置文件&#xff0c;增加集群相关配置项4. *改docker映射的端口* 启动新节点5. docker-compose起一…

Python跨年烟花

目录 系列文章 写在前面 技术需求 完整代码 下载代码 代码分析 1. 程序初始化与显示设置 2. 烟花类 (Firework) 3. 粒子类 (Particle) 4. 痕迹类 (Trail) 5. 烟花更新与显示 6. 主函数 (fire) 7. 游戏循环 8. 总结 注意事项 写在后面 系列文章 序号直达链接爱…

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络&#xff1a;引领未来通信新潮流 &#xff08;一&#xff09;5G 网络的特点 高速率&#xff1a;5G 依托良好技术架构&#xff0c;提供更高的网络速度&#xff0c;峰值要求不低于 20Gb/s&#xff0c;下载速度最高达 10Gbps。相比 4G 网络&#xff0c;5G 的基站速度…

艾体宝方案丨全面提升API安全:AccuKnox 接口漏洞预防与修复

一、API 安全&#xff1a;现代企业的必修课 在现代技术生态中&#xff0c;应用程序编程接口&#xff08;API&#xff09;扮演着不可或缺的角色。从数据共享到跨平台集成&#xff0c;API 成为连接企业系统与外部服务的桥梁。然而&#xff0c;伴随云计算的普及与微服务架构的流行…

# 【鸿蒙开发】多线程之Worker的使用

【鸿蒙开发】多线程之Worker的使用 文章目录 【鸿蒙开发】多线程之Worker的使用前言一、Worker的介绍二、注意事项三、Worker使用示例1.新建一个Worker2.主线程使用Worker3.子线程Worker的使用 四、效果展示 前言 本文主要介绍了多线程的方法之一&#xff0c;使用Worker开启多…

leetcode 面试经典 150 题:矩阵置零

链接矩阵置零题序号73题型二维数组解题方法标记数组法难度中等熟练度✅✅✅✅ 题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1]…