欢迎来到天天文库
浏览记录
ID:34519842
大小:348.42 KB
页数:95页
时间:2019-03-07
《shell程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、shell程序设计什么是Shell?•Shell是Unix/linux系统中一个重要的层次,是用户和系统交互的界面。•Shell是内核之外的指令解析器,是一个程序,同时也是一种命令语言和程序设计语言。硬件、内核和使用者的相关性Shell的版本•第一个流行的shell是由StevenBourne发展出来的,为了纪念他所以就称为Bourneshell,或直接简称为sh。•另一个广为流传的shell是由柏克莱大学的BillJoy设计依附于BSD版的Unix系统中的shell,这个shell的语法有点类似C语言,所以才得名为Cshel
2、l,简称为csh•Linux使用的版本称为『BourneAgainSHell(简称bash)』,这个Shell是BourneShell的增强版本,也是基准于GNU的架构下发展出来的。•我们的Linux有多少我们可以使用的shells呢?•可查看/etc/shells•系统某些服务在运行过程中,会去检查使用者能够使用的shells,而这些shell的查询就是藉由/etc/shells这个档案。Bashshell的功能•命令编写和修改能力:使用bash里头,一个相当棒的功能就是『他能记忆使用过的指令!』。记录的档案在你的家目录内的
3、.bash_history•命令与档案补全功能:[Tab]接在一串指令的第一个字的后面,则为命令补全[Tab]接在一串指令的第二个字以后时,则为『档案补齐』•命令别名(alias)设定功能:例如:可以直接下达命令来设定别名呦:aliaslm='ls-al'•工作控制(jobs)、前台后台控制:•Shell的编程能力:echo“myworkingdirectoryis”pwdecho“todayis”date•Shell过程执行的方式:•通过shell解析器执行,即所谓的输入定向到shell过程。•将shell过程改为可执行文件
4、。Shell的变量•Shell的变量有两种:•环境变量和临时变量。环境变量是永久性的,其值不会随shell过程执行结束而消失。而临时变量是在shell程序内部定义的,其适用范围限于定义它的程序,出了本程序就不能使用了,当程序执行完,它的值就不存在了。•临时变量又分为两类:用户定义变量和位置参数。Shell变量的功能•用一个简单的“字眼”来取代另一个比较复杂或者是容易变动的数据。•例:以环境变MAIL为例说明•真正以shell来跟Linux沟通,是在正确的登入Linux之后!这个时候你就有一个bash的执行程序,也才可以真正的经
5、由bash来跟系统沟通啰!而在进入shell之前,也正如同上面提到的,由于系统需要一些变量来提供他数据的存取(或者是一些环境的设定参数值,例如是否要显示彩色等等的),所以就有一些所谓的『环境变量』需要来读入系统中了!这些环境变量例如PATH、HOME、MAIL、SHELL等等,都是很重要的,为了区别与自订变量的不同,环境变量通常以大写字符来表示。•变量的取用与设定:echo,变量设定规则,unset•例:以PATH为例•某些命令的执行为什么可以在任意路径下执行?•因为系统已经预设了一些『搜寻路径(PATH)』了,所以当你需要执
6、行一些指令的时候,系统就会依照该PATH的设定来进行指令的搜寻!而这个PATH就是所谓的变量了。变量设定规则•1.变量与变量内容以等号『=』来连结;•2.等号两边不能直接接空格符;•3.变量名称只能是英文字母与数字,但是数字不能是开头字符;•4.若有空格符可以使用双引号『"』或单引号『'』来将变量内容结合起来,但须要特别留意,双引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符;•5.必要时需要以跳脱字符『』来将特殊符号(如Enter,$,,空格符,'等)变成一般符号;•6.在一串指令中,还需要藉由其它
7、的指令提供的信息,可以使用quote『`command`』;(特别特别注意,那个`是键盘上方的数字键1左边那个按键,而不是单引号!)•7.若该变量为扩增变量内容时,则需以双引号及$变量名称如:『"$PATH":/home』继续累加内容;•8.若该变量需要在其它子程序执行,则需要以export来使变量变成环境变量,如『exportPATH』;•9.通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好);•10.取消变量的方法为:『unset变量名称』。•目前我的shell环境中,有多少变量
8、啊?•一些环境变量的说明:env指令•HOME:代表使用者的家目录。•SHELL:告知我们,目前这个环境使用的SHELL是哪支程序?如果是bash的话,预设是/bin/bash•HISTSIZE:这个与『历史命令』有关,亦即是,我们曾经下达过的指令可以被系统记录下来,而记录的
此文档下载收益归作者所有