operatingITsystem▲DLNU2.5用户界面举例operatingITsystem▲DLNU2.5.1作业控制语言1.命令行2.环境变量脱机作业控制:用户输入作业说明书,整个作业的运行由系统控制。联机作业控制:通过人-机会话方式控制作业运行。用户登录(控制台登录或远程登录),由系统自动执行一些命令脚本后,并进入shell(字符或GUI界面),接受用户的命令和操作,最后退出系统。operatingITsystem▲DLNU1.命令行命令行:一行可有一个或多个命令,每次一行,包含一个或多个命令。shell给出提示符时可输入,以回车键提交。如:“ls-a-l”列出当前目录文件列表;命令格式:一个命令可有命令参数,格式包括选项/开关(option/switch)或参数(argument)。如UNIX系统:cp-rdoc/tmp--argv[0],argv[1],...(含子目录的文件复制:/tmp为目标地址)operatingITsystem▲DLNU命令分类:内部命令和外部命令内部命令:直接由shell本身完成,功能简单、使用频繁;常驻内存,如:DOS的copy命令。外部命令:运行相应的可执行文件,在使用时加载。如:DOS的xcopy命令。命令简化:利用参数替换可简化命令输入,通配符(?,*)用于匹配一组文件名如:UNIX的cp命令:当前目录上有两个1.tar和2.tar时,cp*.tar/tmp等同于cp1.tar/tmp;cp2.tar/tmpoperatingITsystem▲DLNU2.环境变量环境变量也可以作为shell参数,如命令提示符的式样,外部命令的查找目录路径等。如:PATH=/bin:/usr/bin:/usr/sbin:.HOME=/home/thisuser环境变量是传递命令参数的另一种途径。如:cd$HOME;环境变量可按名字访问,可以新建、赋值或撤销。有效范围:只对本进程里的环境变量能够直接进行操作,此外,在执行新进程时(UNIX中是exec()调用),可以给出环境变量的初始值,通常就是直接复制当前进程的所有环境变量--继承。环境变量(environmentvariable)--应用进程地址空间中的特殊变量区。operatingITsystem▲DLNU2.5.2作业管理举例*2.2.1MSDOS的作业管理2.2.2UNIX的作业管理返回operatingITsystem▲DLNU2.5.3MSDOS的作业管理命令分类:内部命令:如dir,cd,copy外部命令:如format,xcopy命令行选项命令行选项通常是:/option;如:/?选项可显示各命令的命令行选项列表。通配符:由外部命令自己处理。如:xcopy*.c.--argv[1]=*.c2.5.3.1.DOS命令处理程序command.com(或其他程序如DOSshell):驻留内存,在系统运行期间不再退出。为了给应用程序的执行提供更大内存空间,又分为常驻部分和暂驻部分(可被应用程序覆盖)operatingITsystem▲DLNU输入输出重定向和管道(pipe),,,|,基于临时文件为输入重定向,如:findstringtemp.txt将显示文件temp.txt中有string串的行;moretemp.txt将逐屏显示输出文件temp.txt的内容;“”为输出重定向,“”为添加输出重定向。如:“dirtemp.txt”将把“dir”命令在屏幕上的输出保存在新文件“temp.txt”中;而dirtemp.txt将屏幕输出追加在文件temp.txt的结尾。operatingITsystem▲DLNU管道|是将前一个命令的屏幕输出作为后一个命令的键盘输入。如:dir|sort将把dir命令的输出按行进行排序。环境变量setPATH=c:\tools;%PATH%--原PATH=c:\dos则后PATH=c:\tools;c:\dos系统引导时加载系统引导时加载:autoexec.batoperatingITsystem▲DLNU2.5.3.2.DOS批处理:由command.com执行循环:循环执行命令。FOR/R[[drive:]path]%variableIN(set)DOcommand[command-parameters]遍历根在[drive:]path上的目录树,在树的每个目录中执行FOR语句。如果在/R后没有指定任何目录规范,那么假设为当前目录。如果set仅是一个句号(.),那么它将仅列出目录树。有简单的变量替换,有条件转移和跳转、循环和注释语句remoperatingITsystem▲DLNU关于循环的实例for%%字母in(文件列表)do命令%%字母:命令描述时的某个参数.文件列表:可以是1个文件或多个文件.命令:用户指定.例:c:\for%Ain(c:,d:)dochkdsk%A依此对C:,D:进行chkdsk命令,%A顺序取C:,D:operatingITsystem▲DLNU如下面批处理将显示当前目录及其子目录所有后缀为ppt的文件名(含路径名);for/R%fin(*.ppt)doecho%f可能的显示结果:C:\users\xyong\work\2001-02-20chapter1.pptC:\users\xyong\work\temp\2001-02-18chapter1.pptC:\users\xyong\work\temp\2000-08-09LinuxLecture\2000-08-15Linux.pptoperatingITsystem▲DLNU分支IF[NOT]ERRORLEVELnumbercommandIF[NOT]string1==string2commandIF[NOT]EXISTfilenamecommandNOT只有在条件为假时,才需运行命令。ERRORLEVELnumber如果最近程序运行返回的退出码等于或大于指定的号码时,则设定条件为真。command当符合条件时,指定要运行的命令。string1==string2当指定字符串匹配时,设置条件为真。EXISTfilename当指定文件名存在时,设置条件为真。如:IFERRORLEVEL1gotookay:okayechookayoperatingITsystem▲DLNU2.5.4UNIX的用户界面2.2.2.1.shell命令处理程序2.2.2.2.shell批处理operatingITsystem▲DLNU2.5.4.1shell命令处理程序1.shell的类型2.初始化文件3.基本特征4.输入输出重定向5.管道6.后台执行7.环境变量和内部变量8.别名9.常用的外部命令operatingITsystem▲DLNU1.shell的类型Bourneshell(/bin/sh)1.Bourneshell的作者是StevenBourne。它是UNIX最初使用的shell并且在每种UNIX上都可以使用。Bourneshell在shell编程方面相当优秀,但在处理与用户的交互方面作得不如其他几种shell。2.Bourneshell最大的缺点在于它处理用户的输入方面。在Bourneshell里键入命令会很麻烦,尤其当你键入很多相似的命令时。UNIX上有许多种shell,主要功能是相同的,在细节上有一些区别。几种shell都有它们的优点和缺点。operatingITsystem▲DLNUCshell(/bin/csh)1.Cshell由BillJoy所写,它更多的考虑了用户界面的友好性。它支持象命令补齐(command-linecompletion)等一些Bourneshell所不支持的特性。普遍认为Cshell的编程接口做的不如Bourneshell,但Cshell被很多C程序员使用因为Cshell的语法和C语言的很相似,这也是Cshell名称的由来。operatingITsystem▲DLNUKornshell(ksh)Kornshell(ksh)由DaveKorn所写。它集合了Cshell和Bourneshell的优点并且和Bourneshell完全兼容。operatingITsystem▲DLNUBourneAgainshell(bash)BourneAgainshell(bash)是Bourneshell的扩展。bash与Bourneshell完全向后兼容,并且在Bourneshell的基础上增加和增强了很多特性。bash也包含了很多C和Kornshell里的优点。bash有很灵活和强大的编程接口,同时又有很友好的用户界面。bash有几种特性使命令的输入变得更容易。operatingITsystem▲DLNU其他shell除了这些shell以外,许多其他的shell程序吸收了这些原来的shell程序的优点而成为新的shell。如:tcsh(csh的扩展)PublicDomainKornshell(pdksh,ksh的扩展)operatingITsystem▲DLNU2.初始化文件BShell执行.profileCShell执行.cshrc和.login两个文件KShell执行.profile和$ENV两个文件(sh).profile与(csh).login对应,进行注册时的初始化;而在csh在非注册启动时都读入.cshrc;operatingITsystem▲DLNU3.基本特征内部命令:如cd,exec――区分大小写,exec的功能是执行一个命令;外部命令:如ls,mkdir命令行选项通常是:-option如:ls-a-l中的-a表示列出所有文件,-l表示列出所有信息。通配符:由shell处理后再传递给外部命令。如:cat*.c则argv[1]=a.c,argv[2]=b.c,而cat*.c则argv[1]=*.c(cat的功能是读入所有文件,并显示)operatingITsystem▲DLNU4.输入输出重定向为标准输入重定向;和为标准输出重定向;2和2为标准错误输出重定向(2表示标准错误输出的设备号,只对sh有意义);&是标准输出和标准错误输出重定向;基于内核的缓冲区行输入重定向:用定界符间的内容作为标准输入。如:下面命令的标准输入为邮件内容。mailuser2WARNING...WARNINGoperatingITsystem▲DLNU5.管道管道可以把一系列命令连接起来。第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。通过管道,可以将多个简单程序组合完成复杂的功能。operatingITsystem▲DLNU如:ls-l|wc-l可给出文件数目。如:“catsample.text|grepHigh|wc-l”这个管道将把cat命令(列出一个文件的内容)的输出送给grep命令。grep命令在输入里查找单词High,grep命令的输出则是所有包含单词High的行,这个输出又被送给wc命令。带-l选项的wc命令将统计输入里的行数。operatingITsystem▲DLNU6.后台执行如:xterm-display166.111.68.56:0.0&为在后台启动一个xterm窗口,并显示到主机166.111.68.56上。后台执行:cmd&;operatingITsystem▲DLNU7.环境变量和内部变量set可给出内部变量列表,env可给出环境变量列表。继承只对环境变量有效。sh:PATH=/usr/bin:$PATH;exportPATH--注意:在export前为内部变量,之后为环境变量。csh:setsetenvPATH/usr/bin:$PATH--注意