shell十三问之一

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

1) 为何叫做 shell

在介绍 shell 是甚么东西之前,不妨让我们重新检视使用者与计算机系统的关系:

 

我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为"核心(kernel)"。然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel "外壳"程序,也就是所谓的 shell ,来与 kernel 沟通。这也正是 kernel shell 的形像命名关系。
            
从技术角度来说,shell 是一个使用者与系统的互动界面(interface),主要是让使用者透过命令行(command line)来使用系统以完成工作。因此,shell 的最简单的定义就是---命令解译器(Command Interpreter)
         * 将使用者的命令翻译给核心处理,
         * 同时,将核心处理结果翻译给使用者。

每次当我们完成系统登入(log in),我们就取得一个互动模式的 shell ,也称为 login shell primary shell。若从行程(process)角度来说,我们在 shell 所下达的命令,均是 shell 所产生的子行程。这现像,我们暂可称之为 fork 。如果是执行脚本(shell script)的话,脚本中的命令则是由另外一个非互动模式的子 shell (sub shell)来执行的。也就是 primary shell 产生 sub shell 的行程,sub shell 再产生 script 中所有命令的行程。
(
关于行程,我们日后有机会再补充。)

这里,我们必须知道:kernel shell 是不同的两套软件,而且都是可以被替换的:
         * 不同的操作系统使用不同的 kernel
         * 而在同一个 kernel 之上,也可使用不同的 shell

linux 的预设系统中,通常都可以找到好几种不同的 shell ,且通常会被列于如下档案里:
         /etc/shells

不同的 shell 有着不同的功能,且也彼此各异、或说"大同小异"。常见的 shell 主要分为两大主流:
         sh
                burne shell (sh)
                burne again shell (bash)
         csh
                c shell (csh)
                tc shell (tcsh)
                korn shell (ksh)
        
大部份的 linux 系统的预设 shell 都是 bash ,其原因大致如下两点:
         * 自由软件
         * 功能强大
bash
gnu project 最成功的产品之一,自推出以来深受广大 Unix 用户喜爱,且也逐渐成为不少组织的系统标准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值