Linux复习 / 命令与权限部分QA梳理

news/2024/5/3 17:15:42/文章来源:https://blog.csdn.net/weixin_61432764/article/details/129930665

文章目录

    • 前言
    • Q&A
      • shell
        • Q:什么是shell?
        • Q:shell的作用?
        • Q:为什么要有shell?
        • Q:shell的生命周期多长?
        • Q:shell的原理/实现是怎样的?
        • Q:为什么会有内建命令?
      • 权限
        • Q:何为权限(*解释一下权限*)?
        • Q:如何修改文件的权限?
        • Q:如何修改文件的拥有者/所属组/其他用户?
        • Q:最终权限与起始权限相同吗?
        • Q:什么是粘滞位?如何设置与查看粘滞位?
        • Q:可以解释一下目录的三种权限吗?
      • other
        • Q:什么是管道?

前言

博主最近在复习Linux,针对自己画的思维导图梳理出了命令与权限部分的一些重要问题,若读者也在复习或者在学习这块知识,可以对我梳理出的问题进行思考,以检测自己对知识的掌握程度。

Q&A


shell

Q:什么是shell?

A:shell的本质是一个随着系统启动而启动的程序并且使用C语言编写),该程序负责解析用户输入的命令,所以它也叫做命令解析器。

Q:shell的作用?

A:shell通过解析用户的命令,实现对进程的启动、终止、暂停等操作,还可以用来控制计算机。

Q:为什么要有shell?

A:shell连接了用户和Linux内核,用户通过shell可以高效、安全、低成本地使用Linux内核,这也是shell的本质。有了shell,我们可以更方便快捷地使用Linux内核进行开发。

Q:shell的生命周期多长?

A:shell没有固定的生命周期,一般情况下,只有系统在运行,shell就会运行,可以说shell的生命周期和系统的生命周期相同。

Q:shell的原理/实现是怎样的?

A:shell获取标准输入流(键盘)输入的流式信息,将其解析并执行。

  • 解析主要是将命令与其携带的参数选项分离,单独判断数据的合法性。若数据合法,shell将执行该命令。其中命令可以分为内建命令与普通命令
    • 对于普通命令,shell创建子进程执行,这个过程可以理解为fork+exec。普通命令的本质是存储在某个文件夹下的可执行文件。
    • 对于内建命令,shell自己执行,不创建子进程。内建命令由shell自身提供,是shell的一部分。

Q:为什么会有内建命令?

A:由于进程的独立性、环境变量的全局性等原因,有些命令只能由shell执行,如export、cd、set、umask、fg。这些命令如果由shell的子进程执行,结果往往是无效的。可以使用type判断一个命令是否为内建命令。


权限

Q:何为权限(解释一下权限)?

A:权限指的是同一文件对不同人具有的不同属性,它是用来约束人的。但首先它得有一个前提:必须存在相应属性,比如源文件生成的可执行文件才具有可执行属性,此时权限才能约束人。操作文件时,文件根据操作者判断操作是否合法。所以操作文件只有两种结果:失败和成功,这就是权限对人的约束。

Q:如何修改文件的权限?

A:

  1. chmod u/g/o +/- r/w/x filename。连续修改多个角色的权限用‘,’隔开。
  2. chmod xxx filename(八进制数修改)。

Q:如何修改文件的拥有者/所属组/其他用户?

A:

  1. chown ownername:groupname filename。chown可以修改文件拥有者与所属组。如果只要修改拥有者,格式为:chown ownername filename。
  2. chgrp groupname filename。chgrp只能修改文件所属组。
  3. 没有指令设置文件的其他用户,也没有必要。

Q:最终权限与起始权限相同吗?

A:由于权限掩码的存在,最终权限 = 起始权限 & (~权限掩码)。修改权限掩码时(umask [权限掩码]),注意八进制的表示。

Q:什么是粘滞位?如何设置与查看粘滞位?

A:设置了粘滞位后,只有目录文件的所有者、文件所有者以及root用户可以删除或移动文件(注意:粘滞位的设置是针对目录文件的)。设置粘滞位主要是为了防止普通用户删除或移动文件。使用chmod +/-t dirname就可以为一个目录文件添加/删除粘滞位。使用ls -l查看是否添加了粘滞位,具体见下图,其中的T就是粘滞位的意思。
image.png

Q:可以解释一下目录的三种权限吗?

A:

  • r:可以查看在目录下的所有文件的文件属性(注意:没有文件内容
  • w:可以在当前目录下创建文件
  • x:目录可进入
    至于说为什么目录文件和普通文件的三种权限不同,这就涉及到了Linux的文件管理了。

other

Q:什么是管道?

A:shell命令行中,管道是一种将一个命令的输出作为另一个命令的输入的机制。管道可以级联多条命令,使它们协同工作以完成过滤、排序等稍复杂操作。

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

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

相关文章

Scrum Master 应该采取哪些措施来提高团队效率?

项目经理应该从这5方面提高团队的开发效率 1、目标明确有时间节点 提高团队开发效率,最重要的是明确目标与期限。制定SMART目标,明确告知成员要实现什么,输出什么,标准以及时限等,需要考虑目标的可达成性和目标与项目的…

【牛客刷题专栏】0x17:JZ17打印从1到最大的n位数(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

Java初阶(异常)

文章目录一、异常的结构体系二、异常的处理2.1 防御式编程2.2 异常的抛出2.4 异常的捕获(异常的具体处理方式)(1)异常声明 throws(2) 捕获处理 try-catch2.4 异常的处理流程三、自定义异常类一、异常的结构…

go学习线路图

1. go学习线路图 1.1.2. 资源 先决条件 GoSQL 通用开发技能 学习 GIT,在 GitHub 上建立一些仓库,与其它人分享你的代码了解 HTTP(S) 协议,request 方法(GET, POST, PUT, PATCH, DELETE, OPTIONS)不要害怕使用 Google&a…

和数软件荣获上海市“专精特新”企业荣誉认定

近日,上海市经济和信息化委员会公示了2022年上海市“专精特新”企业名单。根据《关于组织开展2022年创新型中小企业评价、专精特新中小企业认定和复核工作的通知》(沪经信企〔2022〕776号),经专家评审和综合评估,上海和…

学会吊打面试官之map

小白:大牛,我最近学习了一些C的STL容器,但是我还是有一些疑惑,特别是对于map,我不太理解它的底层实现和具体用法。能否跟我讲一下? 大牛:当然可以啊,map是一种非常常用的关联式容器…

小企业选择什么样的CRM系统比较合适,有什么特点?

CRM客户管理系统已经成为各种规模的企业,特别是小型企业的重要工具。CRM系统帮助小型企业更有效地管理客户数据和互动,简化销售流程,并提高客户满意度。市场上有如此多的选择,小企业该如何选择合适的CRM系统? 什么是C…

深圳CPDA|如何着手商业数据分析?

商业数据分析是一项非常重要的工作,可以帮助企业做出更明智的决策。 下面是一些着手商业数据分析的步骤: 1.确定你的问题 首先需要明确你想要解决什么问题。 这通常需要与业务团队沟通,以便了解他们正在寻找哪些信息。 2.收集数据 收集数…

linux语言学习记录

文章目录前言一、linux文件结构二、指令三、Gvim编辑器1、命令模式2、底行命令四、正则表达式1、表达式匹配举例2、对文件里面内容进行操作3、使用 \( 和 )\ 符号括起正规表达式,即可在后面使用\1和\2等变量来访问和中的内容前言 记录自己学习linux的笔记&#xff…

IFPUG功能点度量5:计算功能规模

功能点计数类型:开发项目、升级项目、应用 一、 三种功能能规模计算: 1、开发项目计算 DFP(开发项目功能规模)ADD(交付用户的功能规模)CFP(转换功能的功能规模) 2、升级项目计算 …

【代码笔记】Pytorch学习 DataLoader模块详解

Pytorch DataLoader模块详解dataloader整体结构DataLoaderinit 初始化参数解释代码解析IterableDataset 判断构建Sampler,单样本构建BatchSampler,组建batch构建collate_fn 对获取的batch进行处理其他的一些逻辑判断_get_iterator代码解析multiprocessin…

【Python】轻松掌握基础语法(一)

文章目录常量和表达式变量和类型变量的定义变量的使用变量的类型intfloatstrbool动态类型注释输入和输出输出输入运算符算数运算符关系运算符逻辑运算符赋值运算符其他常量和表达式 print(1 2 * 3)print是Python内置的一个函数,作用为输入打印到控制台形如1 2 * …

人工智能前沿——「全域全知全能」人类新宇宙ChatGPT

🚀🚀🚀OpenAI聊天机器人ChatGPT——「全域全知全能」人类全宇宙大爆炸!!🔥🔥🔥 一、什么是ChatGPT?🍀🍀 ChatGPT是生成型预训练变换模型(Chat G…

1.半导体基础知识

1.半导体基础知识本征半导体什么是半导体?什么是本征半导体?本征半导体的结构本征半导体中的两种载流子为什么将自然界导电性能中等的半导体材料制成本征半导体杂质半导体N型半导体P型半导体PN结PN结中的扩散运动漂移运动和PN结的形成PN结的单向导电性PN…

uniapp开发小程序-swiper点击预览大图(商品详情页轮播图)

1.实现效果&#xff1a; 2.具体代码&#xff1a; <view class"swiper_box"><!--轮播图--><swiper class"ms_swiper" :autoplay"true" circular"true" change"swiperChange"><swiper-item v-for"…

【动态规划模板】神似的01和完全背包、多重背包和分组背包问题

神似的01背包与完全背包&#x1f349; 【经典题目】01背包采药 题目描述 &#x1f388; 辰辰是个天资聪颖的孩子&#xff0c;他的梦想是成为世界上最伟大的医师。为此&#xff0c;他想拜附近最有威望的医师为师。医师为了判断他的资质&#xff0c;给他出了一个难题。医师把他…

【Redis学习】SpringBoot集成Redis

总体概述 jedis-lettuce-RedisTemplate三者的联系 本地Java连接Redis常见问题 bind配置请注释掉 保护模式设置为no Linux系统的防火墙设置 redis服务器的IP地址和密码是否正确 忘记写访问redis的服务端口号和auth密码 集成jedis 简介 Jedis Client是Redis官网推荐的一个面…

【c语言】文件的读写

文件读写使用二进制读写比较方便&#xff0c;分别使用fread和fwrite函数进行。 一、函数定义 以二进制形式读取文件&#xff0c;从stream流中读取内容&#xff0c;读到ptr指向的空间中&#xff0c;读取size大小的count个内存单元。 返回值为读取到的字符个数。 以二进制形式读…

解决Abp设置DefaultLanguage默认语言不生效的问题

文章目录现象原因分析解决问题现象 默认地&#xff0c;Abp的语言提供程序将返回的CultureInfo为En&#xff0c;在一些默认实现的接口&#xff08;比如/api/TokenAuth/Authenticate&#xff09;返回的错误信息是英文 目标是改成简体中文显示&#xff0c;但是即便我们在AbpSett…

android framework-zygote进程

Zygote进程&#xff1a;可以看到zygote的父进程是init进程 一、Zygote整体时序图 涉及源码路径 android-10.0.0_r41\frameworks\base\cmds\app_process\Android.mk android-10.0.0_r41\frameworks\base\cmds\app_process\app_main.cpp android-10.0.0_r41\frameworks\base\core…