sh、bash和zsh区别

简介

Shell是一种脚本语言,是用户使用Linux的桥梁,要让这些脚本语言run起来,就必须要有解释器来执行这些脚本。而sh、bash、zsh就是脚本解释器,习惯上把它们陈祚一种shell,我们常说有多少种shell,其实说的就是shell脚本解释器。

sh

Bourne Shell,是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。

bash

Bourne-Again Shell,是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。

zsh

也称为Z shell,是Bourne Shell(sh)的扩展版本,具有大量新功能,并支持插件和主题。 由于它基于与Bash相同的shell,因此ZSH具有许多相同的功能,并且切换是轻而易举的。

区别

1.sh是bash的一种特殊模式,sh就是开启了POSIX标准的bash,/bin/sh 相当于 /bin/bash --posix。形象一点的描述就是sh遵循POSIX规范:当某行代码出错时,不继续往下解释,bash就算出错,也会继续向下执行。
2.zsh比bash更强大,功能也更加完善,但是配置比较复杂,导致流行度不是很高。但是有优秀的oh-my-zsh加持导致这个事情变得更加的容易。

PingD

PingD

一个阶段一个目标,多冷静下来思考思考
Chengdu.China