
🎬 博主名称 :键盘敲碎了雾霭
🔥 个人专栏 : 《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~我们下篇见 ✨
