`
javatoyou
  • 浏览: 1101064 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

什么是SHELL?

 
阅读更多
操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
  shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shellscript(非交 互)方式执行。shellscript是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shellscript是命令行命 令简单的组合到一个文件里面。
  Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourneshell(sh)和Cshell(csh)。

交互式shell和非交互式shell
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

shell的类型
在UNIX中主要有两大类shell
Bourneshell(包括sh,ksh,andbash)
Bourneshell(sh)
Kornshell(ksh)
BourneAgainshell(bash)
POSIXshell(sh)
Cshell(包括cshandtcsh)
Cshell(csh)
TENEX/TOPSCshell(tcsh)

BourneShell
最初的UNIXshell是由StephenR.Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是 Bourneshell。Bourneshell是一个交换式的命令解释器和命令编程语言。Bourneshell可以运行为 loginshell或者loginshell的子shell(subshell)。只有login命令可以调用Bourneshell作为一个 loginshell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有 的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。

CShell
BillJoy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了Cshell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。

KornShell
有很长一段时间,只有两类shell供人们选择,Bourneshell用来编程,Cshell用来交互。为了改变这种状况,AT&T的 bell实验室DavidKorn开发了Kornshell。ksh结合了所有的Cshell的交互式特性,并融入了Bourneshell的语 法。因此,Kornshell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inlineediting)等功 能。KornShell是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一 个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。

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

POSIXShell
POSIXshell是Kornshell的一个变种.当前提供POSIXshell的最大卖主是Hewlett-Packard。在HP-UX11.0,POSIXshell就是/bin/sh,而bsh是/usr/old/bin/sh.

各主要操作系统下缺省的shell:
AIX下是KornShell.
Solaris和FreeBSD缺省的是Bourneshell.
HP-UX缺省的是POSIXshell.
Linux是BourneAgainshell.

shell是一个命令解析器,它解释用户输入的命令并且把它们送到系统的内核去执行。换句话说shell就是用户与操作系统对话的一个接口,我们发出一个命令,通过shell告诉系统让系统执行我们的命令。
分享到:
评论

相关推荐

    korn-shell脚本入门.docx

    2. 什么是Korn Shell?Korn Shell是AIX操作系统的缺省Shell,它允许用户与内核进行通信。 3. 如何编写Korn Shell脚本?编写Korn Shell脚本需要使用文本编辑器,如vi编辑器,首先需要添加Shell名称作为第一行,然后...

    shell十三问(shell十三问)

    1. **问:什么是Shell?** Shell是操作系统提供的一个命令行接口,允许用户输入命令并执行系统级别的操作。常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh、Tcsh和Zsh等。 2. **问:如何查看当前使用的Shell?...

    Shell基础——Shell入门资料

    1. **什么是Shell?** Shell是Linux系统中的一个程序,它提供了一个交互式环境,让用户通过文本命令来控制计算机。常见的Shell有Bash(Bourne-Again SHell)、Csh、Tcsh等,其中Bash是最广泛使用的。 2. **Bash ...

    轻松学用 Linux + shell 编程.pdf

    什么是 Shell? Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。为什么我们说 shell 是一种介于系统核心程序与使用者间的中介者呢?读过操作系统概论的读者...

    什么是Shell?Shell脚本基础知识详细介绍

    Shell,全称为外壳,是Unix或类Unix操作系统中的一种命令解释器,它为用户提供了一个与操作系统内核交互的界面。Shell不仅是一个命令行接口,它还是一种强大的程序设计语言,允许用户通过编写脚本来自动化一系列的...

    什么是shell

    ### 什么是Shell? Shell是计算机操作系统中的一个关键组成部分,它主要作为用户与操作系统内核之间的交互界面。在Unix和Linux系统中,Shell扮演着极其重要的角色。简而言之,Shell是一种命令行解释器,它接收用户...

    shell自动化运维.doc

    什么是Shell? Shell是一种命令行接口,用户可以通过Shell输入命令来与操作系统进行交互。Shell可以分为两大类:命令Shell和程序Shell。命令Shell用于执行系统命令,而程序Shell用于执行Shell脚本。 Shell的分类 ...

    Linux课件_shell程序设计

    1. **什么是Shell?为什么需要Shell?** - Shell是一种命令行解释器,它接收用户的输入,解析这些命令,并将其传递给内核执行。Shell提供了丰富的内置命令和工具,以及对系统资源的直接访问,提高了用户的工作效率...

    UNIX SHELL编程.rar

    **什么是SHELL?** SHELL是用户与UNIX或Linux内核之间的接口,它接收用户的输入并执行相应的命令。常见的SHELL类型包括Bash(Bourne-Again SHell)、C Shell、Korn Shell和Z Shell等。Bash是目前最广泛使用的SHELL,...

    分钟教你shell脚本入门PPT课件.pptx

    什么是 Shell? Shell 又称命令解释器,是用户与操作系统内核之间的接口。用户通过 Shell 向内核发送指令,内核再向硬件发送指令。Shell 版本众多,例如 Bourne Shell (sh) 、C Shell 、K Shell 等,每一种 Shell ...

    shell脚本的基础用法

    1. 什么是shell?shell是一个操作系统中的一个软件,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口系统中的命令,用shell去解释,shell接收系统回应的输出并显示其到屏幕中。 2. 什么是shell脚本?...

    shell启动项目

    - **什么是Shell?** Shell是操作系统提供的一种命令行接口,用户可以通过它与系统进行交互,执行各种操作。 - **什么是Shell脚本?** Shell脚本是一系列预定义的命令,保存在文本文件中,通过Shell解释器执行,...

    13_questions_of_shell, shell十三问--shell教程(markdown 版本).zip

    1. **什么是Shell?** Shell是一种命令行界面,允许用户通过输入命令来与操作系统进行交互。它是操作系统内核和用户之间的接口,提供了一种灵活的方式来运行程序、管理系统和执行自动化任务。 2. **Shell脚本是...

    吴天雄--shell知识点总结.doc

    1. **什么是 Shell?** Shell 是一个用 C 语言编写的程序,它的主要作用是提供一个用户界面,让用户能够方便地调用操作系统内核的服务。Shell 脚本则是由一系列文字命令组成的文件,用于自动化执行一系列系统操作。 ...

    Linux Shell 脚本攻略

    - **什么是Shell?** Shell是Linux操作系统中的一个命令解释器,它为用户提供了一个与操作系统内核交互的接口。 - **常见的Shell类型**:Bash(Bourne-Again SHell)、Sh、Csh、Ksh、Zsh等,其中Bash是最常用的一种...

    linuxshell

    #### 什么是Shell? 在Linux系统中,Shell是用户与操作系统内核之间的交互层。它接收用户的命令输入,并将其传递给内核执行。Shell还负责显示命令的执行结果,并提供一系列功能,如命令历史记录、别名定义等,以增强...

    基本的shell脚本学习资料

    什么是Shell? - **定义:** Shell是操作系统中用户与内核之间的接口,负责接收用户的命令并将它们传递给内核执行。 - **类比:** 可以将Shell比作人体的五官,它是用户与系统内核之间的“桥梁”。 ##### 2. Shell的...

    SHELL大马SHELL大马

    1. **什么是Shell?** Shell是Unix或类Unix系统中用户与操作系统之间的接口,它是一个命令解释器,接收用户的输入并执行相应的系统命令。 2. **主要功能:** - **命令行解析**:Shell解析用户输入的命令,并调用...

    shell编程13问

    ### 什么是Shell? Shell是用户与操作系统之间的接口,它是一个命令解译器,负责将用户输入的命令翻译给核心(kernel)处理,再将处理结果返回给用户。Shell在每次用户完成系统登录后启动,称为login shell或primary...

Global site tag (gtag.js) - Google Analytics