Shell介绍
#版权宣告:1999CopyrightOLS3Allrightsreserved.
#作者:OLS3(卧龙小三) #本讲义仅供台南县87学年度网路管理进阶研习班上课之用. #学员可保存一份自用,供日後网管时参考备查. #作者保有一切形式的着作权. #欲作其它用途者,需经作者授权同意. #未经作者授权同意之前,请勿转载刊登. Shell 当我们登入Linux之後,第一个接触到的,便是Shell.我们必须对它有点初步的认识才行. 一.Shell简介. Linux系统分成三个重要的部份 核心 Shell 工具程式 核心的部份相当低阶,操作者不易和它直接沟通,因此,必须要有一个友善的介面(interface),使得操作时能更为方便,这个介面便是Shell. 换言之,Shell就是一个居於核心和操作者之间的一层使用者介面. 那麽,为何称它为Shell呢?Shell的本意是"壳"的意思呢! 没错,在核心的外面,包覆着一层外壳,用来负责接收使用者输入的指令,然後将指令解译成核心能够了解的方式,传给核心去执行,再将结果传回至预设的输出周边. 如图所示: 例如:键入 ls-l shell给你以下回应: 拥 档有 案档 种案档案大小最近修改的 类档案权限数拥有人组别(byte单位)日期及时间档案名称 drwxr-xr-x14rootroot1024Jul2121:31. drwxr-xr-x17rootroot1024Apr1112:01.. drwxr-xr-x882821024Feb2519:23apache -rw-r--r--1rootroot1335460Feb2517:45apache_1_3_4.tar.gz drwxr-xr-x6rootroot1024Aug311998ftp drwxr-xr-x5rootroot1024Aug311998httpd drwx------2jamesjames1024Apr2306:47james drwxr-xr-x2rootroot12288Aug311998lost found drwxr-xr-x2msqlnobody1024Dec281998msql drwxr-xr-x28ols3ols32048Jul1921:38ols3 drwxr-xr-x31022nobody1024Jan2523:40ols3cgi drwxrwxr-x3perlols31024Feb207:11perl -rw-------1rootroot2097152Jul2118:39quota.group -rw-------1rootroot1278656Jul2118:39quota.user drwxrwxr-x2rootnobody1024May111998samba drwxr-xr-x3apachenobody1024Feb2516:58temp drwxrwxr-x2webadmnobody1024Mar1416:34webadm 其实不只是Linux有这一层Shell,其它作业系统也有. 比如DOS的command.com,Windows的GUI(GraphicalUserInterface),Mac的GUI. Shell按着表现的方式与读取使用者输入种类的不同,可分为二大类: Textbase:文字导向 Graphbase:图型导向 所谓"读取使用者输入种类不同"是指:读取自键盘,或读取自滑鼠,其它serialinput,萤幕触控等. 这样说来,Shell好像只是命令直译器罢了?! 嗯,这倒要按不同的OS所附给的Shell其功能和选择性的自由度而定. 以DOS的COMMAND.COM而言,它就是一个十足的命令直译器,除了一点点batch档的能力之外,它的功能并不多.Win平台的GUI,则是一个图型式的命令直译器,介面十分友善.不过,这二种OS,不能让你自由而简单地选择Shell.(以前DOS有4dos可选用) Linux的shell,除了做为命令直译器之外,它也是一个不错的程式语言,是系统管理维护时的重要工具. 由於Unix家族,对Shell的处理,采独立自由开放的方式,因此,Shell的种类相当地多,更可以让人自由地更换(chsh). 目前流行的shell有: Bourneshell:sh Cshell:csh Kornshell:ksh(商业软体) tcsh(free) BourneAgainshell:bash(GNU) Linux的标准shell是采用bash.它也是我们要学习的主要对象. 二.Shell的简史 第一个重要的shell是Bourneshell(如此命名是为了纪念此shell的发明者StevenBourne),1979年第一个流行的Unix版本7发行时,开始使用Bourneshell. Bourneshell的主档名为sh,因此,日後人们便以sh为Bourneshell的主要识别名称. 虽然Unix上的shell有许多种,但Bourneshell的地位至今仍然没有改变.许多Unix系统中仍然使用sh做为重要的管理工具.(它的工作从开机到关机,几乎无所不包) 第一个广为流行使用的shell变种是Cshell.Cshell主要附在BSD版的Unix系统中.它的作者是柏克莱大学的BillJoy.Cshell主要是因为其语法和C语言相类似,因而得名.这使得Unix系统的程式师,在学习Cshell时,感到相当地方便容易. 以上这二种形成shell的二大主流,後来的变种shell大都攫取这二种shell的优点. 比如Korn,tcsh及bash. Bashshell是GNU计划的重要工具软体之一,也是GNU作业系统中标准的shell. Bash相容於sh,因此,许多早期开发出来的Bourneshell都可以继续在bash中运作.现在我们安装好的RedHatLinux便是完全使用Bash.(/bin/sh->/bin/bash) Bash在1988年诞生,最初的作者是BrianFox,ChetRamey於1989加入,现在官方正式的维护者是ChetRamey,他的工作便是持续不断地增强bash的功能. 1995~1996期间推出bash2.0,在这之前,广为使用的版本是1.14.x,它增加了许多新的功能,以及更好的相容性. 当然,Bash是完全免费的,它是OpenSource的一员,原始码全部开放. 二.Bash的功能. Bash具有以下功能: 相容於Bourneshell(sh) 包含有Cshell以及Kornshell中最好的功能. 具命令列编修的能力(您记得以前DOS中的doskey吗?) 工作控制(jobcontrol)的能力,可控制前景及背景程式 具shell程式设计的能力,可让您自订shell及设计程式,管理系统. 三.新版的Bash哪里抓取? 若欲抓取新版的bash,可至http://www.gnu.org或其mirror站台. 中研院FTP也是不错的选择.ftp://ftp.sinica.edu.tw或ftp://linux.sinica.edu.tw 三.开始使用Bash 当你login进Linux主机时,便开始和bash互动,一直到你logout主机(下exit,logout,或按^D)为止. Bash的提示符号为$(代表一般身份使用者),当您具有root权限时,提示符号则变为#. 一旦出现提示符号时,您便可以开始键入操作命令列(commandline)了. 命令可分为二大类: bash内建的指令 程式 如果是bash内建的指令,则由bashshell负责回应;若是程式,则shell会找出该程式,然後将控制权交给核心,由核心执行该程式,执行完之後,再将控制权交回给shell. 怎麽知道那些指令是bash内建的,那些是程式呢?通常用"which指令",若没有任何回应,表示是内建的指令(除非该指令错误、不存在,或该程式不在预设的搜寻路径之内),例如下: 上一篇:shell要如何分类呢? 下一篇:Linux程式设计-11.ShellScript(bash)--(1)简介 更多相关文章
|
推荐文章
精彩文章
|