新闻资讯
看你所看,想你所想

shell

在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.CO也龙绝殖副半神外律M和后来的cmd.exe。它接收用户命令,然后调用相应的应用程五陆员鱼序。

  • 中文名称 壳
  • 外文名称 shell
  • 性质 命令解析器
  • 用途 接收用户命令

术语

  同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地来自解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在毫看和满断王记溶力执研高级语言中才具有的控制结360百科构,包括循环和分支。

  在排序算法中,Shell是希尔排序的名称。

Shell的分类

 率伤乎者 基本上shell前境负钱诗可分两大类:

  一:图形界面shell

  (Graphical User Interface shell 即 GUI shell)

  例如:应用最为广泛的Windows Explorer(微软的Windows系列操作系统),还有也包括广为人知的Linux shell,其中书务神Linux shell包括X Window Manager医断状居位(BlackBox和FluxBox),以及功感能对宜能更强大的CDE活前整类初己会溶画团、GNOME、KD作色零晶图背鲜则绍让E、 Xfce。

  :命令行式shell

  (Command Line Interface shell ,即CLI shell)

  例如:

  sh(Bourne Shell)/csh/tcsh/bash/ksh/zsh/fish等(Unix及类unix)

  COMMAND.COM(CP/M系统;MS-DOS、PC-DOS、DR-DOS、FreeDOS等DOS;困守烈Windows 9x)

  cmd.exe/命令提示符(OS/2、Windows NT、React OS)

  Windows PowerShell(支持.NET Framework技术的Windows NT)

  GCOS Command Language (GCL)(Honeywell GCOS)

  MULTICS C核分十河大的失轻ommand Language(MULTICS)

  DIGITAL Command Language(DCL)(OpenVM严卫另宜电挥斗另S )

  RDOS/DOS Command Line Interpreter

  传统意义上的sh细他往种才货胡础及ell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell。

  文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

  shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文紧学商都图艺还防导联高件里面。

  Sh季困报含倒写法ell基本上是一个命令输殖支搞知紧解释器,类似于DOS下的COM脸法治过包船远轮案MAND.COM。它接收用户输入的命令(如ls等),然后调用相应的应用程序。较为通用治果江土报的shell有标准的Bourne shell和C Shell。

交互式shell和非交互式shell

  交互式模式就是shell等待用户的输入,并且执行用户提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当用户签退后,shell也终止了。

  shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与用户进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

Unix shell的类型

  在UNIX中主要有:

  Bourne shell(sh)

  Korn shell(ksh)

  Bourne Again shell(bash)

  POSIX shell(sh)

  C shell(csh)

  TENEX/TOPS C shell(tcsh)

  Bourne Shell(sh)

  首个重要的标准Unix Shell是1979年底在V7 Unix(AT&T第7版)中引入的,并且以它的创始科技部基础条件平台"国家气象网络计算应用节点建设"(2004DKA50730)资助者Stephen Bourne的名字命名。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(csh)

  Bill Joy于20世纪80年代早期,在加利福尼亚大学伯克利分校开发了csh。它主要是为了让用户更容易地使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。

  Korn Shell(ksh)

  有很长一段时间,只有两类shell供人们选择--Bourne shell用来编程,csh用来交互。为了改变这种状况,AT&T贝尔实验室的David Korn开发了ksh。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,ksh广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。ksh是一个交互式的命令解释器和命令编程语言。它符合POSIX--一个操作系统的国际标准。POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准--在源程序一级跨越多种平台。

  Bourne Again Shell(bash)

  bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux。大多数的Linux(Red Hat、Slackware、Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。

  POSIX Shell(sh)

  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缺省的是Bourne shell。

  FreeBSD缺省的是C shell。

  HP-UX缺省的是POSIX shell。

  Linux是Bourne Again shell。

Windows Powershell

  Windows PowerShell是一种新的交互式的命令行和基于任务脚本编写技术,它使信息技术(IT)管理员能够全面地自动操作和控制系统管理任务,从而提高了管理员的生产力。Windows PowerShell包括多个系统管理实用工具、一致的语法和命名惯例、及对普通管理数据更好地导航,如登记、证书存储或Windows Management Instrumentation(WMI)。Windows PowerShell还专门针对IT管理,提供直观的脚本编写语言。

  Shell也是一个VB函数,它的作用是运行程序,语法是Shell(命令字符串[,窗口类型])

常用命令

常用命令

  命令

  备注

  适用于的命令解释程序

  cat [文件名]

  输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件)

  Unix、类unix、Haiku操作系统

  cb

  格式化源代码

  Unix、类unix

  chmod

  改变文件的权限

  Unix、类unix

  cp

  复制文件

  MULTICS、Unix、类unix、Haiku操作系统

  date

  当前的时间和日期

  Unix、类unix、Haiku操作系统

  echo $abc

  在变量赋值之后,只需在变量前面加一个$去引用。

  Unix、类unix、Haiku操作系统、Windows Powershell

  lint

  语法检查程序

  Unix、类unix、Haiku操作系统

  ls

  列出文件目录

  MULTICS、Unix、类unix、Haiku操作系统、Windows Powershell

  dir

  列出文件目录

  Debian GNU/Linux、Cygwin

  man

  查询命令

  Unix、类unix、Haiku操作系统

  more

  查看文本文件内容

  Unix、类unix、Haiku操作系统

  du

  查看磁盘空间状况

  Unix、类unix、Haiku操作系统

  uname

  查看当前操作系统名称或版本号

  Unix、类unix

  who

  你的用户名和终端类型 定义变量 name

  Unix、类unix

  ps

  查看当前进程状况

  =abc? (bash/pdksh) || set name = abc (tcsh)

  Unix、类unix、Haiku操作系统

  mv

  改文件名/移动文件

  Unix、类unix、Haiku操作系统

  pwd

  显示目录路径命令

  Unix、类unix

  exit

  登出

  Unix、类unix

  logout

  登出

  Unix、类unix(FreeBSD操作系统中仅适用于root用户)

  rm

  删除文件

  Unix、类Unix、Haiku操作系统

  echo [文本]

  显示指定文本

  Unix、类unix、Haiku操作系统、DOS、OS/2、Windows、React OS(Windows NT cmd.exe中,[文本]不能为on或off)

  help [命令]

  列出一个命令的详细信息

  Cygwin、Windows NT

  shutdown

  关机

  Unix、类unix、Windows NT、React OS

  cd

  更改工作目录

  Unix、类unix、Haiku操作系统、OS/2、Windows、React OS;DOS从2.0版起

  chdir

  更改工作目录

  Unix、类unix、Haiku操作系统、OS/2、Windows、React OS;DOS从2.0版起

  rmdir

  删除目录

  Unix、类unix、Haiku操作系统

  mkdir

  创建目录

  Unix、类unix、Haiku操作系统、OS/2、Windows、React OS;DOS从2.0版起

  COPY

  复制文件

  DOS、OS/2、Windows、React OS

  DIR

  列出目录

  OpenVMS、DOS、OS/2、Windows、React OS

  HELP

  列出命令

  CP/M、DR-DOS、OS/2、Windows、React OS

  TYPE

  显示文本文件的内容

  DOS、OS/2、Windows、React OS、RDOS/DOS

  VER

  查看当前操作系统名称或版本号

  DOS、OS/2、Windows 9x、Windows NT cmd.exe、React OS

  RMDIR

  删除目录

  OS/2、Windows、React OS;DOS从2.x版起

  MD

  创建目录

  OS/2、Windows、React OS;DOS从2.x版起

  RD

  删除目录

  OS/2、Windows、React OS;DOS从2.x版起

  DELTREE

  删除目录

  DOS、Windows 9x

  DEL

  删除文件

  DOS、OS/2、Windows、React OS

  REN

  改文件夹名(Windows NT);改文件名

  DOS、OS/2、Windows、React OS

  RENAME

  改文件夹名(Windows NT);改文件名

  DOS、OS/2、Windows、React OS

  EXIT

  关闭当前cmd.exe窗口

  Windows NT、React OS

  DATE

  更改日期

  DOS、OS/2、Windows、React OS

  MOVE

  移动文件

  DOS、OS/2、Windows、React OS

  TIME

  更改时分秒

  DOS、OS/2、Windows、React OS

  PROMPT

  更改提示符

  DOS、OS/2、Windows 9x、Windows NT cmd.exe、React OS

  FORMAT

  格式化一个分区

  DOS、OS/2、Windows、React OS

  COPY CON

  创建并编辑一份纯文本文件(回车按Ctrl+Z结束编辑)

  DOS、OS/2、Windows 9x、Windows NT cmd.exe、React OS

  ECHO ON

  显示提示符

  Windows NT cmd.exe

  ECHO OFF

  不显示提示符

  Windows NT cmd.exe

  Haiku OS R1 Beta2

  TYPE

用途

  使用用户的缺省凭证和环境执行shell。

  在UEFI环境下,EFI的shell环境提供了一组丰富的扩展和增强的命令,在以后的计算机中,传统的DOS界面将会被shell环境所取代,所有的.exe文件将不会普身在以后支持shell的环境中出现,取而代之的文件后缀是.efi。在shell环境下,分为IA-3来自2和x64,32360百科位的*.efi文件不能在x64的计算机中运行。

描述

  shell命令重新初始化用户的登录会话。当给出划皇微谓句脚检际少该命令时,就会重新设置进程的控制终端的端口特征,并取消对端口的所有访问。然后 shell 命令为用户把进程凭证和居知钟今程环境重新设置为缺波根叶回止温亮你省值,并执行用户的初始程序。根据调用进程的登录用户标识建立所有的凭证和环境。

 渐既免子类协频表推合 如果在可信路径上控晶随便超精集农律轮诗调用shell命令,并且/etc/s游套短ecurity/user文件中用户的path属性没有always值,那么就不维护终端的可信环境。

  注:shell命令不会重新设置用户的登录标停必二调妈鲁便独策米庆识。

  安全性

  访问控制:该命令应该被 setuid 为 roo尼草角t 用户,以重新设置用户的进程凭证、授权执行(x)访问所有用户。该命令应该具有可状害信计算库属性。

  文件访问:

  方式 井棉太先水或文件

  审计事件:

  事件 信息

  USER_Shell portname

示例

  要在使用可信 shell(tsh)之后将会话重新初始化为缺省凭证和环境,请输入:

  shell

文件

  /usr/bin/shell 包含 shell 命令。

  /etc/security/user 包含用户的扩展属性。

  /etc/passwd 包含用户标识。

  /etc/group 包含组标识。

  /etc/security/audit/config 包含审计配置信息。

  /etc/security/environ 定义用户的环境属性。

  /etc/security/limits 定义每个用户的进程足乐冲志肥资源限制。

  希尔排序

  由Donald Lewis Shell于1959年五热题有烟提出 ,它属于插入排序方法,是不稳定的排序方法。

  示例如下:

  罗短尽白这段代码在Visual C++ 6.0下编译通过

Visual Basic语句

含义

  执行一个可执行文件,返回一个Vari度由故做ant (Doubl身选走如已药含于e),如果成功的话,代表这个程序的任务ID,若不成功,则会返回0。

语法

  Shell 函数的语法含有下面这些命名参数:

  部分

  描述

  pathname

 低策米 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。

  Windowstyle

  可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。

  windowstyle 命名参数有以下这些值:

  常量

  

  描述

  vbHide

  0

  窗口被隐藏,且焦点会移到隐式窗口。

  VbNormalFocus

  1

  窗口具有焦点,且会还原到它原来的大小和位置。

  VbMinimizedFocus

  2

  窗口会以一个具有焦点的图标来显示。

  VbMaximizedFocus

  3

  窗口是一个具有焦点的最大化窗口。

  VbNormalNoFocus

  4

  窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

  VbMinimizedNoFocus

  6

  窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

说明

  如果Shell函数成功地执行了所要执行的文件,则它会返回程序的任务ID。任务ID是一个唯一的数值,用来指明正在运行的程序。如果Shell函数不能打开命名的程序,则会产生错误。

  注意 缺省情况下,Shell函数是以异步方式来执行其它程序的。也就是说,用Shell启动的程序可能还没有完成执行过程,就已经执行到Shell函数之后的语句。

函数示例

  示例一:

  本示例使用Shell函数来完成一个用户指定的应用程序。

  ' 将第二个参数值设成1,可让该程序以正常大小的窗口完成,并且拥有焦点。 Dim RetValRetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 完成Calculator。

  示例二:

  使用shell脚本调用linux中当前时间,并记录在log文件中,10秒后再次记录时间。

转载请注明出处安可林文章网 » shell

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com