Linux复习 / 命令与权限部分Q&A梳理

前言

博主最近在复习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命令行中,管道是一种将一个命令的输出作为另一个命令的输入的机制。管道可以级联多条命令,使它们协同工作以完成过滤、排序等稍复杂操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值