Shell是一个命令行解释器,它接收应用程序或用户命令,然后调用操作系统内核。
1.什么是shell Shell是一个命令解释器,它在操作系统的最底层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到shell的回应),或非交互(脚本)的方式。

shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统的命令。
2.shell的分类
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。
Bash: Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
Linux提供的Shell解析器可以通过以下命令查看:
[root@iz2zefozq9h39txdb8s7npz ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
[root@iz2zefozq9h39txdb8s7npz ~]#
Linux下支持的shell有上面几种,默认使用bash。我们可以键入shell的名字来切换shell,例如:
[root@iz2zefozq9h39txdb8s7npz ~]# sh
sh-4.2# ls
download
sh-4.2# exit
exit
切换后我们可以发现有些提示符已经发生了变化,有些没有发生变化,我们可以键入exit来退回到我们基本的bash中。