【Linux基础】指令、shell原理与权限管理详解

🎬 博主名称键盘敲碎了雾霭
🔥 个人专栏 : 《C语言》《数据结构》 《C++》 《Matlab》 《Python》 《Linux》

⛺️指尖敲代码,雾霭皆可破


文章目录

  • 一、指令
    • [1.1 打包和压缩](#1.1 打包和压缩)
    • [1.2 bc](#1.2 bc)
    • [1.3 uname](#1.3 uname)
    • [1.4 热键](#1.4 热键)
  • 二、shell命令及其运行原理
  • 三、Linux权限
    • [3.1 用户](#3.1 用户)
    • [3.2 sudo](#3.2 sudo)
    • [3.3 权限概念](#3.3 权限概念)
    • [3.4 实操部分](#3.4 实操部分)
    • [3.5 另一种修改属性方法](#3.5 另一种修改属性方法)
    • [3.6 目录权限](#3.6 目录权限)
    • [3.7 缺省权限](#3.7 缺省权限)
    • [3.8 粘滞位](#3.8 粘滞位)
  • 文章结语

一、指令

1.1 打包和压缩

  • zip
    格式:zip -r dst.zip src(不是目录可以不加-r)
  • unzip
    unzip XXX.zip:解压到当前文件夹

unzip XXX.zip -d 指定目录:解压到指定目录

  • sz与rz(Linux与windowa)
    sz:可以向windows传压缩包
    rz:可以向Linux传压缩包
  • tar

选项

tar czf myfile.tgz myfile:压缩(czf:新建打包文件,再压缩,然后是新压缩名称)

tar xzf myfile.tgz -C ../other:解压到另一个文件夹,-C:大写的

也可以加v选项,就可以看到打包的过程或解压的过程

  • scp
    Linux向Linux发送压缩包

1.2 bc

相当于计算器(退出时按ctrl + D)

1.3 uname

怎么在Linux环境查看你的体系结构和系统内核版本?

可以通过uname -a来查看所有的信息,uname -r:可以查看内核版本

1.4 热键

  • \:换行符
  • ctrl+c:终止异常任务
  • 上下键:查看历史命令
  • tab:快速按两下可以进行命令补全和搜素
  • ctrl +r:搜素历史命令
  • ctrl +d:退出当前用户

二、shell命令及其运行原理

从技术角度,Shel的最简单定义:命令行解释器(command Interpreter)主要包含

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

为什么要存在外壳程序

1.方便用户操作

2.外壳程序,保护内核

在Linux下命令行解释器叫做/bin/bash,shell是所有外壳的统称,具体的shell外壳叫bash

三、Linux权限

3.1 用户

Linux中的用户分为:root用户(超级管理员,权限高)、普通用户(权限低,受管控)

普通->超级的指令

  • su:还在原来目录下
  • su -:重新登陆,到家目录下

超级->普通

su 用户名:用户,不需要密码

按ctrl+D可以到之前的用户

3.2 sudo

可以是普通用户短暂提权

可能会报错

解决方法:在/etc/sudoers修改

3.3 权限概念

权限=角色目标属性

权限是什么?

权限本质是:能或者不能做什么事情

为什么要有权限

权限首先限制的是角色(人)

权限要求目标必须具备对应的属性

  • 角色
    包含拥有者、所属组、other三者,输入ll查看属性

    文件属性怎么不见other呢?
    不是拥有者和所属者,自然就是other,other不需要记录
    什么是所属组?为什么要有所属组?
    更精细化的权限管理,首选要有更精细化的身份角色
  • 属性
    只有三个:r(读)、w(写)、x(可执行)
    在详细信息中可以见到除第一个的其余9个字符,每三个分别代表拥有者、所属组、other三者对应的属性

    三个字符顺序不能颠倒

    属性操作
    chmod:可以操作属性,具体选项操作看图片

3.4 实操部分

系统默认不允许我们把文件给别人吗?

想给别人,必须高权限!(udo/su(切换成为root))

改拥有者:chown root text.txt

改所属者:chgrp root text.txt

两者都改:chown root:root text.txt

能改任何人的文件权限吗?

用户只能更改自己的文件权限

没有权限会怎么办?

系统会拒绝让我们访问

确定权限信息的时候,系统会先确定用户是谁?拥有者,所属组,还是other?

在Linuc下,用户角色确定,只确定一次,顺序是:拥有者,所属组,other

root用户的权限受权限吗?

不受权限约束!

如何理解可执行?

可执行权限+文件可以执行(二进制文件),两者必须满足才能执行

3.5 另一种修改属性方法

可以用8进制表示法,底层是二进制(由于范围是8进制)

3.6 目录权限

如果我想进入一个目录,需要什么权限?

需要可执行权限(x),普通文件是可执行程序没权限,文件是无法进入cd

rwx在目录代表什么?

r :表示如果对目录没有r,就无法查看目录里面的文件

w :表示如果对目录没有w,就无法在指定目录内部新建文件

注意:

  • root(超级用户)不受权限限制
  • 默认情况下,我们新建一个目录,rwx权限都要有**

如何理解多用户相互隔离

可以看出每个用户文件都把自己的权限拉满,把别人权限都关闭掉了

3.7 缺省权限

什么默认权限是我们看到的样子?

对于普通文件来讲:起始权限666,默认不带可执行

对于目录文件来讲:起始权限777,默认携带x(必须要进入)

  • 权限掩码
    命令:umask:(第一个零与用户有关的,不考虑)

    002对应八进制:000 000 010
    最终权限=起始权限 & (~umask)
    以当前普通文件(664为例)

    又以当前目录文件(775为例)

umask存在的价值?

凡是在umask中出现的权限,都不应该在最终权限中出现

为什么要有umask?

  • 默认权限,有OS自主决定,无法在创建前进行修改--系统可配置,可以灵活满足需要的一种表现
  • 特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码都是可控的。

注意:

  • umask是内存级的,是系统的配置文件(关闭还是会恢复)

3.8 粘滞位

  • 一个文件是否能被删除,与文件本身无关!与文件所处的目录权限有关!

如果两个用户之间要进行文件级别的协作呢?

该目录不能放在任何一个私人账号(别的账号没权限),并且共享类文件,不想让非文件的拥有者删对应的文件!

任何一个人都能在共享目录下新建,但是不能让非拥有者删除,修改文件属性------限标志位:t粘滞位

在根目录有一个专门用来放临时文件和共享文件的


文章结语

感谢你读到这里~我是「键盘敲碎了雾霭」,愿这篇文字帮你敲开了技术里的小迷雾 💻

如果内容对你有一点点帮助,不妨给个暖心三连吧👇

👍 点赞 | ❤️ 收藏 | ⭐ 关注

(听说三连的小伙伴,代码一次编译过,bug绕着走~)

你的支持,就是我继续敲碎技术雾霭的最大动力 🚀

🐶 小彩蛋:

复制代码
      /^ ^\
     / 0 0 \
     V\ Y /V
      / - \
    /    |
   V__) ||

摸一摸毛茸茸的小狗,赶走所有疲惫和bug~我们下篇见 ✨