开发工具

什么是 Shell

上一节:下一节:Shell 的功能

Shell:操作系统内核的外壳

通常来讲,计算机硬件是由运算器、控制器、存储器、输入/输出设备等硬件共同组成的,而让各种硬件设备各司其职且能协同运行的东西就是操作系统。


Linux严格意义上说是一个操作系统,我们称之为”内核(kernel)“,但我们一般用户,不能直接使用kernel,因为内核直接管理着硬件,系统内核对计算机来讲是太重要了,如果直接去使用内核可能就会修改内核中的某些参数,造成计算机使用的问题,并且直接使用会增加操作和学习计算机操作系统的难度。


所以一般用户通过基于系统调用接口开发的程序或服务来管理计算机(上面连接中的博客有简绍),也就是是通过内核的”外壳“程序,所谓的shell,来与内核沟通。


这里的Shell是一个统称,不同的操作系统内核对应的外壳是不相同的。

1.jpg

从技术的角度,shell的最简单的定义为:命令行解释器

采用如下图的命令行来执行程序。

2.jpg


什么是 Shell?—— 计算机的“翻译官”和“管家”

你可以把 Shell 想象成计算机的 “传令官” 或 “翻译官”,它的核心作用是:

1、接收你的命令(比如你敲的 ls、cd、grep 等)

2、翻译成计算机能懂的语言(底层是二进制指令)

3、让操作系统执行并返回结果


Shell 的直观比喻

比喻说明
“命令行管家”你告诉它任务(命令),它去调用系统资源完成(如找文件、装软件、查日志)
“用户和内核的桥梁”用户通过 Shell 和操作系统内核(真正管理硬件/内存的核心)交互
“脚本自动化工具”把重复操作写成脚本(.sh 文件),让 Shell 自动执行







上一节:下一节:Shell 的功能