Shell(本身就是个程序)的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。
由于历史原因,UNIX系统上有很多种Shell:
1. sh(Bourne Shell):由Steve Bourne开发,各种UNIX系统都配有。
2. csh(C Shell):由Bill Joy(软件爱迪生)开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne Shell所不支持的功能:作业控制,命令历史,命令行编辑。
3. ksh(Korn Shell):由David Korn开发,向后兼容sh的功能,并且添加了引入的新功能,是目前很多UNIX系统标准配置的Shell,在这些系统上往往是指向的符号链接。
4. tcsh(TENEX C Shell):是的增强版本,引入了命令补全等功能,在FreeBSD、Mac OS X等系统上替代了csh。
5. bash(Bourne Again Shell):由GNU开发的Shell,主要目标是与POSIX标准保持一致,同时兼顾对的兼容,从和借鉴了很多功能,是各种Linux发行版标准配置的Shell,在Linux系统上往往是指向的符号链接
文件etc/shells给出了系统中所有已知(不一定已安装)的Shell,除了上面提到的Shell之外还有很多变种。
leon@leon-desktop:~$ cat /etc/shells # /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen
|
用户的默认Shell设置在/etc/passwd文件中,
leon:x:1000:1000:leon,,,:/home/leon:/bin/bash
|
用户leon从字符终端登录或者从图形终端登录,就会执行/bin/bash,如果要切换到其它Shell,可以在命令行输入程序名,例如:sh。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1081) | 评论(0) | 转发(0) |