Linux中shell的分类以及查看当前的shell

原创 2013年12月03日 20:34:55

DOS/Windows 与 Linux 的最重要的区别之一是 Linux 的命令 shell 是与操作系统相分离的一层。

目前流行的shell有ash、bash、ksh、csh、zsh,如下介绍:

bash:bash shell 是 Bourne shell 的一个免费版本,它是最早的 Unix shell,也是很多linux版本默认的shell。

csh :C shell 使用的是“类C”语法,借鉴了 Bourne shell 的许多特点,它由以William Joy为代表的共计47位作者编成,共有52个内部命令。该shell其实是指向/bin/tcsh这样的一个shell,也就是说,csh其实就是tcsh。

ksh:Korn shell 的语法与 Bourne shell 相同,同时具备了 C shell 的易用特点。由Eric Gisin编写,共有42条内部命令。该shell最大的优点是几乎和商业发行版的ksh完全兼容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了。

zsh :Z shell 是 Korn shell 的一个增强版本,是Linux最大的shell之一,由Paul Falstad完成,共有84个内部命令。如果只是一般的用途,是没有必要安装这样的shell

ash:ash shell是由Kenneth Almquist编写的,Linux中占用系统资源最少的一个小shell,它只包含24个内部命令,因而使用起来很不方便。

tcsh :TC shell 是 C shell 的一个增强版本,与 C shell 完全兼容。

Linux中查看可以使用的shell

查看/etc/shells文件可得到系统中可用的shell的完整路径

例如: more  /etc/shells

或者使用 : chsh  -l    (在我的ubuntu中是无法显示的,man帮助信息中是可以查到这个命令的)

Linux中查看当前使用的shell

方法一:echo  $SHELL

方法二:输入系统不认识的命令,获取提示(在某些shell中没有这样的提示)

方法三:一般来讲/etc/passwd文件中最后一项是每个用户使用的shell,但不见得每个都是shell,可以通过以下命令来查看:

tail  5  /etc/passwd

方法四:使用命令echo $0  (在bash中和ksh中验证过)

方法五:通过ps命令查看(建议使用,使用于多个linux系统)

linux中shell的切换

可以直接输入shell的名字如,我要启动sh

直接输入:sh 或者 /bin/sh  这样有启动了一个Shell,这个Shell在最初登录的那个Shell之后,称为下级的Shell或子Shell。使用命令:exit就可以退出这个子shell。

linux中修改默认shell

输入 chsh 命令,会提示输入密码:


输入你要改变shell的绝对路径名,注销后重新登录即可改变默认shell。

或者直接使用 chsh -s /bin/dash

这样下次我们启动系统的时候,通过ps命令查看,默认shell已经改变了。


参考地址:http://blog.163.com/zmhot88@126/blog/static/169846647201082683846279/

http://waterlife.blog.sohu.com/10439596.html

http://book.51cto.com/art/201106/271627.htm

在Groovy中使用字符串

Groovy支持两种类型字符串:一般的Java字符串,它是java.lang.String的实例;和GStrings,它是groovy.lang.GString的实例,并且允许文本中包含占位符。GSt...

Groovy集合(map)

声明mapMap的规范和上一篇博客提到的list类似,helist一样,Map保证可以通过下标来获取或者设置值,不同的是map可以使用任何类型作为下标操作符的参数,而list仅仅支持整数,list知道...

linux命令之查看当前shell环境变量-env

linux下运行程序进程经常出现由于环境问题导致的程序找不到动态库的情况,因为一般程序是通过ld_library_path这个环境变量查找用户动态库的。 不过也可以指定用户定义环境变量,还有就是一个...

编写shell脚本查看linux当前各用户的cpu和memory消耗比例

#!/bin/bash # # view the cpu and memory consumption of each user at the current time. # chenqy 20...

Linux命令exit - 退出当前shell

用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。   常用参数 格式:exit n 退出。设置退出码为n。(Cause the sh...

./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell

最近遇到一个有趣的问题,让我搞清楚Linux如何选择当前执行脚本的shell 执行cts的的 media stress test 需要安装 android-cts-media-1.0.zip 把这...
  • span76
  • span76
  • 2013年09月10日 15:51
  • 2710

linux shell 获取当前正在执行脚本的绝对路径

常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令的真实含义,当前的工作目录,这里没有任何意思说明...
  • fzs333
  • fzs333
  • 2014年06月25日 10:37
  • 818

Linux命令之exit - 退出当前shell

用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。   常用参数 格式:exit n 退出。设置退出码为n。(Cause the sh...

Linux exit --退出当前shell

用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。   常用参数 格式:exit n 退出。设置退出码为n。(Cause the shell to exi...

linux命令介绍:source -- 在当前shell环境中执行指定文件中的命令

source FileName   作用:在当前bash环境下读取并执行FileName中的命令。   注:该命令通常用命令“.”来替代。   如:source .bash_rc 与...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux中shell的分类以及查看当前的shell
举报原因:
原因补充:

(最多只允许输入30个字)