几种常见的Shell:sh、bash、tcsh、csh、ash的区别

@Author  : Spinach | GHB
@Link    : http://blog.csdn.net/bocai8058

文章目录

      • 概念
      • sh
      • csh
      • tcsh
      • ash
      • bash
      • 查看 Shell

概念

Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux。例如:

  • Linux 内核最初由芬兰黑客 Linus Torvalds 开发,后来他组建了团队,Linux 内核由这个团队维护。
  • GNU 组织开发了很多核心软件和基础库,例如 GCC 编译器、C语言标准库、文本编辑器 Emacs、进程管理软件、Shell 以及 GNOME 桌面环境等。
  • VIM 编辑器由荷兰人 Bram Moolenaar 开发。

Windows、Mac OS、Android 等操作系统不一样,它们都由一家公司开发,所有的核心软件和基础库都由一家公司做决定,容易形成统一的标准,一般不会开发多款功能类似的软件。而 Linux不一样,它是“万国牌”,由多个组织机构开发,不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件,它们各有优缺点,用户可以自由选择。Shell就是这样的一款软件,不同的组织机构开发了不同的。

Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验。

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

sh

sh的全称是Bourne shell,由AT&T公司的Steve Bourne开发,为了纪念他,就用他的名字命名了。

sh是UNIX上的标准shell,很多UNIX版本都配有sh。sh是第一个流行的Shell。

csh

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

tcsh

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

ash

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

bash

bash shell是Linux的默认shell。

bash由GNU组织开发,保持了对sh shell的兼容性,是各种Linux发行版默认配置的 shell。

bash兼容sh意味着,针对sh编写的Shell代码可以不加修改地在bash中运行。

尽管如此,bash和sh还是有一些不同之处:

  • 一方面,bash扩展了一些命令和参数;
  • 另一方面,bash并不完全和sh;
  • 兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用bash代替sh。

查看 Shell

Shell是一个程序,一般都是放在/bin或者/user/bin目录下,当前Linux系统可用的Shell都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用cat命令查看它。

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
# echo $SHELL
/bin/bash

引用:https://blog.csdn.net/whatday/article/details/78929247


你可能感兴趣的:(Linux)