0
点赞
收藏
分享

微信扫一扫

shell 的历史

沐之轻语 2022-09-14 阅读 140


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。

举报

相关推荐

0 条评论