我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux的外壳是什么及怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux的外壳是什么及怎么使用

今天小编给大家分享一下linux的外壳是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在linux中,外壳是指“shell”,即存在于操作系统之上的“命令行解释器”,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息。shell的作用:1、将用户的命令翻译给核心(kernel)处理;2、将核心(kernel)处理结果翻译给用户。

Linux的外壳程序称作shell(命令行解释器),是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息

shell的作用是:

  • 将命令翻译给kernal

  • 将kernl处理结果翻译给用户

 一般我们使用的shell为bash。

在解释命令的时候,bash不会直接参与解释,而是创建新进程进行命令的解释,bash只用等待结果即可,这样能保证bash进程的安全。

一、shell

1.出现原因

在使用linux时,我们都说linux相较于windows,linux没有图形化界面,是用命令行进行操作。但是命令行的方式也并非是对计算机的直接操作

我们知道计算机的底层其实就是由0和1组成,每个命令的传达最终都会转变为0,1信号传输给计算机让计算机运行相应的指令。但如果让大众都用这种方式操作计算机,无疑会非常的困难。

2.作用

linux操作系统作为一个核心(kernel),用户不能直接对其进行操作。而是通过shell来与计算机沟通。“shell”的英文释义有“外壳”的意思,即存在于操作系统之上的“命令行解释器”,用于将用户的命令翻译给核心(kernel)处理,核心(kernel)再将处理结果翻译给用户

shell其实就可以看做是用户与操作系统之间的一位翻译员,用户与操作系统语言不通无法直接进行沟通,而是通过shell进行翻译后进行对话

3.windows与linux的shell

(1)windows

在使用windows时,用户无法直接操作windows的内核,而是通过点击shell形成的图形化界面进行相关操作

(2)linux

在linux中,shell则是对我们的指令进行解析,将解析指令传给linux内核,反馈结果再通过内核运行出结果,将结果通过shell解析给用户

4.存在意义

(1)便于用户与操作系统之间的沟通

通过shell,用户可以用更加简便的方式使用操作系统,学习成本也会大大下降。

(2)保护操作系统

shell的另一个存在意义就是为了保护操作系统。通过对用户非法或无效指令的拦截避免操作系统进行无用或有害的操作。比如我们在linux下输入一串乱码,shell就会将该命令拦截并返回

linux的外壳是什么及怎么使用

5.运行模式

shell在执行命令时,会通过派生子进程的方式执行用户的指令,而shell本身一般并不会执行对应的指令

可以将shell本身看做一个翻译派遣公司的总裁,用户有翻译需求时就向shell发出请求,而shell作为一个派遣公司总裁,一般不会亲自上门服务,而是派遣手下的其他翻译人员去服务,以应对繁多复杂的需求。这些外派的翻译人员就是一个个子进程

二、linux权限

1.linux权限的概念

权限就是操作系统中对用户的约束

(1)用户分类

在linux下,用户分为两种。一种是超级用户,即root。另一种是普通用户

1.超级用户(root)

root用户有且仅有一个。同时,root用户拥有对该操作系统的最高权限。

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

因此,root账户的密码一定要设置的复杂并保存好。

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

2.普通用户

普通用户可以存在多个。普通用户会受到权限的约束。这些权限约束来自于系统和root用户。

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

(2)用户切换

在linux下,可以使用“su”命令切换用户

linux的外壳是什么及怎么使用

在这里,你要登录谁的账户就要输入该账户的密码。因此,每个账户的密码都尽量要设置成不一样的

要退出该账户的话,输入exit或者使用快捷键“ctrl d”即可

linux的外壳是什么及怎么使用

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

linux的外壳是什么及怎么使用

(3)不切换用户执行对应指令

如果我们是普通用户,但此时我们需要执行的一条指令需要root权限,而我们又不想切换用户去执行,此时就可以使用“sudo”命令。该命令可以短暂的提升普通用户的权限

注意:在输入密码时,是输入本用户的密码,而不是root用户的密码

但此时我们会出现以下报错:

linux的外壳是什么及怎么使用

这就是因为该普通用户并不是root的信任用户,在root的对应文件中并不存在该普通用户,导致无法进行“sudo”命令

2.linux权限管理

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

(1)文件访问者的分类(人)

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

1.所属组存在原因

有人可能会疑惑,文件的拥有者和其他人都好理解,拥有者就是文件的创建者other就是除了创建者之外的用户,那文件的所属组有什么意义呢?

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

(2)事物属性

linux的外壳是什么及怎么使用

现在我们有以上一个test.c文件,可以看到,在这个文件文件名前存在一大串的属性。在之前,我们最多知道“Oct 25 16:43”上次修改时间100该文件按字节计算的该文件磁盘占用。但是前面的属性我们就不认识了。

1.文件访问者

linux的外壳是什么及怎么使用

上文中我们也提到了文件访问者的分类,其实在上图中的第一个root就代表所有者第二个root则是指所属组。而other则并没有显示,因为除了这两个用户以外的用户就属于other,不必显示

2.文件类型

linux的外壳是什么及怎么使用

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

1)linux中的常见文件类型

-: 普通文件

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

d:目录文件

c:字符设备文件

主要为硬件,例如键盘、显示器等

b:块设备文件

例如磁盘

l:链接文件

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

linux的外壳是什么及怎么使用

此时就为a.out文件创建了一个链接文件test,而该文件的开头其实就是“l”,代表着链接文件

如果我们要执行a.out文件,就可以使用test:

linux的外壳是什么及怎么使用

p:管道文件

管道文件涉及到进程间通信,这里就不详讲,现在只需要知道有这种文件存在即可

3.文件权限

linux的外壳是什么及怎么使用

可以看到,在这里除了第一个字符是文件类型外,还剩下了9个字符。同时我们知道文件访问者分为三类,而这9个字符中每三个字符就代表着一种访问者的访问权限

(1)文件权限分类

文件权限分为三类即“r”、“w”、“x”

“r”代表着,即阅读该文件“w”代表着,即修改该文件内容'“x”代表着执行,即执行对应文件

每个文件的访问者权限都由这三个权限组成。“rwx”的方式排序。如果对应的权限上为“-”,即未拥有该权限

linux的外壳是什么及怎么使用

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

(2)权限修改

1.逐个修改

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

linux的外壳是什么及怎么使用

这种形式下,“u”代表拥有者“-”代表去掉对应权限。而“g”代表所属组“o”代表其他人。如果想修改其他访问者权限,对应的修改“u”即可。如果想加上某种权限,则可以将“-”变更为“+”

当然,增删权限时也可以用多访问者多权限的形式,如“chmod u-rwx,g-rwx test”:

linux的外壳是什么及怎么使用

如果想修改所有访问者的权限,也可以将“u、g、o”修改为“a”带上对应权限,这里就不演示了。

2.修改文件所有者及所属组

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

linux的外壳是什么及怎么使用

如果要修改所属组,就使用“chgrp”命令,使用方法和“chown”相同,这里就不演示了

如果要同时修改拥有者和所属组,就使用“chown 用户名:用户名 文件名”命令,使用方法也是一样的:

linux的外壳是什么及怎么使用

此处使用的是root用户,使用无需sudo,普通用户则需要sudo。

对于other,无需修改,因为除了拥有者和所属组以外的用户就是other

3.权限同时修改

我们说过,在计算机中,所以的命令都是0,1信号的方式传递的。

权限存在有和无两种状态,也是由0,1组成的。“rwx”就可以看做是“111”“---”则可以看做是“000”。而这些二进制如果转换为八进制,则是“7”和“0”。由此,权限的八进制范围可以看为是“[0, 7]”。在八进制中,“r”表示4“w”表示2“x”表示1

由此,在修改权限时,我们除了用“u-”这类形式去修改外,还可以以八进制的形式修改。即“chmod 三个访问者的八进制数字组合 文件名”。如“chmod 777 test”

linux的外壳是什么及怎么使用

这种修改方式,在需要修改多个访问者权限时,就比第一种逐个修改要便捷

注意:这种方式如果不写全,如写“7”“35”这种形式,系统是从后往前,即从other->group->owner的方向修改,因为此时其他权限默认为0不显示。如下图:

linux的外壳是什么及怎么使用

3.权限掩码

其实新建目录起始权限777,新建文件夹起始权限666。但是我们实际看到的却不是这样的。原因就在于创建文件或目录时会受到umask(权限掩码)的影响。

(1)权限掩码的作用

umask值,即权限掩码中存在的权限,系统会自动配置好。在生成文件或目录时,都要去掉权限掩码中的权限

(2)查看umask

要查看umask值,直接输入“umask”命令即可:

linux的外壳是什么及怎么使用

这里的第一个0我们不用管,在第一个0后面的就是每个访问者要去掉的权限。即在系统的默认中,每个新建的文件或目录的所有者无需去掉权限所属组需要去掉2,即写权限其他人需要去掉2,即写权限

linux的外壳是什么及怎么使用

在文件的起始权限666中去掉022,目录的起始权限777中去掉022就是上图中的权限。

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

(3)修改umask值

umask值虽然可以由系统默认生成,但是也可以手动进行修改。

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

linux的外壳是什么及怎么使用

可以看到,修改umask值后,新建的文件的默认权限中的对应权限就被去掉了

注意:umask值不是用初始权限去减权限值,而是去掉对应的权限。例如文件的初始权限时666,此时我们将umask值修改为0111。如果用减法就会变成555,即“r-xr-xr-x”。但实际上应该是去掉1对应的“x”权限,即依然是“666”权限,即“rw-rw-rw-”

linux的外壳是什么及怎么使用

有人可能会疑惑,为什么目录的起始权限时777,而文件的起始权限时666。原因就在于要进入一个目录,需要的是执行权限,即“x”权限:

linux的外壳是什么及怎么使用

如果是在root用户下执行上述操作,则可以进入无“x”权限的目录,因为root用户不受权限约束

以上就是“linux的外壳是什么及怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux的外壳是什么及怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux的外壳是什么及怎么使用

今天小编给大家分享一下linux的外壳是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,外壳是指
2023-07-04

linux中apt是什么及怎么使用

这篇文章主要介绍“linux中apt是什么及怎么使用”,在日常操作中,相信很多人在linux中apt是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中apt是什么及怎么使用”的疑惑有所
2023-04-27

linux管道是什么及怎么使用

本文小编为大家详细介绍“linux管道是什么及怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux管道是什么及怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。管道
2023-04-27

linux中yum是什么及怎么配置使用

这篇文章主要介绍了linux中yum是什么及怎么配置使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux中yum是什么及怎么配置使用文章都会有所收获,下面我们一起来看看吧。
2023-04-27

linux gcj是什么及安装使用

本篇内容主要讲解“linux gcj是什么及安装使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux gcj是什么及安装使用”吧!在linux中,GCJ是G
2023-04-27

​thrift是什么及怎么使用

Thrift是一个软件框架,用于跨语言的服务开发。它由Apache软件基金会开发和维护,旨在帮助开发人员编写高效和可扩展的客户端-服务器应用程序。Thrift允许开发人员定义数据类型和服务接口,并自动生成用于不同编程语言的代码。开发人员可
2023-10-21

jQuery是什么及怎么使用

这篇文章主要介绍“jQuery是什么及怎么使用”,在日常操作中,相信很多人在jQuery是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery是什么及怎么使用”的疑惑有所帮助!接下来,请跟
2023-07-05

JumpServer是什么及怎么使用

JumpServer是一款开源的堡垒机软件,用于管理和控制服务器远程访问权限。它可以帮助管理员集中管理服务器账号和权限,实现对服务器的安全访问控制。使用JumpServer,管理员可以通过Web界面添加服务器和账号,然后将授权给用户或用户
2023-10-23

Vuex是什么及怎么使用

这篇文章主要讲解了“Vuex是什么及怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex是什么及怎么使用”吧!一.Vuex是什么?为什么要用它?vuex官方解释Vuex 是一个专为
2023-07-04

ChatGPT是什么及怎么使用

这篇“ChatGPT是什么及怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ChatGPT是什么及怎么使用”文章吧。C
2023-07-04

LINQ是什么及怎么使用

本文小编为大家详细介绍“LINQ是什么及怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“LINQ是什么及怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、为什么要使用LINQ要理解为什么使用LIN
2023-06-29

JSONObject是什么及怎么使用

JSONObject是Java中的一个类,它可以用来表示一个JSON对象。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据的传输和存储。使用JSONObject类,可以方便地创建、
2023-09-12

Mybatis是什么及怎么使用

这篇文章主要介绍“Mybatis是什么及怎么使用”,在日常操作中,相信很多人在Mybatis是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis是什么及怎么使用”的疑惑有所帮助!接下来
2023-07-05

Xterm.js是什么及怎么使用

这篇文章主要介绍“Xterm.js是什么及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Xterm.js是什么及怎么使用”文章能帮助大家解决问题。xterm.js是什么?xterm是一个使用
2023-07-04

airodump是什么及怎么使用

airodump-ng是一款用于无线网络分析的开源工具,它可以扫描周围的无线网络并显示相关的信息,如SSID、MAC地址、加密方式、信号强度等。同时,它还可以捕获数据包,帮助分析网络流量及安全性。使用airodump-ng工具,需要在终端或
2023-09-26

vue的watch是什么及怎么使用

本篇内容介绍了“vue的watch是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,watch用于监听data里面的
2023-07-04

vue的$refs是什么及怎么使用

这篇文章主要讲解了“vue的$refs是什么及怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的$refs是什么及怎么使用”吧!在vue中,$refs是一个对象,持有注册过ref
2023-07-04

Java NIO是什么及怎么使用

Java NIO(New IO)是Java 1.4版本中引入的一种用于替代传统Java IO的新的输入输出API。NIO提供了更高效、更灵活的IO操作方式,并且支持非阻塞IO模型。Java NIO的核心概念是通道(Channel)和缓冲区(
2023-09-27

mybatis plus是什么及怎么使用

这篇文章主要介绍“mybatis plus是什么及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis plus是什么及怎么使用”文章能帮助大家解决问题。一、什么是mybatis-p
2023-06-30

Pandas库是什么及怎么使用

今天小编给大家分享一下Pandas库是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Pandas的介绍pand
2023-07-05

编程热搜

目录