百度上关于shell的回答,觉得讲的不错,特此收藏!

操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解
释你的输入,并且处理各种各样的操作系统的输出结果。  shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输
入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被
重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。  Shell基本上是一个命令解释器,类似于DOS下的command.com
。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。交互式shell和非交互式shell 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交
互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非
交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。shell的类型在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)Bourne Shell 最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourne shell。Bourn
e shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有log
in命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有
的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。C Shell Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把AL
GOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。Korn 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——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。Bourne Again Shell (bash) bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slac
kware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。POSIX Shell POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就
是/bin/sh,而bsh是/usr/old/bin/sh.各主要操作系统下缺省的shell: AIX 下是Korn Shell. Solaris和FreeBSD缺省的是Bourne shell. HP-UX缺省的是POSIX shell. Linux是Bourn
e Again shell.【TIP】 #!/usr/bin/sh的用途 shell script的第一行一般都是#!/usr/bin/sh或#!/usr/bin/ksh等,它的用途就是指出本脚本是用的哪种shel
l写的,执行时系统应该用哪种shell来解释执行它。附:LINUX系统的shell原理Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向
Linux传递命令时,内核会做出相应的反应。   shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用
程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个
目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以
是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目
录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部
命令或应用程序将被分解为系统调用并传给Linux内核。shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如
函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell
是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或
者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。我们来实习一下shell是如何工作的。$ make workmake:***No rule to make target ‘work’. Stop.$注释:make是系统中一个命令的名字,后面跟着命令参数。在接收到这个命令后,shell便执行它。本例中,由于输入的命令参数不正确,
系统返回信息后停止该命令的执行。在例子中,shell会寻找名为make的程序,并以work为参数执行它。make是一个经常被用来编译大程序的程序,它以参数作为目标来进行编
译。在“make work”中,make编译的目标是work。因为make找不到以work为名字的目标,它便给出错误信息表示运行失败,用户又回到系统提
示符下。另外,用户键入有关命令行后,如果shell找不到以其中的命令名为名字的程序,就会给出错误信息。例如,如果用户键入:$ myprogbash:myprog:command not found$可以看到,用户得到了一个没有找到该命令的错误信息。用户敲错命令后,系统一般会给出这样的错误信息。

操作系统接口shell相关推荐

  1. POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )

    POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标 ...

  2. 20961操作系统接口

    操作系统接口 9.1  用 户 接 口 9.1.1  字符显示式联机用户接口 不同的OS,其联机用户接口是不同的,即它们的命令形式和用法各不相同,甚至在同一系统中,命令的不同形式构成了不同的用户界面, ...

  3. linux操作系统 第09章 操作系统接口

    第9章  操作系统接口 ( 好多人看这篇博客,应该是为了 9.1.2  操作系统的接口 那段描述吧,不知道是不是你们想要的答案 ... ... ) 9.1  操作系统接口概述 9.1.1  作业与作业 ...

  4. 【操作系统】第九章-操作系统接口

    九.操作系统接口 前言 操作系统作为计算机系统资源的管理者,对系统中的所有硬件和软件资源进行统一的管理和操纵.无论是用户(程序)或OS的外层软件,凡是涉及到系统资源的有关操作,都必须作为服务请求提交给 ...

  5. TUE.操作系统及 Shell 命令

    TUE.操作系统及 Shell 命令 操作系统相关 单用户模式破解 root 密码 在 GRUB 界面按 e 进入内核 rw init=/sysroot/bin/sh ctrl + x chroot ...

  6. [No000035]操作系统Operating System之OS Interface操作系统接口

    接口(Interface) 仍然从常识开始- 日常生活中有很多接口:电源插座:汽车油门- 那什么是接口? 连接两个东西.信号转换.屏蔽细节- Interface: electrical circuit ...

  7. 操作系统接口的定义与实现

    一.什么是操作系统接口 做为计算机的使用者,一般情况下我们有三种方式来操作计算机: 1.命令行:即通过命令程序,linux系统中常用此种方式 2.图形化界面:通过鼠标点击等操作实现对计算机的操控.wi ...

  8. 1628_MIT 6.828 xv6_chapter0操作系统接口

    全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这本书最初看名字以为是对 ...

  9. linux操作系统实验教程费翔林,实验一操作系统接口实验.doc

    实验一 操作系统交互式接口使用 (一)实验环境:linux 用户名和密码:user (二)实验的目的:了解linux的各种操作命令的使用 (三)实验要求 1.按照指导书完成各种命令的使用 2.写实验报 ...

最新文章

  1. Perl split字符串分割函数用法指南
  2. arguments的理解
  3. .NET Core控制台程序发布后没有exe解决方案
  4. jQuery之筛选函数
  5. qt调用import sys库_【开源库】使用Qt.py进行开发
  6. 【转】如何查找MySQL中慢查询的SQL语句
  7. hfss史密斯图_这个史密斯圆图代表什么意思啊
  8. 如何保证分布式系统数据一致性
  9. 安卓软件开发面试题!五年Android开发者小米、阿里面经,小白也能看明白
  10. LuoguP3356 火星探险问题(费用流)
  11. android studio超级玛丽源码,VR版NES模拟器来了,超级玛丽、魂斗罗都支持
  12. 删除右键菜单多余选项
  13. 浅谈英语学习兴趣的培养
  14. 尺取法(图文解析、初学推荐)
  15. WCF学习经验分享,如何更好地学习WCF?
  16. 芯片之家精选文章合集 (二):收藏起来慢慢看
  17. 《MySQL数据库用户模块需求分析》
  18. 读《大话数据结构》溢彩加强版
  19. 初学者学习深度学习,不得不会的Google Colab基本操作
  20. 河南省多校联盟二-F 线段树+矩阵

热门文章

  1. java排序接口ComparableT 的实现与使用
  2. LoRaWAN 帧计数机制及典型问题分析
  3. HTTP Host Header Attack:Basic password reset poisoning
  4. 中国智能手机市场大幅衰退,仅华为vivo取得增长
  5. 基于SSD的CCTSDB交通标识数据集目标检测
  6. 安卓盒子launcher界面开发之添加自动定位,获取当地天气
  7. 亚马逊、沃尔玛、速卖通、Temu、OZON自养号测评和真人测评两者如何选择?
  8. MySQL----多表查询
  9. Android Interpolator属性 设置动画速度
  10. 有余记账(h5记账类项目)