首页 » Linux » 正文

[shell] 常用的几种shell解释器:sh,bash,zsh,ash,csh

转自: https://blog.csdn.net/SoaringLee_fighting/article/details/82426943 

1、参考:

https://blog.csdn.net/gatieme/article/details/52741221
https://blog.csdn.net/lixinze779/article/details/81012318
https://blog.csdn.net/whatday/article/details/78929247
http://man.linuxde.net/sh
https://blog.csdn.net/SoaringLee_fighting/article/details/78759448

2、常用shell

Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。
常见的 Shellshbashcshtcshashzsh 等。

sh

sh 的全称是 Bourne shell,由 AT&T 公司的 Steve Bourne开发,为了纪念他,就用他的名字命名了。
shUNIX 上的标准 shell,很多 UNIX 版本都配有 shsh 是第一个流行的 Shell

csh

csh 之后另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计的,这个 shell 的语法有点类似C语言,所以才得名为 C shell ,简称为 csh
Bill Joy 是一个风云人物,他创立了 BSD 操作系统,开发了 vi 编辑器,还是 Sun 公司的创始人之一。
BSDUNIX 的一个重要分支,后人在此基础上发展出了很多现代的操作系统,最著名的有 FreeBSDOpenBSDNetBSD,就连 Mac OS X 在很大程度上也基于BSD

tcsh

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

ash

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

bash

bash shellLinux 的默认 shell,本教程也基于 bash 编写。
bashGNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shellbash 兼容 sh 意味着,针对 sh 编写的 Shell 代码可以不加修改地在 bash 中执行,尽管如此,bashsh 还是有一些不同之处:
一、bash 扩展了一些命令和参数;
二、bash 并不完全和 sh 兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用 bash 代替 sh
查看 Shell
Shell 是一个程序,一般都是放在/bin或者/user/bin目录下,当前 Linux 系统可用的 Shell 都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

通过 cat 命令来查看当前 Linux 系统的可用 Shell:

$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
在现代的 Linux 上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。
如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:
$ echo $SHELL /bin/bash 输出结果表明默认的 Shellbash

发表评论