Shell其实是一个有特殊功能的程序,主要是提供用户与内核交互操作的一个接口。它的位置介于用户界面和内核之间,工作流程是接收用户输入的命令并且进行解释(转换为计算机可以理解的机械码),然后将命令送入内核去执行。我们一般通过ssh远程登录系统并且打开shell,也有一些是直接在图形界面上直接打开终端的方式打开shell。后者主要用于ubuntu系统中。
这里主要介绍目前较为流行或者历史上存在的一些shell的种类,目前流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。
通过以下命令可以查看系统中安装了哪些shell程序,如图:
目前流行的
目前流行的shell有ash、bash、ksh、csh、zsh等,使用不同的shell的原因在于它们各自都有自己的特点,下面作一个简单的介绍:
# sh
sh其实是一个快捷方式。
# bash
这个是目前大多数Linux系统默认使用的shell,全名是BourneAgain Shell,一共有40个命令。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。如一般shell脚本的第一行会如下:
#!/bin/bash
bash还有一个特点,可以通过help命令来查看帮助。
# ksh
ksh有42条内部命令,与bash相比有一定的限制性。但是ksh主要用于unix例如HP-Uinx
# /bin/nologin
这个一般是指用户不能登录。
# dash
dash是为跑脚本而生的,具有比bash更快的效率,但是交互性能较差。现在主要用在Debian和Ubuntu上。其内部命令以及参数等与bash有一些差别,如果使用bash命令写的一些脚本可能会出错。
# tcsh & csh
把tcsh和csh放一起介绍是因为目前这两种sh其实是同一种,tcsh是csh的增强版,并且完全兼容csh。顾名思义csh,其实是具有C语言风格的一种shell,其内部命令有52个,较为庞大。目前使用的并不多。
# pdksh
pdksh是Oracle自身的一种shell,主要用在Oracle数据库管理上。一般是DBA才会使用这种shell。它与ksh不能共存,如果系统中安装了ksh,那么安装pdksh时会报错。
# zsh
最后介绍一目前Linux里最庞大的一种shell:zsh。它有84个内部命令,使用起来也比较复杂。一般情况下,不会使用该shell。
以后再为大家介绍为要使用shell以及shell脚本的优势以及限制。
本文出自 “精华荟萃” 博客,请务必保留此出处http://simy88.blog.51cto.com/7370552/1679288
原文地址:http://simy88.blog.51cto.com/7370552/1679288