Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。为什么我们说 shell 是一种介于系统核心程序与使用者间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个系统资源的管理者与分配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因为错误的操作而造成系统的伤害?众所周知,对计算机下命令得透过命令(command)或是程序(program);程序有编译器(compiler)将程序转为二进制代码,可是命令呢?其实shell 也是一支程序,它由输入设备读取命令,再将其转为计算机可以了解的机械码,然后执行它。
各种操作系统都有它自己的 shell,以 DOS 为例,它的 shell 就是 command.com 檔。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解译程序可以取代标准的 command.com ,UNIX 下除了 Bourne shell(/bin/sh) 外还有 C shell(/bin/csh)、Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh) … 等其它的 shell。UNIX/Linux 将 shell 独立于核心程序之外,使得它就如同一般的应用程序,可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。
Shell 的激活
在系统起动的时候,核心程序会被加载内存,负责管理系统的工作,直到系统关闭为止。它建立并控制着处理程序,管理内存、档案系统、通讯等等。而其它的程序,包括 shell 程序,都存放在磁盘中。核心程序将它们加载内存,执行它们,并且在它们中止后清理系统。Shell 是一个公用程序,它在您签入时起动。藉由解译使用者输入的命令(由命令列或命令档),Shell 提供使用者和核心程序产生交谈的功能。
细说 Shell 的生平
第一个有重要意义的,标准的 UNIX shell 是V7(AT&T的第七版)UNIX,在1979 年底被提出,且以它的创造者 Stephen Bourne 来命名。Bourne shell 是以 Algol 这种语言为基础来设计,主要被用来做自动化系统管理工作。虽然 Bourne shell 以简单和速度而受欢迎,但它缺少许多交谈性使用的特色,例如历程、别名和工作控制。
Shell 的使用
不论是哪一种Shell,它最主要的功用都是解译使用者在命令列提示符号下输入的指令。Shell 语法分析命令列,把它分解成以空白区分开的符号(token),在此空白包括了跳位键(tab)、空白和换行(New Line)。如果这些字包含了metacharacter,shell 将会评估(evaluate)它们的正确用法。另外,shell 还管理档案输入输出及幕后处理(background processing)。在处理命令列之后,shell 会寻找命令并开始执行它们。
Shell 的另一个重要功用是提供个人化的使用者环境,这通常在 shell 的初始化档案中完成(.profile、.login、.cshrc、.tcshrc 等等)。这些档案包括了设定终端机键盘和定义窗口的特征;设定变量,定义搜寻路径、权限限、提示符号和终端机类形;以及设定特殊应用程序所需要的变量,例如窗口、文字处理程序、及程序语言的链接库。Korn shell 和 C shell 加强了个别化的能力:增加历程、别名、和内建变量集以避免使用者误杀档案、不慎签出、并在当工作完成时通知使用者。
Shell 也能当解译性的程序语言(interpreted programing language)。Shell 程序,通常叫做命令文件,它由列在档案内的命令所构成。此程序在编辑器中编辑(虽然也可以直接在命令列下写作程序, online scripting),由 UNIX 命令和基本的程序结构,例如变量的指定、测试条件、和循环所构成。您不需要编译 shell 命令檔。Shell 本身会解译命令档中的每一行,就如同由键盘输入一样。shell 负责解译命令,而使用者则必须了解这些命令能做什么。这本书的索引列出了一些有用的命令和它们的使用方法。
Shell 的功用
为了确保任何提示符号下输入的命令都能够适当地执行。shell 担任的工作包括有:
1. 读取输入和语法分析命令列
2. 对特殊字符求值
3. 设立管线、转向、和幕后处理
4. 处理讯号
5. 设立程序来执行
分享到:
相关推荐
**Shell简介** Shell是Unix/Linux操作系统中的用户界面,它提供了用户与操作系统内核之间的交互方式。用户通过Shell来输入命令,执行系统上的各种任务。常见的Shell类型有Bash(Bourne Again SHell)、Csh、Ksh等,...
Linux Shell简介 Linux Shell是操作系统的核心组成部分,它是一种命令行接口,允许用户与Linux系统进行交互。Shell不仅是一个命令解释器,将用户的输入转化为操作系统可理解的指令,而且还是一个强大的编程环境,...
【试验2-2 Shell简介】深入理解Linux Shell 在Linux操作系统中,Shell是一个至关重要的组成部分,它是用户与操作系统内核之间的交互界面。简单来说,Shell就是用户输入指令的地方,它接收用户输入,解释这些指令,...
Shell简介 VS 计算机的早期发展阶段并没有图形界面,用户只能通过一个一个的命令来控制计算机,这些命令有成百上千之多,这些命令记忆繁琐,非常困难。 计算机早期阶段 两者的基本过程都是类似的,都需要查找程序在...
### Shell简介及核心知识点 #### 一、Shell概述 Shell是一种用于与计算机操作系统进行交互的命令行解释器。用户通过Shell向操作系统发送指令,而Shell则负责解释这些指令并将其传递给操作系统的核心部分——内核,...
shell 的一个扩展版本,通常简称为 Bash(Bourne-Again SHell)。Bash 提供了更多的功能和改进的用户体验,例如命令历史记录、自动补全以及更友好的交互环境。 shell 的工作原理主要是通过接收用户的输入,解析命令...
在这一部分,我们主要探讨的是Shell的基础编程知识,特别是第01章的内容,即Shell的简介。 首先,我们需要了解什么是Shell。Shell是操作系统提供的一个用户界面,允许用户输入命令并执行系统上的程序。在Linux世界...
命令行界面简介(shell / bash / Unix / Linux) 观众所需的计算能力期间生物学家没有任何1天的研讨会(约6个小时,由讲师指导)描述该存储库包含为期1天的Shell入门课程的教学材料。 本次研讨会的重点是教学的基本...
一、Shell简介 Shell是一个用户与操作系统之间的接口,它接受用户输入的命令并解析成操作系统可以理解的语言,然后执行这些命令。在Linux和Unix系统中,有多种Shell类型,如Bash(Bourne-Again SHell)、C Shell、...
Linux Shell是Linux操作系统中的命令行界面,它是一个用户与操作系统内核交互的接口,允许用户输入命令执行系统操作。在Linux Shell中,用户可以通过键盘输入指令,系统会解析这些指令并执行相应的任务。这篇文档...
### Shell简介 Shell是一种用户与操作系统之间交互的接口程序,主要用于解释用户的命令并执行相应的操作。它不仅可以接收命令行输入,还可以通过脚本文件批量执行命令。Shell有多种类型,其中最常见的是Bash Shell...
shell简介 简介
一、Shell简介 Shell是一个命令行解释器,它接收用户输入的命令,解析并执行。在Linux和类Unix系统中,常见的Shell有Bash(Bourne-Again SHell)、Zsh和Csh等。Bash是目前最广泛使用的Shell,它扩展了原始的Bourne ...
### Linux Shell 知识点详解 #### 一、超级工具 / Terminals,xterms 和 Shells ##### 1. 超级工具 - **概念理解**:在讨论 Shell 的重要性时,作者将 Shell 比喻为“超级工具”,强调了其在 Unix/Linux 系统中的...
Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括循环和分支。 Shell...
CShell简介 CShell(/bin/csh)是Unix系统中的一种命令解释器,它的语法和C语言有着密切的关系,这使得熟悉C语言的用户能够快速上手。CShell提供了一种更灵活的命令历史重用机制,并支持流程控制结构,如if-else、...
#### 三、BashShell简介 Bash(Bourne Again SHell)是Unix Shell的一种变体,由POSIX标准定义,并广泛应用于Linux和类Unix系统中。BashShell拥有丰富的功能,包括但不限于: 1. **命令行补全**:提供自动补全功能...
Shell简介 Shell是操作系统提供给用户的界面,用于接收用户输入的命令并执行。在Linux系统中,常见的Shell有Bash(Bourne-Again SHell)、Dash、Zsh等。Bash是最常用的,默认在大多数系统中使用。 ### 2. Shell...