(转)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。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。 C Shell Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了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, Slackware, 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是Bourne Again shell.
|
分享到:
相关推荐
shell运算符介绍和例子 shell运算符是指在shell脚本中使用的运算符,包括算术运算符、比较运算符、逻辑运算符、按位运算符、赋值运算符等。这些运算符可以在shell脚本中使用,实现各种计算、比较和逻辑判断等操作。...
### Shell 删除指定行上一行 在Shell脚本中,我们经常需要对文本文件进行操作,例如删除、替换或提取特定的行。对于删除指定行及其上一行的需求,可以通过结合使用`sed`命令来实现。根据提供的文件内容,下面将详细...
Unix Shell是Unix操作系统中最核心的组件之一,它既是命令行解释器,也是用户与系统交互的界面。在学习Unix Shell之前,我们首先要理解其基本概念。Shell作为一个接口,允许用户通过输入指令来控制操作系统,执行...
一、Shell介绍 Shell是操作系统与用户交互的界面,也是用户执行命令的解释器。它读取用户的输入,然后调用相应的程序。常见的Shell类型包括Bash、C Shell(csh)、Korn Shell(ksh)和Z Shell(zsh)等。Bash...
1. **Shell介绍**:Shell是一种命令行解释器,它允许用户与操作系统进行交互。在Android开发中,动态库编译涉及到.so文件;而在iOS开发中,静态库则是.a文件。Shell脚本是编写在Shell环境下的一种解释型语言,不需要...
本文档《Linux下Shell等编程详细介绍》深入浅出地探讨了这一主题。 首先,文档会介绍什么是Shell以及它的基本概念。Shell通常有多种类型,如Bash(Bourne-Again SHell)、Sh、Csh、Ksh、Zsh等,其中Bash是最常见的...
通过上面的介绍,我们可以看到C Shell作为一种Unix shell,在自动化任务处理、系统管理等方面具有广泛的应用。对于希望深入了解Unix系统并提高工作效率的开发者来说,学习C Shell编程是一项非常有价值的技能。
下面,我们将对 shell 程序的基本概念和实例进行详细的介绍。 基本概念: Shell 是 Unix 操作系统提供的命令解释器或者说是一种命令语言,是用户与操作系统之间的接口。当用户注册到 Unix 系统时,系统都会为用户...
**Jmeter Bean Shell 介绍** 在性能测试领域,Apache JMeter 是一款广泛使用的开源工具,它支持多种测试组件,其中包括 Bean Shell。Bean Shell 是 JMeter 中的一个重要元素,它允许测试人员通过脚本语言的方式执行...
`2.15Shell关联数组(下标是字符串的数组).html`介绍了Shell中的关联数组,这是一种可以使用字符串作为索引的特殊数组,为Shell脚本提供了更灵活的数据结构,适用于处理复杂的数据管理任务。 6. **Shell脚本模块...
【Shell高级编程第一部分】02-Shell脚本概念介绍及第一个脚本案例w
2. **Bash Shell介绍** Bash是GNU项目的一部分,是Unix和Linux系统中最常用的Shell。它的语法丰富,支持历史记录、自动补全、脚本编程等功能,使得日常任务执行更加高效。 3. **基本Shell命令** - `ls`:列出目录...
本文将详细介绍Bash的基础知识,帮助读者从零开始逐步了解并掌握shell脚本编程。 #### 二、shell脚本入门:基础知识 ##### 2.1 为什么使用shell编程? - **提高效率**:shell脚本可以帮助自动执行一系列重复性的...
Shell是UNIX和Linux操作系统中的命令解释器,它作为用户与操作系统之间的一个接口,接收用户的输入命令并执行相应的程序。shell不仅是一个简单的命令行界面,它还具有强大的编程能力,允许用户编写复杂的脚本来自动...
3-Shell脚本介绍及第一个规范Shell脚本说明 4-Shell编程的作用和地位 5-Shell语言的种类介绍 6-Shell的条件表达式知识初步介绍实践 7-Shell的字符串表达式介绍-实践及企业案例脚本剖析 8-Shell的整数表达式介绍-实践...
1. **Shell基础**:包括Shell的安装与配置,常见Shell的介绍(如Bash、Sh、Csh等),以及如何启动和退出Shell。 2. **Shell语法**:讲解变量、条件表达式、流程控制(如if、for、while循环)、函数等基本语法元素,...
### Shell学习笔记(常用Shell命令介绍与用例) #### 一、引言 Shell作为Linux和Unix操作系统的重要组成部分,提供了一种与系统交互的方式。本文档旨在为初学者和有一定经验的用户提供一份全面的Shell命令学习笔记...
在shell脚本中,$RANDOM是一个环境变量,它的值是0到32767之间的随机数。通过echo $RANDOM可以获取一个随机数来证明当前环境支持此变量。如果不支持,输出将为空。这种方法简单并且易于在脚本中使用,但是产生的...
**Shell指令介绍** 在计算机领域,Shell是一种命令行解释器,它允许用户通过文本界面与操作系统进行交互。在Linux和Unix系统中,Shell扮演着至关重要的角色,它为用户提供了一个直接与内核通信的接口。本文将深入...