《操作系统用户界面.ppt》由会员分享,可在线阅读,更多相关《操作系统用户界面.ppt(52页珍藏版)》请在金锄头文库上搜索。
1、12.1简介简介2.2一般用户的输入输出界面一般用户的输入输出界面2.3命令控制界面命令控制界面2.4Linux与与Windows的命令控制界面的命令控制界面2.5系统调用系统调用2.6Linux和和Windows的系统调用的系统调用第第2 2章章 操作系统用户界面操作系统用户界面22.1简介简介2.2一般用户的输入输出界面一般用户的输入输出界面2.2.1作业的定义作业的定义作业作业(Job)在一次应用业务处理过程中,从输入开始到输出结束,在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。用户要求计算机所做的有关该次业务处理的全部工作称
2、为一个作业。作业步作业步一个作业所经历的加工步骤(如编译、连接和运行等)称一个作业所经历的加工步骤(如编译、连接和运行等)称为作业步。为作业步。2.2.2作业组织作业组织作业由三部分组成作业由三部分组成程序、数据和作业说明书。程序、数据和作业说明书。JCB(JobControlBlock)由作业说明书在系统中生成。由作业说明书在系统中生成。第第2 2章章 操作系统用户界面操作系统用户界面3作业说明书的主要内容作业说明书的主要内容第第2 2章章 操作系统用户界面操作系统用户界面作业基本情况描述作业基本情况描述用户名用户名作业名作业名使用语言名使用语言名允许最大处理时间等允许最大处理时间等作业控制
3、描述作业控制描述控制方式控制方式操作顺序操作顺序出错处理等出错处理等作业资源要求描述作业资源要求描述要求处理时间要求处理时间内存空间内存空间外设类型和数量外设类型和数量处理机优先级处理机优先级库函数或实用程序等库函数或实用程序等4JCB的建立的建立JCB包含了系统对作业进行管理所必须的信息:包含了系统对作业进行管理所必须的信息:作业名、作业估计执行时间、优先数、作业建立时间、作业名、作业估计执行时间、优先数、作业建立时间、作业说明书文件名、程序语言类型、内存要求、外设要求、作业说明书文件名、程序语言类型、内存要求、外设要求、作业状态以及作业在外存中的存储地址等。作业状态以及作业在外存中的存储地
4、址等。作业的四种状态:作业的四种状态:1.提交状态提交状态2.后备状态后备状态3.执行状态执行状态4.完成状态完成状态第第2 2章章 操作系统用户界面操作系统用户界面52.2.3一般用户的输入输出方式一般用户的输入输出方式SPOOLING(或或SPOOL)SimultaneousPeripheralOperationsOn-LineSPOOLING又可译作外围设备同时联机操作。又可译作外围设备同时联机操作。“斯普林斯普林”操作或操作或“假脱机假脱机”操作操作第第2 2章章 操作系统用户界面操作系统用户界面输入输出方式输入输出方式1.联机输入输出方式联机输入输出方式2.脱机输入输出方式脱机输入输
5、出方式3.直接耦合方式直接耦合方式4.SPOOLING系统系统5.网络联机方式网络联机方式62.3命令控制界面命令控制界面用户接口用户接口 程序一级的接口程序一级的接口程序员接口程序员接口 作业一级的接口作业一级的接口操作员接口操作员接口作业控制方式分为两大类:脱机控制方式和联机控制作业控制方式分为两大类:脱机控制方式和联机控制方式(即批处理控制方式和交互控制方式)方式(即批处理控制方式和交互控制方式)脱机控制方式脱机控制方式用作业控制语言编写作业说明书用作业控制语言编写作业说明书联机控制方式联机控制方式用户使用系统提供的操作命令和系统会用户使用系统提供的操作命令和系统会话,交互地控制程序执行
6、和管理计算机系统。话,交互地控制程序执行和管理计算机系统。第第2 2章章 操作系统用户界面操作系统用户界面7联机控制方式的命令种类联机控制方式的命令种类第第2 2章章 操作系统用户界面操作系统用户界面联机控制方式的命令种类联机控制方式的命令种类1.环境设置环境设置2.执行权限管理执行权限管理3.系统管理系统管理4.文件管理文件管理5.编辑、编译、链接装配编辑、编译、链接装配6.通信通信7.资源要求资源要求82.4Linux与与Windows的命令控制界面的命令控制界面2.4.1Linux的的命令控制界面命令控制界面Linux命令主要有以下命令主要有以下9类:类:(1)系统维护及管理命令系统维护
7、及管理命令date显示和设置系统日期和时间显示和设置系统日期和时间setenv查询或设置环境变量查询或设置环境变量(setenvironmentvariable)(2)文件操作及管理命令文件操作及管理命令ls显示文件及目录显示文件及目录find查找文件查找文件(3)系统维护及管理命令系统维护及管理命令kill发送一个发送一个signal给某一个给某一个processat在指定的时间执行指令在指定的时间执行指令第第2 2章章 操作系统用户界面操作系统用户界面9(4)磁盘及设备管理命令磁盘及设备管理命令df检查文件系统的磁盘空间占用情况检查文件系统的磁盘空间占用情况(diskfree)du显示磁盘
8、空间的使用情况显示磁盘空间的使用情况(diskusage)mount挂载设备挂载设备(5)用户管理命令用户管理命令adduser新增用户帐户新增用户帐户userdel删除用户帐号删除用户帐号(6)文档操作命令文档操作命令csplit分割文件分割文件(Splitafileintocontext-determinedpieces)sort对文件中的各行进行排序对文件中的各行进行排序第第2 2章章 操作系统用户界面操作系统用户界面10(7)网络通信命令网络通信命令netstat显示网络连接、路由表和网络接口信息显示网络连接、路由表和网络接口信息ifconfig显示或设置网络设备显示或设置网络设备(8
9、)程序开发命令程序开发命令ccc编译编译link链接链接(9)XWindow管理命令管理命令startx启动启动XWindowXF86setup图形界面下运行的配置程序图形界面下运行的配置程序第第2 2章章 操作系统用户界面操作系统用户界面11Shell程序组成:程序组成:(1)命令或命令或Shell程序;程序;(2)位置参数;位置参数;(3)变量及特殊字符;变量及特殊字符;(4)表达式比较;表达式比较;(5)控制流程语句,例如控制流程语句,例如while,case等;等;(6)函数。函数。例:备份当前目录下的所有文件。例:备份当前目录下的所有文件。mkdirbackupforfileinls
10、docp$filebackup/$fileif$?ne0thenecho“copying$fileerror”fidone第第2 2章章 操作系统用户界面操作系统用户界面12shell预定义变量是由预定义变量是由$符和另一个符号组成的,常用的符和另一个符号组成的,常用的shell预定义变量有:预定义变量有:$#:位置参数的数量:位置参数的数量$*:所有位置参数的内容:所有位置参数的内容$?:命令执行后返回的状态:命令执行后返回的状态$:当前进程的进程号:当前进程的进程号$!:后台运行的最后一个进程号:后台运行的最后一个进程号$0:当前执行的进程名:当前执行的进程名其中,其中,“$?”用于检查上
11、一个命令执行是否正确用于检查上一个命令执行是否正确(在在Linux中,命令退出状态为中,命令退出状态为0表示该命令正确执行,表示该命令正确执行,任何非任何非0值表示命令出错值表示命令出错)。第第2 2章章 操作系统用户界面操作系统用户界面132.4.2Windows的的命令控制界面命令控制界面Windows命令主要有以下命令主要有以下4类:类:(1)系统信息命令系统信息命令timeDisplaysorsetsthesystemtime.显示或设置系统时间显示或设置系统时间dateDisplaysorsetsthedate.显示或设置日期显示或设置日期memDisplaystheamountof
12、usedandfreememoryinyoursystem.driverqueryEnablesanadministratortoenumerateanddisplaythelistofinstalleddevicedriversaswellastheirproperties.systeminfoThiscommandlinetoolenablesanadministratortoqueryforbasicsystemconfigurationinformation.第第2 2章章 操作系统用户界面操作系统用户界面14(2)系统操作命令系统操作命令shutdown关机关机runas允许用户用其
13、他权限运行指定的工具和程序,而不是用允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。户当前登录提供的权限。taskkillThiscommandlinetoolcanbeusedtoendoneormoreprocesses.Processescanbekilledbytheprocessidorimagename.(3)文件系统命令文件系统命令copyCopiesoneormorefilestoanotherlocation.del删除文件删除文件mkdir建立目录建立目录(4)网络通信命令网络通信命令ping检查网络是否能够连通检查网络是否能够连通netstat显示当
14、前正在活动的网络连接的详细信息显示当前正在活动的网络连接的详细信息route主要用来管理本机路由表,可以查看,添加、修改或删主要用来管理本机路由表,可以查看,添加、修改或删除路由表条目。除路由表条目。第第2 2章章 操作系统用户界面操作系统用户界面15n&同时执行多条命令,而不管命令是否执行成功同时执行多条命令,而不管命令是否执行成功。Usage:第一条命令:第一条命令&第二条命令第二条命令&第三条命令第三条命令.n&同时执行多条命令,当碰到执行出错的命令后将不执行同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令。后面的命令,如果一直没有出错则一
15、直执行完所有命令。Usage:第一条命令:第一条命令&第二条命令第二条命令&第三条命令第三条命令.n|同时执行多条命令,当碰到执行正确的命令后将不执行后同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。面的命令,如果没有出现正确的命令则一直执行完所有命令。Usage:第一条命令:第一条命令|第二条命令第二条命令|第三条命令第三条命令.1.直接在命令行输出命令直接在命令行输出命令Systeminfo&mem2.批处理批处理echooffmkdirtestechohellopause第第2 2章章 操作系统用户界面操作系统用户界面16例:例:e
16、chooffmem%1meminfo.txtechogeneratememoryinfook!echoofftype%1*.txtechotypeok!echooffmkdirtestcallexam2.battestcallexam3.battestechocallok!pause第第2 2章章 操作系统用户界面操作系统用户界面172.5系统调用系统调用进程进程(Process)是一个在功能上独立的程序的一次执行过程。是一个在功能上独立的程序的一次执行过程。线程线程(Thread)是进程中进行数据处理操作的执行单位,每个是进程中进行数据处理操作的执行单位,每个进程中至少拥有一个线程来进行数据
17、处理操作。进程中至少拥有一个线程来进行数据处理操作。第第2 2章章 操作系统用户界面操作系统用户界面系统调用分类系统调用分类1.设备管理设备管理2.文件管理文件管理3.进程控制进程控制4.进程通信进程通信5.存储管理存储管理6.线程管理线程管理18陷阱陷阱(Trap)处理机构处理机构陷阱陷阱(Trap)处理机构处理机构在系统中为控制系统调用在系统中为控制系统调用服务的机构。服务的机构。陷阱指令陷阱指令(或称访管指令或称访管指令)由于系统调用而引起由于系统调用而引起处理机中断的指令。处理机中断的指令。系统态系统态(管态管态)处理机在系统程序中执行。处理机在系统程序中执行。用户态用户态(目态目态)
18、处理机在用户程序中执行。处理机在用户程序中执行。第第2 2章章 操作系统用户界面操作系统用户界面192.6Linux和和Windows的系统调用的系统调用2.6.1Linux系统调用系统调用Linux系统调用从功能上可分为如下系统调用从功能上可分为如下6类:类:(1)设备管理的系统调用设备管理的系统调用(2)文件系统操作的系统调用文件系统操作的系统调用(3)进程控制的系统调用进程控制的系统调用(4)存储管理的系统调用存储管理的系统调用(5)管理用的的系统调用管理用的的系统调用(6)通信的系统调用通信的系统调用第第2 2章章 操作系统用户界面操作系统用户界面20例:文件复制。例:文件复制。#in
19、clude#include#defineSIZE1024voidfilecopy(char*Infile,char*Outfile)charBufferSIZE;intIn_fh,Out_fh,Count;if(In_fh=open(Infile,O_RDONLY)=-1)printf(OpeningInfile);if(Out_fh=open(Outfile,(O_WRONLY|O_CREAT|O_TRUNC),(S_IRUSR|S_IWUSR)=-1)printf(OpeningOutfile);while(Count=read(In_fh,Buffer,sizeof(Buffer)0)i
20、f(write(Out_fh,Buffer,Count)!=Count)printf(Writingdata);if(Count=-1)printf(Readingdata);close(In_fh);close(Out_fh);第第2 2章章 操作系统用户界面操作系统用户界面21intopen(constchar*pathname,intflags);intopen(constchar*pathname,intflags,mode_tmode);intclose(intfd);open函数有两个形式,其中函数有两个形式,其中pathname是要打开的文件名是要打开的文件名(包含路径包含路径名
21、称,缺省是认为在当前目录下名称,缺省是认为在当前目录下)。flags可以取下面的一个值或者可以取下面的一个值或者是几个值的组合。是几个值的组合。O_RDONLY以只读的方式打开文件以只读的方式打开文件O_WRONLY以只写的方式打开文件以只写的方式打开文件O_RDWR以读写的方式打开文件以读写的方式打开文件O_APPEND以追加的方式打开文件以追加的方式打开文件O_CREAT创建一个文件创建一个文件O_EXCL如果使用了如果使用了O_CREAT而且文件已经存在,就会发生而且文件已经存在,就会发生一个错误一个错误O_NONBLOCK以非阻塞的方式打开一个文件以非阻塞的方式打开一个文件O_TRUN
22、C如果文件已经存在,则删除文件的内容如果文件已经存在,则删除文件的内容第第2 2章章 操作系统用户界面操作系统用户界面22在在fcntl.h中有定义:中有定义:#defineO_RDONLY00000000#defineO_WRONLY00000001#defineO_RDWR00000002#defineO_CREAT00000100#defineO_EXCL00000200#defineO_NOCTTY00000400#defineO_TRUNC00001000#defineO_APPEND00002000#defineO_NONBLOCK00004000NOCTTY(nocontroll
23、ingterminal)第第2 2章章 操作系统用户界面操作系统用户界面23前面三个标志只能使用任意的一个,如果使用了前面三个标志只能使用任意的一个,如果使用了O_CREAT标志,标志,那么我们要使用那么我们要使用open的第二种形式,还要指定的第二种形式,还要指定mode标志,用来表示文标志,用来表示文件的访问权限。件的访问权限。mode可以是以下情况的组合:可以是以下情况的组合:S_IRUSR用户可以读用户可以读S_IWUSR用户可以写用户可以写S_IXUSR用户可以执行用户可以执行S_IRWXU用户可以读写执行用户可以读写执行S_IRGRP组可以读组可以读S_IWGRP组可以写组可以写S
24、_IXGRP组可以执行组可以执行S_IRWXG组可以读写执行组可以读写执行S_IROTH其他人可以读其他人可以读S_IWOTH其他人可以写其他人可以写S_IXOTH其他人可以执行其他人可以执行S_IRWXO其他人可以读写执行其他人可以读写执行S_ISUID设置用户执行设置用户执行IDS_ISGID设置组的执行设置组的执行ID第第2 2章章 操作系统用户界面操作系统用户界面24在在stat.h中有定义:中有定义:#defineS_IRWXU00700#defineS_IRUSR00400#defineS_IWUSR00200#defineS_IXUSR00100#defineS_IRWXG000
25、70#defineS_IRGRP00040#defineS_IWGRP00020#defineS_IXGRP00010#defineS_IRWXO00007#defineS_IROTH00004#defineS_IWOTH00002#defineS_IXOTH00001#defineS_ISUID0004000#defineS_ISGID0002000第第2 2章章 操作系统用户界面操作系统用户界面252.6.2Windows系统调用系统调用常用的常用的API(ApplicationProgrammingInterface)函数调用可分为函数调用可分为如下五类:如下五类:(1)窗口管理类窗口管
26、理类(2)图形设备接口图形设备接口GDI(GraphicsDeviceInterface)类类(3)系统服务类系统服务类(4)国际特性类国际特性类(5)网络服务类网络服务类GDI32.DLL屏幕显示及打印功能的函数集屏幕显示及打印功能的函数集USER32.DLL鼠标、键盘、通信端口、声音、时钟功能的函鼠标、键盘、通信端口、声音、时钟功能的函数集数集KERNEL32.DLL文件及内存管理文件及内存管理(核心部分核心部分)功能的函数集功能的函数集MPR.DLLWindows32网络接口库网络接口库MPRMultipleProvider Router第第2 2章章 操作系统用户界面操作系统用户界面2
27、6#include/入口函数入口函数intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intnCmdshow)HANDLEhFile;LPTSTRlpBuffer=HelloWorld!;/创建文件创建文件hFile=CreateFile(C:File.txt,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);CloseHandle(hFile);TCHARszBuf128;DWORDdwRead;DW
28、ORDdwWritten;第第2 2章章 操作系统用户界面操作系统用户界面27/打开文件打开文件hFile=CreateFile(C:File.txt,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);/向文件中写入一个字符串向文件中写入一个字符串WriteFile(hFile,lpBuffer,strlen(lpBuffer)+1,&dwRead,NULL);SetFilePointer(hFile,0,NULL,FILE_BEGIN);/从文件中读出一个字符串并将它显示在对话框中从文件中读出一
29、个字符串并将它显示在对话框中if(ReadFile(hFile,szBuf,strlen(lpBuffer)+1,&dwWritten,NULL)MessageBox(NULL,szBuf,EXAM,MB_OK);CloseHandle(hFile);return0;第第2 2章章 操作系统用户界面操作系统用户界面28WinMain函数接收函数接收4个参数,这些参数都是在系统调用个参数,这些参数都是在系统调用WinMain函数时,传递给应用程序的。函数时,传递给应用程序的。n第一个参数第一个参数hInstance表示该程序当前运行的实例的句柄,表示该程序当前运行的实例的句柄,这是一个数值。当程
30、序在这是一个数值。当程序在Windows下运行时,它唯一标识下运行时,它唯一标识运行中的实例(注意,只有运行中的程序实例,才有实例运行中的实例(注意,只有运行中的程序实例,才有实例句柄)。一个应用程序可以运行多个实例,每运行一个实句柄)。一个应用程序可以运行多个实例,每运行一个实例,系统都会给该实例分配一个句柄值,并通过例,系统都会给该实例分配一个句柄值,并通过hInstance参数传递给参数传递给WinMain函数函数。n第二个参数第二个参数hPrevInstance表示当前实例的前一个实例的表示当前实例的前一个实例的句柄。通过查看句柄。通过查看MSDN我们可以知道,在我们可以知道,在Win
31、32环境下,这环境下,这个参数总是个参数总是NULL,即在,即在Win32环境下,这个参数不再起作环境下,这个参数不再起作用。用。第第2 2章章 操作系统用户界面操作系统用户界面29n第三个参数第三个参数lpCmdLine是一个以空终止的字符串,指定传是一个以空终止的字符串,指定传递给应用程序的命令行参数。例如:在递给应用程序的命令行参数。例如:在D盘下有一个盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本文件,当我们用鼠标双击这个文件时将启动记事本程序(程序(notepad.exe),此时系统会将),此时系统会将D:sunxin.txt作为命令作为命令行参数传递给记
32、事本程序的行参数传递给记事本程序的WinMain函数,记事本程序在得函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。到这个文件的全路径名后,就在窗口中显示该文件的内容。要在要在VC+开发环境中向应用程序传递参数,可以单击菜单【开发环境中向应用程序传递参数,可以单击菜单【Project】【Settings】,选择】,选择“Debug”选项卡,在选项卡,在“Programarguments”编辑框中输入你想传递给应用程序的参数编辑框中输入你想传递给应用程序的参数。n第四个参数第四个参数nCmdShow指定程序的窗口应该如何显示,例指定程序的窗口应该如何显示,例如最大化、最小
33、化、隐藏等。这个参数的值由该程序的调用如最大化、最小化、隐藏等。这个参数的值由该程序的调用者所指定,应用程序通常不需要去理会这个参数的值者所指定,应用程序通常不需要去理会这个参数的值。第第2 2章章 操作系统用户界面操作系统用户界面30UNIX发展历史与特点发展历史与特点 UNIX概述概述Amulti-user,multitaskingOSATime-SharingSystemKernelandShell UNIX的的两大流派:两大流派:(1)UNIXSystemVRes4.0,记:,记:SVR4(2)UNIX4.4BSDBSDBerkeleySoftwareDistribution第第2 2
34、章章 操作系统用户界面操作系统用户界面31 UNIX的移植产品或变种的移植产品或变种如:如:SUN公司的公司的Solaris2.6,IBM公司的公司的AIX4.2,微机上的微机上的SCOUNIX,Xenix和和Linux等。等。 UNIX标准化标准化(1)SVID标准标准国际国际UNIX组织和组织和AT&T公司于公司于85年宣布的年宣布的SystemVInterfaceDefinition,即,即SVID。该文件在系统调用、例行程序库和实用程序等方面该文件在系统调用、例行程序库和实用程序等方面描述了描述了UNIXSystemV。它给出了定义它给出了定义UNIXSystemV的基准,的基准,UN
35、IXSystemV的所有提供者必须遵循这一基准。的所有提供者必须遵循这一基准。(2)POSIX规范(规范(PortableOperatingSystemInterface)美国的美国的UNIX用户协会和美国的用户协会和美国的IEEE学会在学会在85年制订年制订的一个可移植的操作系统规范。的一个可移植的操作系统规范。它包括可移植操作系统的规范、命令语言它包括可移植操作系统的规范、命令语言Shell和其和其它工具、以及验证测试方法等。它工具、以及验证测试方法等。第第2 2章章 操作系统用户界面操作系统用户界面32UNIX系统的特点系统的特点(1)UNIX系统是一个可供多用户同时操作的会话式系统是一
36、个可供多用户同时操作的会话式分时操作系统。分时操作系统。(2)UNIX系统向用户提供了两种用户友好的界面或系统向用户提供了两种用户友好的界面或接口:接口: 程序一级的界面程序一级的界面系统调用系统调用 操作一级的界面操作一级的界面命令命令(Shell)(3)UNIX系统具有一个可装卸的分层树型结构文件系统具有一个可装卸的分层树型结构文件系统。系统。(4)UNIX系统把所有的外部设备都当作文件,并分系统把所有的外部设备都当作文件,并分别赋予它们对应的文件名。别赋予它们对应的文件名。(5)UNIX系统核心程序的绝大部分源代码和系统上系统核心程序的绝大部分源代码和系统上的支持软件都用的支持软件都用C
37、语言编写。且语言编写。且UNIX系统是一个开放式系统是一个开放式系统。系统。第第2 2章章 操作系统用户界面操作系统用户界面33u如何在如何在Windows主机上练习主机上练习Unix命令命令 申请帐号申请帐号http:/www.cyberspace.orgInternet上的上的Unix主主机机(美国美国),提供免费帐号供使用。可以先去那里申请一个帐,提供免费帐号供使用。可以先去那里申请一个帐号,然后就可以在那里练习号,然后就可以在那里练习Unix命令。命令。 连接连接成功申请帐号之后,可用下列方法连上主机:成功申请帐号之后,可用下列方法连上主机:(1)DOS在提示符下输入在提示符下输入te
38、lnetcyberspace.org(2)Windows在在IE地址栏里地址栏里telnet:/cyberspace.org输入用户名和密码后,出现系统提示符:输入用户名和密码后,出现系统提示符:grex.cyberspace.org%第第2 2章章 操作系统用户界面操作系统用户界面34uUnix通过通过Shell实现系统与用户的交互,在实现系统与用户的交互,在Shell提示符下,提示符下,用户键入用户键入Unix命令。命令。 UNIXSystemV的常用的常用Shell是是BourneShell(现在多为现在多为KornShell),缺省提示符是,缺省提示符是$。Bourneshell可以说
39、是第一个可以说是第一个UNIXshell,它是由,它是由AT&T贝尔实验室的贝尔实验室的StephenBourne所编写。所编写。Kornshell是是AT&T贝尔实验室的贝尔实验室的DavidKorn所开发,所开发,是是Bourneshell的增强版本,综合了的增强版本,综合了Bourneshell和和Cshell的特的特点和约定,而点和约定,而Kornshell则比则比Bourne和和Cshell执行得更快。执行得更快。 UNIXBSD的常用的常用Shell是是CShell,缺省提示符是,缺省提示符是%。Cshell是由是由Berkeley的的BillJoy编写,是标准编写,是标准BSD(
40、BerkeleySystemDistribution)命令解释。命令解释。第第2 2章章 操作系统用户界面操作系统用户界面35UNIX系统结构系统结构第第2 2章章 操作系统用户界面操作系统用户界面用户程序用户程序硬件硬件内核内核Shell文档文档管理管理各种各种实用程序实用程序编译程序编译程序文件和文件和数据库数据库系统管理用系统管理用实用程序实用程序编辑编辑软件软件通信用通信用实用软件实用软件36UNIX的命令控制界面的命令控制界面UNIX通过通过Shell向用户提供的命令可分为以下两类:向用户提供的命令可分为以下两类: 基本类基本类(1)系统访问命令,例如系统访问命令,例如login登录
41、;登录;logout退出。退出。(2)编辑和文件管理命令,编辑和文件管理命令,例如例如vi,emacs编辑文件;编辑文件;cp复制文件;复制文件;rm删除目录或文件;删除目录或文件;ls列出文件或目录名。列出文件或目录名。(3)编译、链接命令,例如编译、链接命令,例如ccC编译;编译;link链接。链接。(4)维护、管理维护、管理命令,例如命令,例如adduser增加用户;增加用户;chown改变文件或目录的所有权。改变文件或目录的所有权。(5)调试命令,调试命令,例如例如dbx程序调试器。程序调试器。(6)记帐、日期等的命令,例如记帐、日期等的命令,例如date打印或设置系统日期打印或设置系
42、统日期和时间和时间。(7)网络通信用命令,例如网络通信用命令,例如mailx电子邮件程序电子邮件程序(发送或接发送或接收电子邮件收电子邮件)。第第2 2章章 操作系统用户界面操作系统用户界面37 特殊类特殊类(1)后台命令后台命令“&”例如:例如:ccpgm.c&要求系统在空闲时编译程序要求系统在空闲时编译程序pgm.c。(2)通配符通配符“*”和和“?”*任意字符串,?任意字符串,?任意字符任意字符例如:例如:a*.c,a?.c(3)输入输出重定向输入输出重定向“”、“”、输出重定向。输出重定向。0标准输入标准输入(键盘键盘),1标准输出标准输出(显示器显示器),2标准错标准错误信息输出。误
43、信息输出。例如:例如:ab,ab,lsb(4)管道管道命令命令“|”例如:例如:ls|sort|prlsfile1,sortfile1file2,prfile2(5)滤波器功能滤波器功能grep查找字符串查找字符串(模式匹配模式匹配)。例如:。例如:grepabcfile1Sort排序。排序。tail输出文件的末尾部分输出文件的末尾部分(缺省为缺省为10行行)。第第2 2章章 操作系统用户界面操作系统用户界面38UNIX的编程界面的编程界面UNIX的系统调用可分为如下几类:的系统调用可分为如下几类:1.有关设备管理的系统调用有关设备管理的系统调用ioctlI/O总控制函数总控制函数,read读
44、文件读文件,write写文件写文件,open打开文件打开文件,close关闭文件。关闭文件。2.有关文件系统的系统调用有关文件系统的系统调用read读文件读文件,write写文件写文件,open打开文件打开文件,close关闭文件,关闭文件,creat创建新文件,创建新文件,unlink删除链接,删除链接,execl执行文件,执行文件,fcntl文件控制,文件控制,flock文件加文件加/解锁,解锁,stat取文件状态信息,取文件状态信息,mount安装文件系统。安装文件系统。第第2 2章章 操作系统用户界面操作系统用户界面39文件系统的安装与拆卸文件系统的安装与拆卸:lmount安装文件系统
45、安装文件系统格式:格式:#mountttypedevicemountpoint例:例:#mounttmsdos/dev/fd0/mnt #mounttvfat/dev/fd0/mntlumount拆卸文件系统拆卸文件系统格式:格式:#umountdevice例:例:#umount/dev/fd0 #umount/mnt第第2 2章章 操作系统用户界面操作系统用户界面40例:合并文件例:合并文件main(argc,argv)intargc;char*argv;intfd1,fd2,fd3,n;charbuf512,ch=n;fd1=open(argv1,0);/*打开打开argv1对应的文件,返
46、回标识符对应的文件,返回标识符fd1*/fd2=open(argv2,0);/*打开打开argv2对应的文件,返回标识符对应的文件,返回标识符fd2*/fd3=creat(argv3,0664);/*创建创建argv3对应的文件,返回标识符对应的文件,返回标识符fd3*/while(n=read(fd1,buf,512)0)write(fd3,buf,n);write(fd3,&ch,1);while(n=read(fd2,buf,512)0)write(fd3,buf,n);close(fd1);close(fd2);close(fd3);第第2 2章章 操作系统用户界面操作系统用户界面41
47、文件文件网络连接、网络连接、FIFO、管道、终端、文件、管道、终端、文件文件描述符文件描述符(fd)一个和打开的文件相关联的整数一个和打开的文件相关联的整数 fd=open(name,mode)name文件名文件名mode文件的存取权文件的存取权(0读,读,1写,写,2读写读写) fd=creat(name,mode)name文件名文件名mode文件的存取权文件的存取权xxxxxxxxxrwxrwxrwx(r读,读,w写,写,x执行执行execute)文件主文件主Owner文件主同组用户文件主同组用户Group其他用户其他用户Others第第2 2章章 操作系统用户界面操作系统用户界面423.
48、有关进程控制的系统调用有关进程控制的系统调用fork创建一个新进程,创建一个新进程,wait等待子进程终止,等待子进程终止,exit中止进程,中止进程,getpid获取进程标识号,获取进程标识号,getppid获取父进程获取父进程标识号,标识号,getpriority获取调度优先级,获取调度优先级,nice改变分时进程改变分时进程的优先级,的优先级,kill向进程或进程组发信号,向进程或进程组发信号,signal允许进程允许进程处理可能发生的意外事件和中断,处理可能发生的意外事件和中断,pause挂起进程等待信号,挂起进程等待信号,pipe创建管道。创建管道。4.有关进程通信的系统调用有关进程
49、通信的系统调用5.有关存储管理的系统调用有关存储管理的系统调用6.管理用系统调用管理用系统调用第第2 2章章 操作系统用户界面操作系统用户界面43例:创建进程例:创建进程main()inti;while(i=fork()=-1);/*若创建失败,则反复创建若创建失败,则反复创建*/printf(i=%dn,i);/*打印进程标识符打印进程标识符*/if(i)printf(Itisaparentprocess!n);/*i0,在父进程,在父进程中中*/elseprintf(Itisachildprocess!n);/*i=0,在子进程中,在子进程中*/第第2 2章章 操作系统用户界面操作系统用户
50、界面44kill(pid,sig)发送信号发送信号pid为接收进程的标识符,为接收进程的标识符,sig为发送信号的类型。为发送信号的类型。signal(sig,func)接收或捕获信号接收或捕获信号sig为接收或捕获的信号类型,为接收或捕获的信号类型,func为信号处理方式。为信号处理方式。func可为:可为:1.常数常数SIG_IGN忽略此信号忽略此信号(ignore)2.常数常数SIG_DFL系统默认动作系统默认动作(default)3.调用函数的地址调用函数的地址第第2 2章章 操作系统用户界面操作系统用户界面45上机步骤上机步骤已安装已安装LINUX的电脑直接启动的电脑直接启动没有安装
51、没有安装LINUX的电脑可以通过的电脑可以通过telnet访问访问开始菜单开始菜单运行:运行:telnetLINUX服务器服务器IP地址地址大机房电脑连接到大机房电脑连接到192.168.83.101其他机房电脑连接到其他机房电脑连接到192.168.83.1Login:用户名用户名Password:口令口令logout或或exit或或D注销用户注销用户第第2 2章章 操作系统用户界面操作系统用户界面46常用常用shell命令命令(LINUX环境环境)目录和文件操作目录和文件操作lls列出当前目录中所有的文件和目录名列出当前目录中所有的文件和目录名lcd改变当前目录改变当前目录lmkdir创建
52、目录创建目录lrmdir删除目录删除目录lcp拷贝文件拷贝文件lrm删除文件删除文件lmv移动文件或重命名文件移动文件或重命名文件第第2 2章章 操作系统用户界面操作系统用户界面47调试调试C程序步骤程序步骤1.输入源程序输入源程序$geditcompxx.c$vicompxx.cxx学号末学号末2位位2.编译编译$cccompxx.c-ocompxx$cccompxx.c(缺省为缺省为a.out)3.运行运行$./compxx$./a.out命令提示符命令提示符$:系统工具:系统工具终端终端gedit:附件:附件文本编辑器文本编辑器第第2 2章章 操作系统用户界面操作系统用户界面48vi中多
53、种工作方式的转换关系中多种工作方式的转换关系第第2 2章章 操作系统用户界面操作系统用户界面UNIXshellvifilename:,/,?vi的命令行方式的命令行方式vi的末行命令方式的末行命令方式vi的插入编辑方式的插入编辑方式ESCi,aZZ自动返回自动返回:wq,:q,:q!49全屏幕编辑工具全屏幕编辑工具vi(visualinterpreter)命令行方式下常用命令命令行方式下常用命令h()左移左移l()右移右移k( )上移上移j( )下移下移0光标移至行首光标移至行首$光标移至行尾光标移至行尾H光标移至屏幕的最上行光标移至屏幕的最上行M光标移至屏幕的中部光标移至屏幕的中部L光标移至
54、屏幕的最下行光标移至屏幕的最下行G光标移至文件最后一行行首光标移至文件最后一行行首nG光标移至文件第光标移至文件第n行行首行行首dd删除光标所在行删除光标所在行4dd删除从光标所在行开始删除从光标所在行开始4行行d0删除光标至行首删除光标至行首D删除光标至行尾删除光标至行尾u取消上一次操作取消上一次操作.重复上一次操作重复上一次操作第第2 2章章 操作系统用户界面操作系统用户界面50全屏幕编辑工具全屏幕编辑工具vi(visualinterpreter)末行命令方式下常用命令末行命令方式下常用命令/string从光标处向下寻找字符串从光标处向下寻找字符串string?string从光标处向上寻找
55、字符串从光标处向上寻找字符串string:w保存保存:wfilename另存为另存为:w!filename强行写盘强行写盘:q退出退出vi:q!强行退出强行退出vi:wq写盘后退出写盘后退出vi:rfilename将文件读入编辑缓冲区将文件读入编辑缓冲区:efilename打开并编辑文件打开并编辑文件:!shellcmd在在vi中执行中执行shell命令命令第第2 2章章 操作系统用户界面操作系统用户界面51WhatIsCygwin?CygwinisaLinux-likeenvironmentforWindows.Itconsistsoftwoparts:nADLL(cygwin1.dll)w
56、hichactsasaLinuxAPIemulationlayerprovidingsubstantialLinuxAPIfunctionality.nAcollectionoftoolswhichprovideLinuxlookandfeel.TheCygwinDLLcurrentlyworkswithallrecent,commerciallyreleasedx8632bitand64bitversionsofWindows,withtheexceptionofWindowsCE.NotethattheofficialsupportforWindows95,Windows98,andWin
57、dowsMewillbediscontinuedwiththenextmajorversion(1.7.0)ofCygwin.第第2 2章章 操作系统用户界面操作系统用户界面52WhatIsntCygwin?nCygwinisnotawaytorunnativelinuxappsonWindows.Youhavetorebuildyourapplicationfrom sourceifyouwantittorunonWindows.nCygwinisnotawaytomagicallymakenativeWindowsappsawareofUNIXfunctionality,likesignals,ptys,etc.Again,youneedtobuildyourappsfrom sourceifyouwanttotakeadvantageofCygwinfunctionality.GNU+Cygnus+Windows=Cygwin第第2 2章章 操作系统用户界面操作系统用户界面