1分钟理解shell是什么

说起来shell是什么?

Shell是“用于与操作系统对话的接口”,是控制命令等的“环境”。
在这里插入图片描述
让他们认为以这种形式覆盖Linux核心内核的外壳就是shell,这很容易理解。
如果没有这个shell,即使登录,也不会显示任何东西,或者会返回到登录屏幕。也就是说,几乎什么都做不到。我认为shell、内核和终端变得越来越难理解,这是一种关系,如下图所示。
在这里插入图片描述
有shell可以接受命令,并与操作系统交互。在CUI环境中,shell是最熟悉的界面。Linux中当前常见的shell是“bash”。

Shell脚本和Unix哲学

在“Unix哲学”中,

  • 用管道等连接一个小命令,使命令像过滤器一样工作。
  • 基本上输出是纯文本,考虑到可移植性,使用shell脚本。
    有这样的理念。因为Unix原本就是被当作很小很小的东西。

Linux也有很多与Unix哲学相通的东西。实际上,即使只使用管道和重定向,也可以实现各种各样的事情,但是shell脚本可以通过进一步控制来实现更高级的事情。

Shell脚本是一种编程

Shell脚本可以说是“shell可以解释的剧本”。更简单地说,它可以被认为是文档,使得命令可以并排执行。例如,即使是以下内容,也可以充分地成为shell脚本。

echo 'shell'
echo 'script'
echo 'test'

只是让它显示一个字符串,但这也足够shell脚本。除此之外,还可以编程。Linux shell可以具有变量,分支和重复等控制结构。

此外,shell脚本是在文本中记录的,如果有相同的shell和命令运行的环境,因为无论放在哪里都可以运行,所以它是具有非常方便的可移植性。

这是一种组装积木的感觉

有些人可能一听到编程就会引起拒绝反应。然而,shell脚本根本不难。可以说,与记住其他编程语言相比,几乎没有什么困难。更坦率地说,像非常复杂的东西最好不要用shell脚本编写。这是一种基本上排列和控制命令并使工作自动化的手段,如果是比喻的话,就是“以积木的感觉把命令上堆起来”的手段。

通过“条件分支”有时切换这些命令,或者通过“重复”执行循环等控制。虽然并不是没有意识到算法和数据结构等,但是与作为系统描述语言的C语言和Java语言等相比,是压倒性的容易。首先,由于精细算法等在命令水平上被吸收,所以即使不知道内容,只要知道输入和输出的结果,往往会有办法。

猜你喜欢

转载自blog.csdn.net/qq_18191333/article/details/107534035