您当前的位置:首页 > 计算机 > 编程开发 > Shell

常见的shell介绍(与bash功能类似的应用程序有哪些)

时间:03-25来源:作者:点击数:

一、为何会有那么多种类的shell?

我们知道,Windows、Mac OS、Android 等操作系统由一家公司开发,所有的核心软件和基础库都由一家公司做决定,容易形成统一的标准,一般不会开发多款功能类似的软件。

而 Linux 是一个开源的操作系统,由多个组织机构开发,不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件,它们各有优缺点,用户可以自由选择。

Shell 就是这样的一款软件(上篇文章讲到,Shell既是脚本编程语言,也是一个命令行程序,或者说一款软件),不同的组织机构开发了不同的 Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验。

常见的 Shell 有sh、bash、csh、tcsh、ash等。

二、各种shell的简介

1、sh

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

(2)sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。

(3)sh 是第一个流行的 Shell。

2、 csh

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

(2)Bill Joy 是一个风云人物,他创立了 BSD 操作系统,开发了 vi 编辑器,还是 Sun 公司的创始人之一。

(3)BSD 是 UNIX 的一个重要分支,后人在此基础上发展出了很多现代的操作系统,最著名的有 FreeBSD、OpenBSD 和 NetBSD,就连Mac OS X 在很大程度上也基于BSD。

3、tcsh

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

4、ash

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

5、bash

(1)bash shell 是 Linux 的默认 shell

(2)bash 由 GNU 组织开发,保持对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shell。bash兼容sh ,这意味着针对sh编写的 Shell 代码可以不加修改地在 bash 中运行。

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

三、如何查看当前系统默认的Shell?

“SHELL”是 Linux 系统中的一个环境变量,它指明了当前使用的 Shell 程序的位置,也就是使用哪一个 Shell。我们可以使用“echo $SHELL”查看当前Linux 的默认 Shell。

root@ubuntu:/# echo $SHELL
/bin/bash
root@ubuntu:/# 

四、shell程序的存放路径

之前提到Shell 是一个应用程序,它一般都是存放在/bin或者/user/bin目录下。

当前 Linux 系统可用的 Shell 都记录在/etc/shells这个文件中,该文件是一个纯文本文件,可以使用 cat 命令查看它。

root@ubuntu:/etc# cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
root@ubuntu:/etc#

另外,在现代的 Linux 上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。

root@ubuntu:/bin# ll bash 
-rwxr-xr-x 1 root root 986672 May 16  2017 bash*
root@ubuntu:/bin# ll sh
lrwxrwxrwx 1 root root 4 Sep 22  2018 sh -> bash*
root@ubuntu:/bin#
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门