`
javatoyou
  • 浏览: 1021658 次
  • 性别: 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告诉系统让系统执行我们的命令。
分享到:
评论

相关推荐

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

    主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell、有多少种Shell、一个Shell脚本代码实例,需要的朋友可以参考下

    轻松学用 Linux + shell 编程.pdf

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

    shell是什么?shell实现原理分析基于MM32 MCU的shell脚本源码.docx

    shell是什么?shell实现原理分析基于MM32 MCU的shell脚本源码.docx

    解决idea would you like to install a shell script formatter?的问题 直接下载 shfmt.zip

    shfmt_v3.1.2_windows_amd64.exe shfmt_v3.1.2_windows_386.exe 解决idea would you like to install a shell script formatter?的问题

    B shell与 C shell的区别

    B shell与 C shell的区别 ; B shell的详解和C shell 的详解

    shell shell练习 shell入门

    shell shell练习 shell入门 shell shell练习 shell入门

    shell算法shell算法shell算法

    shell排序shell排序shell排序shell排序shell排序shell排序shell排序

    shell讲义shell讲义

    shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义shell讲义...

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    本文整理了一份Linux shell学习笔记及...为什么要学习和使用shell? Shell属于内置的脚本 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学

    Linux 下 Shell的工作原理

    什么是shell  Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。  shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体...

    Shell源码(Shell源码)

    Shell源码Shell源码Shell源码Shell源码Shell源码Shell源码Shell源码Shell源码Shell源码Shell源码

    什么是shell

    什么是shell什么是shell什么是shell

    linux shell的简单实现

    这是一个在linux下实现的shell的简单程序,可以解析除了内键命令如cd,umask等以外的命令(不懂的什么叫内键命令,可以上网查),也可以用到重定向,管道符,喜欢的话,就下载把!~

    sshshell.zip

    sshshell ssh shell 服务器 远程连接 FTP for mac ssh shell 服务器 远程连接

    shell十三问

    一、为何叫做 shell ? 1 二、shell prompt(PS1) 与 Carriage Return(CR) 的关系? 2 三、別人 echo、你也 echo ,是问 echo 知多少? 3 四、 " "(双引号) 与 ' '(单引号)差在哪? 6 五、 var=value...

    shell 编程shell 编程

    shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南

    shell语言编程shell语言编程

    shell shellshellshell shell shell shell

    shell高级编程 shell的经典教程

    shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。  ...

Global site tag (gtag.js) - Google Analytics