Linux系统篇,指令(四):shell命令及运行原理

系列文章目录

第一章 Linux指令的认识


文章目录


前言

本节为学习Linux指令的第四节内容,本节知识本应与第三节捆绑,但由于本人对学习内容的错误认识,造成分节错误。废话不说了,让我们开始学习Linux的shell机制。


一、认识命令行成分

命令行由四部分组成,如图:

#为提示符号,并且是root专属的,普通用户提示符则为"$"。命令行不是系统输入输出的接口,其实它是一个叫外壳程序提供打印的以实现我们的操作


二、外壳系统与操作系统内核

2.1 外壳系统

外壳系统又名Shell,是在外部的保护系统,负责对其内部的操作系统内核进行各种操作。

Shell:外壳,包裹在内核外面,负责接收用户命令、翻译给内核执行,是人跟内核沟通的桥梁。

我们平常在命令行上输入的内容,其实本质是字符串 ,这些字符串会被外壳系统接受并转为可运行指令发送给内核,从而执行功能,并将结果返回输出。

从技术⻆度,Shell的最简单定义:命令⾏解释器(commandInterpreter)主要包含:

  • 将使⽤者的命令翻译给核⼼(kernel)处理。
  • 同时,将核⼼的处理结果翻译给使⽤者。

2.2 操作系统内核

操作系统内核简称内核,是接受并执行命令的关键结构,能够负责数据的改变。

内核(Kernel):系统内核,负责底层硬件管理、进程、内存、文件系统,躲在底层不直接跟人交互。


三、外壳存在的意义及在Linux中的体现

****那我们为什么不直接向内核操作,而使用外壳处理呢?****想理解这个问题就得从两者关系入手。

3.1 方便操作

我们用小故事来比喻这两者之间的关系: 小王是精通程序操作的程序员,想找对象但由于内向不敢搭讪认识,于是找媒婆想跟之前的同学小黑说媒,但媒婆去找小黑,小黑拒绝了这个亲事,王婆将结果告诉小王,这件事就结束了。

这个故事可以类比Linux内容:

故事身份 类比系统 人物做法 类比系统
小王 用户 喜欢小黑 输入命令
王婆 外壳 向小黑说媒 / 告诉小王结果 外壳将命令转交给内核 / 返回结果信息
小黑 操作内核 拒绝亲事 命令执行出错

那么我们就知道了外壳存在的意义之一:就是帮助用户在不熟悉内核的具体运行规则情况下,实现命令操作------即方便用户操作

3.2 保护内核

再来一个故事新版本: 小王知道被拒绝后,还是要求媒婆说媒:非小黑不娶,媒婆犟不过就又去小黑家,但远远的看见小黑和她的家人在和小白一起开心吃饭,如同一家人,媒婆不想破坏人家就直接回去了。

这个故事可以类比Linux内容:如用户在输入命令时,如果命令不合理,外壳就会拦截这个命令,防止对内核造成损害。

那么我们就知道了外壳存在的意义之二:防止用户执行不合理的命令对环境造成破坏------即保护内核

3.3 实现多线程

再来一个故事新版本: 小王还是不同意这个结果,仍然找媒婆取小黑家说媒,小王爸给媒婆说:你就去吧装装样子就行了,媒婆为了即干事又不破坏自己的招牌,于是找了一个实习生去干这件事,这样无论成败都不会影响自己,而且还可以处理自己的事情。

这个故事可以类比Linux内容:这个自己+实习生 就是线程的底层思想,这也是外壳的高效所在------即多线程

3.4 shell体现

shell只是一个统称,在Linux centos中这个命令行解释器叫做bash,在登陆后就会自动打开,并一直循环处理(shell和bash就是媒婆与王婆的区别,还有sh、xsh等)。


四、通用体现

对⽐windowsGUI,我们操作windows不是直接操作windows内核,⽽是通过图形接口,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。

shell 对于Linux,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。

还有安卓手机,它的底层就是Linux,外壳安卓就是这样封装后的命令行解释器。


总结

本节的知识就到这里了,今后的学习中我们还会遇到shell,学习它的底层、甚至写出一个自己的外壳,指令篇就到这里了,下一节将会开启权限的讲解。

相关推荐
绿虫光伏运维4 小时前
光伏运维精细化管理,解锁电站收益最大化
大数据·运维·人工智能·光伏业务
鬼蛟4 小时前
Nginx
运维·nginx
leoZ2314 小时前
解决 CentOS7+vsftpd 新建用户登录失败 + ls 卡住问题
运维·服务器
aningx5 小时前
NatPierce & Sunshine systemctl 服务配置指南
linux
消失的旧时光-19435 小时前
为什么 Linux / Android 系统里全是 struct + 函数指针?—— 一篇讲透 C 语言如何实现面向对象(OOP)
android·linux·c语言
一拳一个娘娘腔5 小时前
入门必看:CVE-2026-31431(Copy Fail)漏洞全解析,700字节脚本拿下Root权限
linux·安全
qinyia5 小时前
Rocky Linux 9 源码编译 Asterisk 20 + FreePBX 17 搭建小型呼叫中心
linux·运维·人工智能
艾莉丝努力练剑5 小时前
【Linux网络】Linux 网络编程入门:TCP Socket 编程(上)
linux·运维·服务器·网络·tcp/ip·计算机网络
Konwledging5 小时前
Linux图形栈
linux