shell是什么和shell种类

shell是什么?

Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言。

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。

shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,比如拷贝命令cp和移动命令rm,是存在于文件系统中的某个目录下的单独的程序。对用户来讲,不必关心一个命令是建立在shell内部还是单独的程序。

shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序,然后shell在搜索路径里寻找这些应用程序。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。

shell的另一个特性是它自身是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。

shell的种类?

Linux中的shell有多种类型,其中最常用的几种是bourne shell(sh)、c shell(csh)、korn shell(ksh)。三种shell各有优劣。sh是Unix最初使用的shell,并且在每种Unix上都可以使用。sh在shell编程方面相当优秀,但在处理与用户的交互方面做得不如csh和ksh。

Linux默认的shell是bourne again shell(bash),它与sh完全向后兼容。bash放在bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能它还包含了很多csh和ksh中的优点,有灵活和强大的编程接口,同时又有友好的用户界面。

因此,我们至少得知道sh和bash都是Linux上的默认shell,而bash是sh的升级版。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 13,459评论 3 53
  • 一,shell题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工...
    架构师小秘圈阅读 12,774评论 3 70
  • 本来是想看一些关于xss的相关内容,看着看着突然觉得还是要shell也一起看的好,因此就有了这边文章(浅尝辄止无笑...
    yyshang阅读 2,939评论 0 1
  • 概述 首先,咱们来了解一下,什么是Shell。操作系统内核给我们提供了各种接口,同时也提供了各种用户层的库,理论上...
    keysaim阅读 5,278评论 0 0
  • 每个学校几乎都会有个不成文的规定,那就是刚刚开学后,进行一场军训,杨朔清的班级也不例外。 “那个,大家回家后,大至...
    浪荡过客阅读 1,657评论 0 1