Linux中"Shell"与"Bash"的关系

Linux中"Shell"与"Bash"的关系

此文属于我在学习Linux中的学习记录,便于回头查找相应文档使用,大多数解释都为其它网站引用,也用来分享给大家做个参考,

1、认识Shell

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。1

基本上shell分两大类:
一:图形界面shell(Graphical User Interface shell 即 GUI shell)

二:命令行式shell(Command Line Interface shell ,即CLI shell)

我们常说的shell基本上可以说都为命令行式shell

Linux中"Shell"与"Bash"的关系
Shell在Linux系统中充当的是人与内核(硬件)之间的交互程序,用户通过Shell去命令这些内核(硬件),需要它去做些什么事,通过Shell命令去调用程序或服务完成某些工作。

2、认识Bash

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。2

简单来说,Bash属于Shell中的一种,是最为常见和在业界使用最为广泛的一种“翻译官”。现在包括红帽系统在内的许多主流Linux系统默认使用的终端就是Bash解释器。

3、Shell与Bash关系

上文已经简单提填写,Bash是属于Shell中的一种,常见的Shell工具在此列出一些供大家了解:sh、bash、csh、tcsh、ash 等

SHELL就是用命令来管理系统的一个接口,可以简单理解成类似于DOS的东西;

BASH是大多数LINUX发行版默认的SHELL,除BASH SHELL外还有C SHELL等其它类型的SHELL。

shell 是一个交互性命令解释器。shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行。
shell是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序。除了是一个命令中断器以外,shell还是一个程序设计语言。你可以编写shell可以解 释的程序(被称为源程序),这些源程序可以包含shell程序设计命令等等。shell除了解释命令以外,还有其他工作,它也可以配置和编程。
shell拥有自己的语言允许用户编写程序并以一种复杂方式运行。shell编程语言具有许多常用的编程语言的特征,例如:循环和控制结构等。用户可以生成像其他应用程序一样复杂的shell程序。
以下是shell功能的一个汇总:
查找命令的位置并且执行相关联的程序;
为shell变量赋新值;
执行命令替代;
处理 I/O重定向和管道功能;
提供一个解释性的编程语言界面,包括tests、branches和loops等语句。

bash是borne again shell的缩写,它是shell的一种,Linux上默认采用的是bash。
当你在命令行中敲入bash命令时,相当于进入bash环境,如果本身就是bash环境,那么就是进入一个子bash环境(相当于开了一个子进程)。3


  1. https://baike.baidu.com/item/shell/99702?fr=aladdin ↩︎

  2. https://baike.baidu.com/item/bash/6367661?fr=aladdin ↩︎

  3. https://www.cnblogs.com/cj2014/p/3887044.html ↩︎