有关Shell的一些

来源:互联网 发布:淘宝达人怎么申请大v 编辑:程序博客网 时间:2024/05/16 11:56
在UNIX中主要有两大类shell
Bourne shell (包括 sh,ksh,and bash)
  Bourne shell ( sh)
  Korn shell ( ksh)
  Bourne Again shell ( bash)
  POSIX shell ( sh)
C shell (包括 csh and tcsh)
  C shell ( csh)
  TENEX/TOPS C shell ( tcsh)

各主要操作系统下缺省的shell:
  AIX下是Korn Shell.
  Solaris缺省的是Bourne shell.
  FreeBSD缺省的是C shell
  HP-UX缺省的是POSIX shell.

  Linux是Bourne Again shell.

有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX。

bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。

POSIX shell 是Korn shell的一个变种.


在 BASH 中要切换到 C Shell下 ,只要直接输入对方 Shell 的名字 csh 就可以了。我们用这种方法启动一个新 Shell后 ,使用 ps 命令查看进程就会发现多出了一个新的 Shell 进程 , 而这个新进程的 ppid( 父进程编号) 就是原来 Shell 的 pid ( 进程编号 ) 。也就是说 , 新启动的 Shell 其实是原来 Shell 的子 Shell 。使用 exit 命令可以退出当前 Shell 。
如果不希望以启动子 Shell 的方法来进行 Shell 切换的话 , 可以使用如下切换方式:
exec Shell名
比如 ,我们在原始Shell下要切换到C Shell,就输入:
exec csh
这时我们检查一下进程 ,发现没有多出子Shell的进程 ,已经来到了C Shell下。


原创粉丝点击