标题：shell
术语
  window7中包含的shell在计算机科学中，Shell俗称壳（用来区别于核），是指“提供使用者使用界面”的软件（命令解析器）。它类似于DOS下的和后来的cmd.exe。它接收用户命令，然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言，它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令；作为程序设计语言，它定义了各种变量和参数，并提供了许多在高级语言中才具有的控制结构，包括循环和分支。
在排序算法中，Shell是希尔排序的名称。
[1]基本上shell分两大类：
一：图形界面shell（Graphical User Interface shell 即 GUI shell）
例如：应用最为广泛的 Windows Explorer （微软的windows系列制作系统），还有也包括广为人知的 Linux shell，其中linux shell 包括 X window manger (BlackBox和FluxBox），以及功能更强大的CDE、GNOME、KDE、 XFCE。
二：命令行式shell（Command Line Interface shell ，即CLI shell）
例如：
bash / sh / ksh / csh（Unix/linux 系统） 
（MS-DOS系统） 
cmd.exe/ 命令提示字符（Windows NT 系统） 
Windows PowerShell（支援 .NET Framework 技术的 Windows NT 系统） 
传统意义上的shell指的是命令行式的shell，以后如果不特别注明，shell是指命令行式的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是1970年底在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 
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缺省的是Bourne shell. 
FreeBSD缺省的是C shell
HP-UX缺省的是POSIX shell. 
Linux是Bourne Again shell.
Windows PowerShell是一种新的交互式的命令行和基于任务脚本编写技术，它使信息技术(IT) 管理员能够全面地自动操作和控制系统管理任务，从而提高了管理员的生产力。Windows PowerShell 包括多个系统管理实用工具、一致的语法和命名惯例、及对普通管理数据更好地导航，如登记、证书存储 或 Windows Management Instrumentation (WMI）。Windows PowerShell 还专门针对 IT 管理，提供直观的脚本编写语言。
Shell也是一个VB函数，它的作用是运行程序，语法是Shell（命令字符串[，窗口类型])
shell 命令
常用命令
cat 文件名 输出文件内容到基本输出（屏幕 or 加>fileName 到另一个文件）
cb 格式化源代码
chmod //change mode，改变文件的权限
cp copy
date 当前的时间和日期
echo $abc 在变量赋值之后，只需在变量前面加一个$去引用.
lint 语法检查程序
ls dir
man help
more type
du 查看磁盘空间状况
ps 查看当前进程状况
who 你的用户名和终端类型
定义变量 name=abc? (bash/pdksh) || set name = abc (tcsh)
mkdir 创建目录
rmdir 删除目录
cd 进入目录
rm 删除文件
more 显示文件
echo 显示指定文本
mv 改文件名
pwd 显示目录路径命令
用途
使用用户的缺省凭证和环境执行 shell。
在UEFI环境下，EFI的Shell环境提供了一组丰富的扩展和增强的命令，在以后的计算机中，传统的DOS界面将会被SHELL环境所取代，所有的.exe文件将不会在以后支持SHELL的环境中出现，取而代之的文件后缀是.efi。在SHELL环境下，分为IA32和X64，32位的*.efi文件不能在X64的计算机中运行。
单词Shell
shell
n.
1. 壳，果壳；荚[C][U]
2. 贝壳，甲[C][U]
3. 壳状物；外壳；套，罩[C]
4. 有甲壳的软体动物[C]
5. 缄默；冷淡,矜持[C]
6. 锥形小啤酒杯[C]
7. （计划等的）梗概，轮廓[C]
8. 炮弹；猎枪子弹；弹壳[C]
9. 轻快的赛艇[C]
10. （房屋的）骨架[C]
11. （人的）躯壳[C]
12. 地壳；薄硬岩层[C]
13. 【电脑】壳，UNIX操作系统中的一部分，是使用者与系统的界面
vt.
1. 剥...的壳；剥
2. 为（麦穗等）去壳
3. 用贝壳铺；给...装壳体
4. 炮轰；射击
vi.
1. （种子等）脱壳
2. （金属等）剥落，成碎片落下[(+off)]
描述
shell 命令重新初始化用户的登录会话。当给出该命令时，就会重新设置进程的控制终端的端口特征，并取消对端口的所有访问。然后 shell 命令为用户把进程凭证和环境重新设置为缺省值，并执行用户的初始程序。根据调用进程的登录用户标识建立所有的凭证和环境。
如果在可信路径上调用 shell 命令，并且 /etc/security/user 文件中用户的 tpath 属性没有 always 值，那么就不维护终端的可信环境。
注：shell 命令不会重新设置用户的登录标识。
安全性
访问控制：该命令应该被 setuid 为 root 用户，以重新设置用户的进程凭证、授权执行（x）访问所有用户。该命令应该具有可信计算库属性。
文件访问：
方式 文件
r /etc/passwd
r /etc/group
r /etc/security/audit/config
r /etc/security/environ
r /etc/security/limits
r /etc/security/user
审计事件：
事件 信息
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 定义每个用户的进程资源限制。
希尔（Shell）排序
希尔（Shell）排序是D.L.Shell于1959年提出的，他属于插入排序方法，是不稳定的排序方法。
示例如下：
#include "stdafx.h"//在其他编译器中可以不包含这个头文件
#include "iostream.h"
//using namespace std;//使用命名空间时，要将头文件中的.h去掉
void shell_sort(int a[],int len)
{
int h,i,j,temp;
for(h=len/2;h>0;h=h/2)//控制增量
{
for(i=h;i<len;i++)//这个for循环就是前面的直接插入排序
{
temp=a[i];
for(j=i-h;(j>=0&&temp<a[j]);j-=h)//循环打印数组的每个元素
{
a[j+h]=a[j];
}
a[j+h]=temp;
}
}
}
void print_array(int a[],int len)
{
for(int i=0;i<len;i++)
{
cout<<a[i]<<"";
}
cout<<endl;
}
int main()
{
int a[]={7,3,5,8,9,1,2,4,6};
cout<<"before shell sort:";
print_array(a,9);
shell_sort(a,9);//进行shell排序
cout<<"after shell sort:";
print_array(a,9);
return 0;
}
这段代码在VC++ 6.0下编译通过
VB语句
含义执行一个可执行文件，返回一个Variant (Double)，如果成功的话，代表这个程序的任务 ID，若不成功，则会返回 0。语法Shell(pathname[,windowstyle])
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 函数示例本示例使用Shell 函数来完成一个用户指定的应用程序。
' 将第二个参数值设成1，可让该程序以正常大小的窗口完成，并且拥有焦点。 Dim RetValRetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 完成Calculator。
3ds Max 对象空间修改器
“修改”面板 > 作出选择> “修改器列表” > “对象空间修改器” > “壳”
选择> “修改器”菜单 > “参数化变形器” > “壳” 
通过添加一组朝向现有面相反方向的额外面，“壳”修改器“凝固”对象或者为对象赋予厚度，无论曲面在原始对象中的任何地方消失，边将连接内部和外部曲面。可以为内部和外部曲面、边的特性、材质 ID 以及边的贴图类型指定偏移距离。
同时，由于“壳”修改器没有子对象，所以可以使用“选择”选项指定面选择，该面选择在其他修改器的堆栈上传递。请注意，“壳”修改器并不能识别现有子对象选择，也不能通过这些堆栈上的选择。
  左：移除由部分曲面构成的球体；右图：应用壳的球体
通常使用对象上的“壳”，移除部分曲面，例如如上所述的具有几个删除顶点或曲面的球体。要获得最佳结果，原始多边形的面应该朝外。如果对象的面没有一条自由边，“壳”将不会创建任何边。
演唱歌曲
基本信息Shell是原创音乐人曲婉婷《 我的歌声里》里的一首歌曲歌手介绍中文名：曲婉婷　
英文名：Wanting（婉婷）　
职业：原创音乐人　
出生地：黑龙江哈尔滨　
国籍：中国　
居住地：加拿大温哥华　
公司：Nettwerk　
风格：流行（Pop）　歌词Far side running through my head　
Reluctance to failure, I refuse to cry　
The outside showers the opening wound　
I trip and fall　
Until Redundancy catches me up　
i have no where to go　
she feeds me i hate myself tears coming down i choke　
The hour fills with wish and hope but the hour is gone　
I threw myself, then I became a shell　
The truth is not what you see　
You see what you want to believe　
There’s soooo much more　
To offer inside of me　
but I can’t come out　
Because Redundancy catches me up　
And have no where to go　
She feeds me i hate myself tears coming down i choke　
The hour fills with wish and hope but the hour is gone　
I threw myself, then I became a shell　
then ibecame a shell　
woo ohho oh~out outside　
showers the opening wound　
I trip and fall...　
Redundancy catches me up, I have no where to go　
and have no where to go　
While she feeds me i hate myself tears coming down i choke　
The hour fills with wish and hope but the hour is gone　
I threw myself, and I became a shell