目录
Shell的运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel? 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows不是直接操作windows内核,而是通过图接口形,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结
果在通过内核运行出结果,通过shell解析给用户。
- 帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫 它王婆,它对应我们常使用的bash。
具体图像理解

Shell的运行原理
1)创建子进程,让子进程进行命令行解释
2)子进程出现任何问题,都不影响父进程Shell
对比到Windows中当中就是,我们每运行一个程序就是创建一个子进程,例如:登录微信,qq。而这些子进程当中任何一个进程出现问题都不会影响父进程,例如,当你的qq出现卡死(程序异常)或你的qq被关掉(程序终止),但其他子程序仍然可以运行

注意:Shell只是所有外壳程序的统称,例如在centos7当中的外壳程序名叫bash
Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
如何实现用户账号之间的切换
命令:su [用户名] 或者 su - [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
从root切换为普通用户

从普通用户切换为root

注意:
1)从普通账号切换为root账号时,指令当中你的root可以省略,因为root账号只有一个,并且su默认就是切换到root
2) 该用户也可以从一个普通用户切换为另一个普通用户,输入待切换用户的密码就可以了
3)切换用户之后,若想切回上次的用户,可通过Ctrl + D或exit实现
如何提升指令的权限
在某些情况下,我们只想提升当前指令的权限,那么没必要切换到超级用户
语法:sudo指令
功能:提升当前指令的权限
例如,我现在要以一名普通用户的身份,修改另一个普通用户的账号密码

当你输入密码之后,可能会得到以下提示

出现该提示就说明你没有被超级用户(root)添加到信用列表当中,所以该指令的权限得不到提升,一般都不会让普通用户更改普通用户的权限吧,那岂不是人人都是root,只有当你被超级用户添加到信任列表之后,你才拥有提升当前指令权限的功能

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



