什么是SHELL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是SHELL相关的知识,希望对你有一定的参考价值。
参考技术A 文字操作系统与外部最主要的接口就叫做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也是一个VB函数,它的作用是运行程序,语法是Shell(命令字符串[,窗口类型])
什么是shell
【什么是shell】
简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。
以上是关于什么是SHELL的主要内容,如果未能解决你的问题,请参考以下文章
由bash-3.2$ pipenv shellShell for UNKNOWN_VIRTUAL_ENVIRONMENT alread转pipenv,轻松管理多个Python环境