Linux shell:sh csh tcsh ash bash dash zsh

Shell :贝壳,寓意类似内核的壳,Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 脚本(shell script):shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,通常说“shell编程”都是指 shell 脚本编程,不是指开发 shell 自身。

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

csh:sh 之后另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计的,这个 shell 的语法有点类似C语言,所以才得名为 C shell ,简称为 csh

tcsh:tcsh 是 csh 的增强版,加入了命令补全功能,提供了更加强大的语法支持。

ash:一个简单的轻量级的 Shell,占用资源少,适合运行于低内存环境,与bash shell 完全兼容。

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

dash (Debian Almquist shell):一种 Unix shell。它比 Bash ,只需要较少的磁盘空间,但是它的对话性功能也较少。它由 NetBSD版本的Almquist shell (ash)发展而来,于1997年由赫伯特·许(Herbert Xu)移植到Linux上,于2002年改名为 dash。

sh与bash区别:

sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。

bash和zsh的区别:

二者均是shell的一种,zsh能基本完美兼容bash的命令,并且使用起来更加优雅。由于bash或zsh本质上都是解释器,他们所共同服务的是shell语言,因此在命令语法上基本相同

当前 Linux 系统可用的 Shell 都记录在/etc/shells文件中,通过 cat 命令来查看当前 Linux 系统的可用 Shell:$ cat /etc/shells

zsh/bash切换:

chsh -s /bin/bash

chsh -s /bin/zsh

你可能感兴趣的:(Linux,bash,linux,dash)