欢迎来到天天文库
浏览记录
ID:57780610
大小:45.00 KB
页数:14页
时间:2020-09-02
《Linux操作系统下shell工作原理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux下shell的工作原理Bourneshell允许您执行文件名替换。命令参数经常是文件名。可以自动产生文件名的列表,作为命令行上的参数。要这样做,请指定shell识别为模式匹配字符的字符。当命令包含这样的字符时,shell使用目录中的文件名替换它。注:Bourneshell不支持基于等价字符分类的文件名扩展。BourneShell最初的UNIXshell是由StephenR.Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourneshell。Bourneshell是一个交
2、换式的命令解释器和命令编程语言。Bourneshell可以运行为loginshell或者loginshell的子shell(subshell)。只有login命令可以调用Bourneshell作为一个loginshell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。CShellBillJoy于20世纪80年代早期,在Berkeley的加
3、利福尼亚大学开发了Cshell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。KornShell有很长一段时间,只有两类shell供人们选择,Bourneshell用来编程,Cshell用来交互。为了改变这种状况,AT&T的bell实验室DavidKorn开发了Kornshell。ksh结合了所有的Cshell的交互式特性,并融入了Bourneshell的语法。因此,Kornshell广受用户的欢迎。它还新增了数学计算
4、,进程协作(coprocess)、行内编辑(inlineediting)等功能。KornShell是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。BourneAgainShell(bash)bash是GNU计划的一部分,用来替代Bourneshell。它用于基于GNU的系统如Linux.大多数的Linux(RedHat,Slackware,Caldera)都以bash作为缺省的sh
5、ell,并且运行sh时,其实调用的是bash。POSIXShellPOSIXshell是Kornshell的一个变种.当前提供POSIXshell的最大卖主是Hewlett-Packard。在HP-UX11.0,POSIXshell就是/bin/sh,而bsh是/usr/old/bin/sh.shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。shell是用户和Linux操
6、作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shel
7、l是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。 shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如
8、ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。 shell的另一个重要特性是它自身就是一个解释型
此文档下载收益归作者所有