VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云最新优惠促销活动
jtti最新优惠促销活动

linux的外壳是什么(linux shell)

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

linux的外壳是什么(linux shell)

本教程运行环境:linux7.3系统,Dell G3电脑。

Linux的shell程序叫做shell(命令行解释器),指的是面向用户的命令界面。它的表现形式是一个可以让用户进入的界面,这个界面也可以反馈运行信息。

外壳的作用是:

将命令翻译成kernal

将内核处理结果翻译给用户。

一般我们用的shell是bash。

在解释命令时,bash不直接参与解释,而是创建一个新的进程来解释命令。bash只需要等待结果,可以保证bash进程的安全性。

1.shell1。其出现的原因

在使用linux的时候,我们都说和windows相比,linux没有图形界面,都是命令行操作。但是命令行不是对计算机的直接操作。

我们知道,我们计算机的底层其实是由0和1组成的,每个命令的传输最终都会变成0,1的信号传输到计算机,让计算机运行相应的命令。但毫无疑问,公众以这种方式操作电脑会非常困难。

2.作用

Linux操作系统是内核,用户不能直接操作。相反,它通过外壳与计算机通信。“shell”的英文定义是“shell”,即存在于操作系统上的“命令行解释器”,用于将用户的命令翻译到内核进行处理,内核再将处理结果翻译给用户。

实际上,shell可以被看作是用户和操作系统之间的翻译器。用户和操作系统不能直接交流,因为他们不知道对方的语言。相反,shell用于翻译和对话。

3.windows和linux shell

(1)使用windows时,用户不能直接操作windows的内核,只能点击shell形成的图形界面进行相关操作。

(2)linux在linux中,shell解析我们的指令,将解析后的指令发送给linux内核,反馈结果通过内核运行出来,通过shell将结果解析给用户。

4.存在的意义

(1)用户和操作系统之间容易沟通。通过shell,用户可以更方便的使用操作系统,学习成本会大大降低。

(2)保护操作系统外壳的另一个意义是保护操作系统。通过拦截用户的非法或无效指令,可以避免操作系统的无用或有害操作。例如,如果我们在linux下输入一串乱码,shell会截取命令并返回。

1.png

5.操作方式

shell执行命令时,会通过派生一个子进程来执行用户的指令,但是shell本身一般不会执行相应的指令。

果壳本身可以看作是一个翻译派遣公司的总裁,用户有翻译需求就向果壳发送请求。作为派遣公司的总裁,壳牌一般不会亲自上门服务,而是派遣他手下的其他翻译人员进行服务,以应对各种复杂的需求。这些外派翻译是一个子流程。

二、linux权限1。Linux权限的概念

权限是操作系统中对用户的限制。

(1)用户的分类在linux下,有两种类型的用户。一个是超级用户,也就是root。另一类是普通用户。

1.超级用户(根用户)

只有一个根用户。同时,root用户对操作系统拥有最高权限。

可以认为root用户在操作系统中就像古代国家的皇帝,不受任何法律条款的约束。在root用户下,执行任何命令都不受权限限制。您可以访问其他普通用户的文件,并对其进行修改和删除。可以删除根目录,数据库等。这将对操作系统造成严重损坏甚至崩溃。

所以root账号的密码一定要复杂,保管好。

root用户的命令提示符是“#”

2.普通用户

可以有多个普通用户。普通用户会受到权限限制。这些权限约束来自系统和根用户。

普通用户的命令提示符是“$”

(2)用户切换在linux下,可以使用“su”命令来切换用户。

2.png

在这里,你想登录谁的帐户,你必须输入该帐户的密码。因此,每个帐户的密码应尽可能设置不同。

要注销此帐户,只需输入exit或使用快捷键“ctrl d”

3.png

注:普通用户在“su”下,需要输入相应用户的密码。但是在root用户“su”下,不需要输入相应的用户密码。

4.png

(3)不切换用户执行相应的指令。如果我们是普通用户,但是此时我们需要执行的一个指令需要root权限,而我们又不想切换用户来执行,这时候可以使用“sudo”命令。该命令可以临时提升普通用户的权限。

注意:输入密码时,应该输入该用户的密码,而不是root用户的密码。

但是此时,我们会得到以下错误:

5.png

这是因为普通用户不是root的可信用户,普通用户不存在于root对应的文件中,所以“sudo”命令无法执行。

2.linux权限管理

在linux中,权限由“人”和“物属性”组成。人是指操作的用户,物的属性是指文件的属性。

(1)文件访问者(people)的分类在linux中,文件访问者分为三类:所有者(onwer)、所属的组(group)和其他(other)。不同于root和普通用户是一个具体的人,三类文件访问者是抽象的概念,可以看作是一种角色。即该文件下其他用户的身份。例如,一个普通用户可能在他自己的目录文件中显示为所有者和组,但在其他用户的文件中可能显示为其他人。

1.该组所属的原因存在

有些人可能会奇怪,文件的所有者很容易被其他人理解。所有者是文件的创建者,另一个是创建者以外的用户。文件所属的组有什么意义?

现在,如果我们有团队A和团队B在同一个linux机器上开发产品,这时,团队A的成员已经实现了一个模块,团队领导想要查看该模块的内容。如果linux中存在所有者和他者,因为所有者是我们自己,那么当领导要查看代码时,我们需要放开他者的权限。但是,另一个队也被这个文件视为其他。放开其他,意味着不仅领导可以看,还有另一个团队也可以看你的代码,这就容易导致代码泄露。为了避免这种情况,你需要加入一个团体。我们只需要将组长添加为文件所属的组,并释放该组的权限,这样就可以在不开放其他权限的情况下,向组长开放代码。

(2)事物的属性6.png

现在我们有了上面的test.c文件。如您所见,文件名前有一堆属性。之前我们最多知道“10月25日16:43”是最后一次修改时间,100是文件的磁盘占用,以字节为单位。但是我们不知道之前的属性。

1.文件访问者

7.png

我们在上面的文章中也提到了文件访问者的分类。其实上图中,第一个根代表的是所有者,第二个根指的是所属的组。其他不显示,因为这两个用户以外的用户属于其他,不需要显示。

2.文件类型

8.png

众所周知,在linux中,文件的后缀是没有意义的。因为linux不通过文件后缀来区分文件类型。但这并不意味着linux中没有文件类型。linux的文件类型是通过“ll”显示的属性列第一列的第一个字符来区分的。在上图中可以看到,test和test.c中的第一个字符分别是“d”和“-”字符。而这两个字符其实就是文件的类型。

1)1)Linux中的常见文件类型

-:普通文件

包括主要源代码、库文件、可执行程序、文档压缩包等。

d:目录文件

c:字符设备文件

主要是硬件,比如键盘,显示器等。

b:阻止设备文件

例如磁盘。

l:链接文件

以windows为例,桌面上的快捷方式其实就是一个链接文件。对应软件启动程序的快捷链接。在linux下,我们执行命令“ln -s a.out test”:

9.png

此时,为a.out文件创建了一个链接文件测试,文件的开头实际上是“L”,代表链接文件。

如果我们想执行一个. out文件,我们可以使用test:

10.png

p:管道文件

管道涉及进程间通信,这里就不说了。现在我只需要知道有这样一个文件存在。

3.文件权限

11.png

如您所见,除了第一个字符是文件类型之外,这里还剩下9个字符。同时我们知道,文件访问者分为三类,这九个字符中每三个字符代表一个访问者的访问权限。

(1)文件权限的分类

文件权限分为三类,分别是“R”、“W”、“X”。

“R”代表阅读,即阅读文档。“W”代表写,即修改文件内容。'“X”代表执行,即执行相应的文件。

每个文件的访问者权限由这三个权限组成。按“rwx”排序。如果对应的权限是“-”,你没有这个权限。

12.png

上图中的权限“rwx -xr r-x”表示所有者拥有读写执行权限;所属的组有读写权限,但没有执行权限;访问者拥有读取和执行权限,但没有写入权限。这里加空格只是为了方便区分,实际显示时不会有空格。

(2)权限修改

1.一个一个修改

linux中的权限也支持修改,修改时要使用“chomd”命令。比如我们想把下图中的执行者权限改成“-wx”,可以执行“chomd u-r test”:

13.png

在这种形式中,“U”代表所有者,“-”代表删除相应的权限。而“G”代表所属的群体,“O”代表其他人。如果要修改其他访客的权限,只需修改对应的“u”即可。如果要添加某种权限,可以将“-”改为“+”。

当然,你也可以以多访问者多权限的形式来添加或删除权限,比如“chmod u-rwx,g-rwx test”:

14.png

如果要修改所有访客的权限,也可以将“U,G,O”修改为“A”对应的权限,这里不做演示。

2.修改文件所有者及其组。

要修改文件所有者,需要有相应的权限,否则需要使用“sudo”来提升权限。修改文件所有者的命令是“chown相应的用户文件名”:

15.png

如果要修改所属的组,可以使用“chgrp”命令,和“chown”一样,这里就不演示了。

如果您想同时修改所有者和您所属的组,请使用命令“chown Username: Username Filename”,方法相同:

16.png

这里使用root用户,不需要sudo,普通用户需要sudo。

对于其他,不需要修改,因为除了所有者和所属的组之外的用户都是其他。

3.同时修改权限。

我们说过,在计算机中,所有的命令都是通过0,1信号来传递的。

权限有两种状态:是和否,也是由0和1组成。“rwx”可视为“111”,“rwx”可视为“000”。而这些二进制如果转换成八进制就是“7”和“0”。因此,八进制权限范围可以被视为“

当需要修改多个访问者的权限时,这种修改方法比第一种更方便。

注意:如果这个方法不完整,比如“7”和“35”,系统是从后往前,也就是从其他->;组->;修改所有者方向,因为此时其他权限默认为0,不显示。如下图:

18.png

3.权限屏蔽实际上,新建目录的启动权限是777,新建文件夹的启动权限是666。但是我们实际看到的并不是这样。原因是文件或目录的创建会受到umask(权限掩码)的影响。

(1)权限掩码umask值的作用,即权限掩码中存在的权限,将由系统自动配置。当生成文件或目录时,权限掩码中的权限应该被移除。

(2)要查看umask值,只需输入“umask”命令:

19.png

我们不用担心这里的第一个0。第一个0后面是每个访问者必须删除的权限。即在系统默认情况下,每个新创建的文件或目录的所有者不需要移除权限,其所属的组需要移除2,即写权限;其他的需要去掉2,也就是写权限。

20.png

从文件的启动权限666中去掉022,从目录的启动权限777中去掉022,也就是上图中的权限。

注意,普通用户和根用户的umask值是不同的。普通用户的umask值为002,root用户的umask值为022。

(3)修改umask值虽然umask值可以默认生成,但也可以手动修改。

修改方式为“umask 0对应权限”。如“umask 0444”:

21.png

可以看到,修改umask值后,新创建文件的默认权限中的相应权限被删除。

注意:umask值不会从初始权限中减去权限值,而是移除相应的权限。例如,当文件的初始权限是666时,我们将umask值修改为0111。如果用减法,就会变成555,也就是“r-xr-xr-x”。其实应该去掉1对应的“X”权限,也就是仍然是“666”权限,也就是“rw-rw-rw-”:

22.png

可能有人会奇怪,为什么目录的启动权限是777,而文件的启动权限是666。原因是,要进入一个目录,你需要执行权限,即“X”权限:

23.png

如果在root用户下进行上述操作,可以不用“X”权限进入目录,因为root用户不受权限限制。

推荐:《linux视频教程》以上是Linux的外壳指的是什么的详细内容。请多关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:linux的外壳是什么(linux shell) https://zhujicankao.com/88186.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » linux的外壳是什么(linux shell)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!