Linux热键,shell含义及权限介绍

2024-07-25 13:39:52 浏览数 (2)

Linux操作系统的权限

1、几个常用的热键介绍

1、1、[Tab]键

为了方便能够快速的输入指令,通常利用[Tab]来帮助我们。[Tab]键的作用是具有命令补全档案补齐的功能。通常为了输入一个指令,我能快要输完的时候按下[Tab],能够快速补齐,能够减少一点时间吧,起始也能够利用[Tab]来帮助我们查看符合那几个开头的指令能有哪些。

1、2、[ctrl]-c

将当前的运行停止,为了防止出现一直刷屏或者是想要停止某个指令的时候。

1、3、[ctrl]-d

退出登陆

1、4、[ctrl]-r

输入之后,你可以输入几个之前输过的很长指令的部分,他能够自动的在历史命令中自动搜索。

2、shell命令以及运行原理

1、大部分的指令就是文件 2、用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳程序 图形化界面和命令行都是属于操作系统内核的外壳程序,shell程序。

例子:张三是一个天天和代码打交道的人,而且张三已经毕业了,但是呢,由于你的i人的特性,除了代码,见了谁都会害羞,但是又得解决一下人生过程中的问题,还没有女朋友,所以这个时候就需要一个王婆来帮助你来说媒,来找女生来帮助你说媒。能够帮助你来解决你面对女生时候的害羞的缺点。就算女生不同意了,王婆还能再帮帮你,找找看看有没有另外合适的。假设张三喜欢的女生是如花。 提问:为什么张三自己不找,因为张三不擅长和对方打交道。 所以对于张三(用户) ,王婆(外壳程序) ,如花(操作系统),也就分别向类似于这几个对象。 用户向外壳程序提交想要执行的指令,外壳程序进一步向操作系统跟进,如果执行的指令无法执行,操作系统会将报错信息交给外壳程序,外壳程序再将执行失败的信息返还给用户。 所以外壳程序是介于用户和操作系统之间的一个软件。 shell作用是: 1、将使用者的命令翻译给核心(kernel)处理。 2、同时,将核心的处理结果翻译给使用者。 存在的原因: 1、用户不善于和OS之间交互。 接上上面的故事,可是如花不喜欢张三,但是张三还是依然深深的爱着如花,所以张三还是让王婆再去说说,但是当王婆再去说的时候看见了如花隔壁家的小帅已经和如花如胶似漆了,那么这个时候王婆看到如此和谐的一幕也就不会再去打扰人家了,转头就和张三说还是不要再纠结如花了,你们是不可能的,此时不只是如花拒绝,王婆也会拒绝你的条件。所以即使是以后你还是想让王婆去问问如花,可能在王婆这一关都过不去,就直接将你拒接了。此时王婆是不想破坏别人家的好的姻缘,间接的也保护了如花的幸福。 存在的原因: 2、可以对于用户的请求进行合法性检查,变相的保护OS 可是痴情的张三会放弃吗,还是不放弃,还是想试一下还想让王婆再去说说试试看看,但是对于王婆来说,早就知道一不可能了,但是张三还是想让他再去,这样的话可能造成的结果就是别人以为王婆已经干了那么多天了,还是没有完成,会认为王婆的业务能力不行,败坏了王婆的能力和名声。所以此时,王婆就想怎么样才能帮他办了还需要不破坏如花的幸福,所以此时王婆在boss直聘上找实习生(本科及以上学历),找到了之后就让实习生来解决张三的事情,王婆只做有把握的事情,没把握的事情都给实习生来做,以后张三的要求就给实习生来做了。这样的话,王婆还能够继续干自己的工作,并且还不会有任何失败带来的不好的影响。 运行情况: bash基本上都会对我们创建一个子进程,帮用户进行命令行解释。真正的bash值需要进行等待就行了。 shell(媒婆,外壳程序的统称). bash(王婆,具体的一款). sh(李婆,另外一种)

3、权限

3、1、什么是权限

生活中的例子可以帮助我们理解。 VIP才能看最新出来的电影。 进学校的宿舍需要刷脸这也是权限。 权限就是通过一定的条件拦住一部分,给另一部分人权利,来访问某种资源。来决定有无或者是能不能的问题。

3、2、权限的本质

由上面可知,权限和人有关。 我想在爱奇艺上刷题,leetcode上看视频,明明我都是会员了,为什么干不了这种事? 所以权限还和 事物的属性有关。 权限=人 事物的属性有关 但是,假如,你是张三有一个VIP,能够看最新的视频并且你是一个公司的员工,能够用门禁卡能够进公司。这两种情况都是因为你叫张三才让你看视频,让你进公司的吗?其实不是,真正的原因在于你充钱了才能看VIP视频,你是这个个公司的员工,你才能进公司。 所以,并不是意味着你叫什么,而是你本身的角色才有这样的特点和权限。 所以!权限= 角色 事物的属性有关

3、3、Linux中的用户

用户分为两种1、root 2、其他(普通用户) root:超级管理员(不受权限约束) 其他(不同用户)

如何进行身份的互换。 普通用户变为root账号 1、利用su指令,此时输入su之后需要输入密码,那么输入的密码需要的是root的密码。那怎么从root用户退会普通用户?[ctrl] d。此时不会改变路径的位置。还是处在原来的位置。 2、利用su - 指令,此时还需要输入密码,也还是root的密码。会多出一条提示信息。此时相当于是利用root账号重新登陆,登陆的默认路径之下会变成root的路径。 root账号变为普通用户直接su 用户名就行,连密码都不用输入。(root不会收到权限的限制)

不想直接变为root,但是想用root的身份执行一个工作。 sudo指令,是相当以root的身份来执行指令,此时需要输入密码,但是输入的密码是本身普通用户的密码!(指令提权操作) 那我们回来想一下,我们只需要提供自己的密码,那什么操作不都能够就行sudo提权行为吗?那还要root账号的作用是什么呢? 很显然,不能对任何人都有这样的操作的能力。一般普通用户是没有这样的权限的。那怎么能改变呢,怎么样一个特定的普通用户能够执行sudo的指令呢? 系统中存在白名单和黑名单。 白名单中是可以相信的用户,黑名单是直接不相信的。那在上文中说到的,直接输入普通用户的密码就是因为,这个普通用户配置过了,出现在白名单之中。 默认的普通用户目前无法执行sudo,后面文章中的vim中在进行讲解。

在这里插入图片描述在这里插入图片描述

Linux中有三种“人”:1、拥有者 2、所属组 3、other 其中第一个root的位置表示的是拥有者 ,第二个root的位置表示所属组。 当只有自己的时候,大概率来说所属组就是自己本身,但后期也有可能是好几个人都分为一个小组,这样的话就不是一个人,也就会有组的感觉了。 那怎么没有other呢?因为other是谁并不清楚,所以判断other之前首先要判断拥有者和所属组,两个都不属于那就是other 如何理解组? 现实说例子:你是张三,你有一个不太熟的朋友,叫李四,不过也就是点头之交。同时呢,有一家公司,正好招了这两个人,同时又分配到不同的组里面进行赛马机制两个组需要互相比较完成度和实用性。但是呢这个公司有点穷,只能让两组的员工都在同一台机器之上进行开发。有一天张三的领导需要视察一下张三的工作进度。那如果此时没有所属组,那么文件夹就只能是张三的,那想要给领导看,就必须放一下权限,那这样的话就会让所有人都能看到,那此时的李四就有权利能够来看张三写的代码,那这样的话,也有可能李四会抄袭张三的代码,也有可能李四还会嘲笑张三的简陋的代码。 所以Linux系统中必须要有所属组的关系。这样的话,只需要将所属组的权限打开就能够让领导看到,同时李四组又不是张三组内的,所以李四看不到。同样的,如果李四想给领导看,也只需要把组打开就行,也不会被张三看到。 拥有所属组的概念能够方便我们再多人协作的时候更好的进行权限的管理。 root和普通用户的关系和这里的三种人是相互补充的。 前面的分类方式是一个大类,而后面的三种人是具体的每一个用户所代表的,两种表示方式不冲突,同时也能够展现其中的关系。

3、4、Linux中文件的权限

在这里插入图片描述在这里插入图片描述

在上一个图中截取出来的,这就是文件的权限,一共有10个位置,第一个位置代表的是文件的类型。现在比较清楚的是文件夹的类型是:普通文件:-。 文件夹文件:d。 那剩下来的9个字符又有什么细节呢。 首先介绍一下文件属性的三种权限:r :读 。w:写。 x:可执行权限。 由于在上一个小点中讲过,Linux中会有三个人的身份也正好 3*3=9,代表着后面的9个字符分别代表着拥有者,所属组,other的权限。 这样的话,上面的权限就能分为。 拥有者:rw-,能够读,写,但是不能执行 所属组:r–,只能够读,不能写和执行 other:r–,只能够读,不能写和执行 全部都开放权限的话应该是这样表示—“(文件类型)rwxrwxrwx” 所以一个人对于一个文件的权限首先是要确定对文件来说,这是一个什么样的人。

3、4、1、快速掌握修改权限的做法

一个文件的权限谁能修改?a、拥有者 b、root 利用chmod指令(changemode)可以更改权限。

代码语言:javascript复制
//修改拥有者权限
chmod u-r/w (文件名):对于这个文件的user(拥有者)减去r的权限/w的权限
chmod u r/w (文件名):对于这个文件的user(拥有者)加上r的权限/w的权限
chmod u-rw (文件名):对于这个文件的user(拥有者)减去r的权限和w的权限
//修改所属组权限
chmod g-r/w (文件名):对于这个文件的group(所属组)减去r的权限/w的权限
chmod g r/w (文件名):对于这个文件的group(所属组)加上r的权限/w的权限
//修改other权限
chmod o-r/w (文件名):对于这个文件的other减去r的权限/w的权限

//更改多个人的权限
chmod u-w,g-w (文件名):对于这个文件的user和group都监区写的权限
//删除所有人的权限
chmod u-rwx,g-rwx,o-rwx(文件名)
chmod a-rwx(文件名)
//所有人加上r权限
chmod a-r(文件名)

这里的rwx的顺序是无所谓的,但是嗯还是建议按照顺序写,防止出现预料之外的情况。

3、4、2、对比权限有无的表现

当对一个对于所有人都删除权限的文件来说。不管是cat读文件,echo “hello”>(文件名)写文件,还是./(文件名)运行文件都是不行的。 不能进行的时候会返回

代码语言:javascript复制
Permission denied

当我们加上w的权限时,我就能用echo来进行写入。 当我们加上r的权限时,我就能用cat来进行读取。 当我们加上x的权限时,我们能用./来运行。

可是root不是超级管理员吗,那root能在这个文件对于谁都没有权限的时候进行操作吗? 当我们是root的时候,进行上面的对于文件的操作的时候,发现并没有访问不允许,所以对于root账号来说,不受权限的约束,无论文件的权限是什么,都不妨碍root账号对于文件的修改。 Linux对用户身份进行识别的时候,只能识别一次。意思就是说有可能一个用户即是拥有者也是所属组,但是当拥有者什么权限都没有,但是所属组都有程序的时候,用户也还是什么都访问不了。就是因为Linux对用户识别一次的特点。

3、4、3、修改权限的第二套做法

由于权限的含义是 用户角色(具体的人) 文件权限属性 在刚刚的修改权限的操作方法,都是修改文件权限属性的。那我们能不能更改用户的角色呢?(就是相当于把文件的拥有者和所属组给别人) 但是我们为什么身为文件的拥有者,却不能把文件拥有者改成其他人呢?**其实相对于现实来说的话,你把一个东西给别人也是需要别人的同意的,并不是说直接给别人就要。**所以我们要是想进行这样的操作的话就不能用普通用户来,但是要是不想经过别人的同意,想要直接传递的话,就需要用到sudo/su提权变为root来帮助我们进行文件权限的改变。

代码语言:javascript复制
sudo chown (用户名) (文件名):将文件的拥有者改变
sudo chgrp (用户名) (文件名):将文件的所属组改变
sudo chown (用户名:用户名):将文件的拥有者和所属组改变

怎么不见修改other的指令呢?那是因为不需要,排除了拥有者和所属组,剩下来的就剩下other,只要改了拥有者和所属组,other就会改变。

3、4、4、文件属性表达方式并利用二进制继续修改权限

利用ls能够看到文件的细致的属性,其中的rwx更是代表的文件三个特性。 由于三种特性只有0,1的特性,我们也能够将其看作是三个二进制表示的数。就比如说 666代表的三个二进制是110110110,再翻译一下,其中的1代表的是真,0是假,那么最后的话,这个文件的特性就是“-rw-rw-rw-”

代码语言:javascript复制
chmod 000 (文件名)//这就是能够直接把这个文件修改成“----------”
chmod 777 (文件名)//给每一个人都赋予最高的属性
3、4、5、文件类型

首先从熟悉的系统开始看起。 Windows中怎么区分文件类型的呢?后缀名来帮助判断。 但是Linux不通过后缀来区分文件类型。(不是说Linux不能用后缀,只不过是改变后缀对于文件种类也不会有影响) Linux中通过ls -l时展现出的第一个最开始的第一个字符来判断。

Linux文件类型

表示方式

普通文件,文本文件,可执行程序,库

-

目录文件

d

块设备文件

b

字符设备文件

c

管道文件

p

链接文件

l

大多数情况下前两个是重要的,后面相对而言对于编程的话不是那么的常见。但是还是需要了解一下的。 对于块设备文件,最典型的代表是磁盘。 对于字符设备文件,由于显示器打印的时候123在屏幕上显示的时候也还是1,2,3的三个字符而已,所以显示其就是最典型的。 管道文件有点不好讲,学到管道在细讲 对于链接文件,就像是在Windows上删除软件的时候,拖拽到回收站的时候删除的只是快捷方式并是真正的删除掉文件。所以删除的快捷方式也就是相当于是其中的链接文件。

0 人点赞