请问共有几种shell,他们都有什么区别?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 17:30:26
请问共有几种shell,他们都有什么区别?
请问共有几种shell,他们都有什么区别?
请问共有几种shell,他们都有什么区别?
$SHELL是一个环境变量,它记录用户所使用的Shell类型.你可以用命令: # Shell-name 来转换到别的Shell,这里Shell-name是你想要尝试使用的Shell的名称,如ash等.这个命令为用户又启动了一个Shell,这个Shell在最初登录的那个Shell之后,称为下级的Shell或子Shell. 使用命令: # exit 可以退出这个子Shell.使用不同的Shell的原因在于它们各自都有自己的特点,下面做一个简单的介绍: 1.ash ash Shell是由Kenneth Almquist编写的,是Linux中占用系统资源最少的一个小Shell,它只包含24个内部命令,因而使用起来很不方便. 2.bash bash是Linux系统默认使用的Shell,它由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的缩写,内部命令一共有40个.Linux使用它作为默认的Shell是因为它有以下的特色: (1)可以使用类似DOS下面的doskey的功能,用上下方向键查阅和快速输入并修改命令. (2)自动通过查找匹配的方式,给出以某字串开头的命令. (3)包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助. 3.ksh ksh是Korn Shell的缩写,由Eric Gisin编写,共有42条内部命令.该Shell最大的优点是几乎和商业发行版的ksh完全相容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了. 4.csh csh是Linux比较大的内核,它由以William Joy为代表的共计47位作者编成,共有52个内部命令.该Shell其实是指向/bin/tcsh这样的一个Shell,也就是说,csh其实就是tcsh. 5.zch zch是Linux最大的Shell之一,由Paul Falstad完成,共有84个内部命令.如果只是一般的用途,是没有必要安装这样的Shell的.Bourne Shell (/usr/old/bin/sh)
C Shell (/usr/bin/csh)
Korn Shell (/usr/bin/ksh)
POSIX Shell (/usr/bin/sh)
①输入一个系统不认识的命令(如#fuck_pig)获得系统提示
②#e cho $0 (适用:sh/ksh)
③#ps |grep $$|awk ‘{print $4}’
④#e cho $SHELL(用户默认的Shell,但不实时反映当前shell)还有在你的/etc/shells中你可以看到更多的shell:
# /etc/shells: valid login shells/bin/ash/bin/csh/bin/sh/usr/bin/es
/usr/bin/ksh/bin/ksh/usr/bin/rc
/usr/bin/tcsh/bin/tcsh/usr/bin/zsh/bin/sash/bin/zsh/usr/bin/esh/bin/dash/bin/bash/bin/rbash不同的 shell 有著不同的功能,且也彼此各異、或說"大同小異".
常見的 shell 主要分為兩大主流:sh:burne shell (sh)