购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1.2 Linux Shell简介

Linux是一个开源项目,由多个组织机构共同开发。同时,不同的组织机构为了自己的开源软件或项目,可能会开发出功能类似的软件。这些软件各有优缺点,用户可以自由选择。Shell也是如此,不同的组织机构开发了不同的Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验等。常见的Shell有sh、csh、tcsh、ash、nologin、zsh、bash等。

1.sh

sh的全称是Bourne Shell,由AT&T公司的Steve Bourne开发,并以他的名字命名。Bourne Shell是UNIX最初使用的Shell,并且在每种UNIX上都可以使用。Bourne Shell在Shell编程方面表现相当优秀,但在处理与用户的交互方面做得不如其他几种Shell。sh是第1个流行的Shell。

2.csh

在sh之后,另一个广为流传的Shell是由加州大学伯克利分校的Bill Joy设计的,这个Shell的语法有些类似于C语言,所以才得名为C Shell,简称为csh。其内部命令有52个,较为庞大。目前使用的并不多,已经被/bin/tcsh所取代。

3.tcsh

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

4.ash

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

5.nologin

nologin指用户不能登录。

6.zsh

zsh是一个Linux用户很少使用的Shell,这是由于大多数Linux产品的安装默认使用bash。几乎每一款Linux产品都包含zsh,通常可以用apt-get、urpmi或YUM等软件包管理器进行安装。它有84个内部命令,使用起来也比较复杂。

7.bash

最后重点介绍bash,bash是Linux的默认Shell,本书也基于bash编写。bash由GNU组织开发,是Bourne Shell的扩展,与Bourne Shell兼容,并且在Bourne Shell的基础上增加、增强了很多特性,可以提供命令补全、命令编辑和命令历史等功能。它还包含了很多C Shell和Korn Shell的优点,有灵活和强大的编辑接口,还有很友好的用户界面。尽管如此,bash和sh还是有一些不同之处。

(1)bash扩展了一些命令和参数。

(2)bash并不完全和sh兼容,它们的有些行为并不一致,但在大多数企业运维的情况下区别不大,在特殊场景下可以使用bash代替sh。

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

使用cat命令可以查看当前Linux的可用Shell,命令如下:

如果需要查看当前Linux的默认Shell,那么可以输出SHELL环境变量,命令如下: oL40d2KPvKkME7jxoFE+HyPtUaSyLolnDhILbfq/80zjvbcf0ube1ad6ApYHAwmc

点击中间区域
呼出菜单
上一章
目录
下一章
×