第2章操作系统用户界面

上传人:沈*** 文档编号:152522170 上传时间:2022-09-15 格式:PPT 页数:52 大小:270.50KB
返回 下载 相关 举报
第2章操作系统用户界面_第1页
第1页 / 共52页
第2章操作系统用户界面_第2页
第2页 / 共52页
第2章操作系统用户界面_第3页
第3页 / 共52页
点击查看更多>>
资源描述
12.1 简介简介2.2 一般用户的输入输出界面一般用户的输入输出界面2.3 命令控制界面命令控制界面2.4 Linux与与Windows的命令控制界面的命令控制界面2.5 系统调用系统调用2.6 Linux和和Windows的系统调用的系统调用第第2 2章章 操作系统用户界面操作系统用户界面22.1 简介简介2.2 一般用户的输入输出界面一般用户的输入输出界面2.2.1 作业的定义作业的定义作业作业(Job)在一次应用业务处理过程中,从输入开始到输出结束,在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。作业步作业步一个作业所经历的加工步骤(如编译、连接和运行等)称一个作业所经历的加工步骤(如编译、连接和运行等)称为作业步。为作业步。2.2.2 作业组织作业组织作业由三部分组成作业由三部分组成 程序、数据和作业说明书。程序、数据和作业说明书。JCB(Job Control Block)由作业说明书在系统中生成。由作业说明书在系统中生成。第第2 2章章 操作系统用户界面操作系统用户界面3作业说明书的主要内容作业说明书的主要内容第第2 2章章 操作系统用户界面操作系统用户界面作业基本情况描述作业基本情况描述用户名用户名作业名作业名使用语言名使用语言名允许最大处理时间等允许最大处理时间等作业控制描述作业控制描述控制方式控制方式操作顺序操作顺序出错处理等出错处理等作业资源要求描述作业资源要求描述要求处理时间要求处理时间内存空间内存空间外设类型和数量外设类型和数量处理机优先级处理机优先级库函数或实用程序等库函数或实用程序等4 JCB的建立的建立JCB包含了系统对作业进行管理所必须的信息:包含了系统对作业进行管理所必须的信息:作业名、作业估计执行时间、优先数、作业建立时间、作业名、作业估计执行时间、优先数、作业建立时间、作业说明书文件名、程序语言类型、内存要求、外设要求、作业说明书文件名、程序语言类型、内存要求、外设要求、作业状态以及作业在外存中的存储地址等。作业状态以及作业在外存中的存储地址等。作业的四种状态:作业的四种状态:1.提交状态提交状态 2.后备状态后备状态 3.执行状态执行状态 4.完成状态完成状态第第2 2章章 操作系统用户界面操作系统用户界面52.2.3 一般用户的输入输出方式一般用户的输入输出方式 SPOOLING(或或SPOOL)Simultaneous Peripheral Operations On-Line SPOOLING又可译作外围设备同时联机操作。又可译作外围设备同时联机操作。“斯普林斯普林”操作或操作或“假脱机假脱机”操作操作第第2 2章章 操作系统用户界面操作系统用户界面 输入输出方式输入输出方式1.联机输入输出方式联机输入输出方式2.脱机输入输出方式脱机输入输出方式3.直接耦合方式直接耦合方式4.SPOOLING系统系统5.网络联机方式网络联机方式62.3 命令控制界面命令控制界面用户接口用户接口 程序一级的接口程序一级的接口程序员接口程序员接口 作业一级的接口作业一级的接口操作员接口操作员接口 作业控制方式分为两大类:脱机控制方式和联机控制作业控制方式分为两大类:脱机控制方式和联机控制方式(即批处理控制方式和交互控制方式)方式(即批处理控制方式和交互控制方式)脱机控制方式脱机控制方式用作业控制语言编写作业说明书用作业控制语言编写作业说明书联机控制方式联机控制方式用户使用系统提供的操作命令和系统会用户使用系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。话,交互地控制程序执行和管理计算机系统。第第2 2章章 操作系统用户界面操作系统用户界面7 联机控制方式的命令种类联机控制方式的命令种类第第2 2章章 操作系统用户界面操作系统用户界面联机控制方式的命令种类联机控制方式的命令种类1.环境设置环境设置2.执行权限管理执行权限管理3.系统管理系统管理4.文件管理文件管理5.编辑、编译、链接装配编辑、编译、链接装配6.通信通信7.资源要求资源要求82.4 Linux与与Windows的命令控制界面的命令控制界面2.4.1 Linux的的命令控制界面命令控制界面Linux命令主要有以下命令主要有以下9类:类:(1)系统维护及管理命令系统维护及管理命令date显示和设置系统日期和时间显示和设置系统日期和时间setenv查询或设置环境变量查询或设置环境变量(set environment variable)(2)文件操作及管理命令文件操作及管理命令ls显示文件及目录显示文件及目录find查找文件查找文件(3)系统维护及管理命令系统维护及管理命令kill发送一个发送一个 signal 给某一个给某一个 process at在指定的时间执行指令在指定的时间执行指令 第第2 2章章 操作系统用户界面操作系统用户界面9(4)磁盘及设备管理命令磁盘及设备管理命令df检查文件系统的磁盘空间占用情况检查文件系统的磁盘空间占用情况(disk free)du显示磁盘空间的使用情况显示磁盘空间的使用情况(disk usage)mount挂载设备挂载设备(5)用户管理命令用户管理命令adduser新增用户帐户新增用户帐户userdel删除用户帐号删除用户帐号(6)文档操作命令文档操作命令csplit分割文件分割文件(Split a file into context-determined pieces)sort对文件中的各行进行排序对文件中的各行进行排序第第2 2章章 操作系统用户界面操作系统用户界面10(7)网络通信命令网络通信命令netstat显示网络连接、路由表和网络接口信息显示网络连接、路由表和网络接口信息ifconfig显示或设置网络设备显示或设置网络设备(8)程序开发命令程序开发命令ccc编译编译link链接链接(9)X Window管理命令管理命令startx启动启动X WindowXF86setup图形界面下运行的配置程序图形界面下运行的配置程序第第2 2章章 操作系统用户界面操作系统用户界面11Shell程序组成:程序组成:(1)命令或命令或Shell程序;程序;(2)位置参数;位置参数;(3)变量及特殊字符;变量及特殊字符;(4)表达式比较;表达式比较;(5)控制流程语句,例如控制流程语句,例如while,case等;等;(6)函数。函数。例:备份当前目录下的所有文件。例:备份当前目录下的所有文件。mkdir backupfor file in lsdo cp$file backup/$file if$?ne 0 then echo“copying$file error”fidone第第2 2章章 操作系统用户界面操作系统用户界面12shell预定义变量是由预定义变量是由$符和另一个符号组成的,常用的符和另一个符号组成的,常用的shell预定义变量有:预定义变量有:$#:位置参数的数量:位置参数的数量$*:所有位置参数的内容:所有位置参数的内容$?:命令执行后返回的状态:命令执行后返回的状态$:当前进程的进程号:当前进程的进程号$!:后台运行的最后一个进程号:后台运行的最后一个进程号$0:当前执行的进程名:当前执行的进程名其中,其中,“$?”用于检查上一个命令执行是否正确用于检查上一个命令执行是否正确(在在Linux中,命令退出状态为中,命令退出状态为0表示该命令正确执行,任表示该命令正确执行,任何非何非0值表示命令出错值表示命令出错)。第第2 2章章 操作系统用户界面操作系统用户界面132.4.2 Windows的的命令控制界面命令控制界面Windows命令主要有以下命令主要有以下4类:类:(1)系统信息命令系统信息命令timeDisplays or sets the system time.显示或设置系统时间显示或设置系统时间dateDisplays or sets the date.显示或设置日期显示或设置日期memDisplays the amount of used and free memory in your system.driverqueryEnables an administrator to enumerate and display the list of installed device drivers as well as their properties.systeminfoThis command line tool enables an administrator to query for basic system configuration information.第第2 2章章 操作系统用户界面操作系统用户界面14(2)系统操作命令系统操作命令shutdown关机关机runas允许用户用其他权限运行指定的工具和程序,而不是用允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。户当前登录提供的权限。taskkillThis command line tool can be used to end one or more processes.Processes can be killed by the process id or image name.(3)文件系统命令文件系统命令copyCopies one or more files to another location.del删除文件删除文件mkdir建立目录建立目录(4)网络通信命令网络通信命令ping检查网络是否能够连通检查网络是否能够连通netstat显示当前正在活动的网络连接的详细信息显示当前正在活动的网络连接的详细信息route主要用来管理本机路由表,可以查看,添加、修改或删主要用来管理本机路由表,可以查看,添加、修改或删除路由表条目。除路由表条目。第第2 2章章 操作系统用户界面操作系统用户界面15n&同时执行多条命令,而不管命令是否执行成功同时执行多条命令,而不管命令是否执行成功。Usage:第一条命令:第一条命令&第二条命令第二条命令&第三条命令第三条命令.n&同时执行多条命令,当碰到执行出错的命令后将不执行同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令。后面的命令,如果一直没有出错则一直执行完所有命令。Usage:第一条命令:第一条命令&第二条命令第二条命令&第三条命令第三条命令.n|同时执行多条命令,当碰到执行正确的命令后将不执行后同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。面的命令,如果没有出现正确的命令则一直执行完所有命令。Usage:第一条命令:第一条命令|第二条命令第二条命令|第三条命令第三条命令.1.直接在命令行输出命令直接在命令行输出命令Systeminfo&mem2.批处理批处理echo offmkdir testecho hellopause第第2 2章章 操作系统用户界面操作系统用户界面16例:例:echo offmem%1meminfo.txtecho generate memoryinfo ok!echo offtype%1*.txtecho type ok!echo offmkdir testcall exam2.bat testcall exam3.bat testecho call ok!pause第第2 2章章 操作系统用户界面操作系统用户界面17 2.5 系统调用系统调用进程进程(Process)是一个在功能上独立的程序的一次执行过程。是一个在功能上独立的程序的一次执行过程。线程线程(Thread)是进程中进行数据处理操作的执行单位,每个是进程中进行数据处理操作的执行单位,每个进程中至少拥有一个线程来进行数据处理操作。进程中至少拥有一个线程来进行数据处理操作。第第2 2章章 操作系统用户界面操作系统用户界面系统调用分类系统调用分类1.设备管理设备管理2.文件管理文件管理3.进程控制进程控制4.进程通信进程通信5.存储管理存储管理6.线程管理线程管理18 陷阱陷阱(Trap)处理机构处理机构 陷阱陷阱(Trap)处理机构处理机构 在系统中为控制系统调用在系统中为控制系统调用服务的机构。服务的机构。陷阱指令陷阱指令(或称访管指令或称访管指令)由于系统调用而引起由于系统调用而引起处理机中断的指令。处理机中断的指令。系统态系统态(管态管态)处理机在系统程序中执行。处理机在系统程序中执行。用户态用户态(目态目态)处理机在用户程序中执行。处理机在用户程序中执行。第第2 2章章 操作系统用户界面操作系统用户界面192.6 Linux和和Windows的系统调用的系统调用2.6.1 Linux系统调用系统调用Linux系统调用从功能上可分为如下系统调用从功能上可分为如下6类:类:(1)设备管理的系统调用设备管理的系统调用(2)文件系统操作的系统调用文件系统操作的系统调用(3)进程控制的系统调用进程控制的系统调用(4)存储管理的系统调用存储管理的系统调用(5)管理用的的系统调用管理用的的系统调用(6)通信的系统调用通信的系统调用第第2 2章章 操作系统用户界面操作系统用户界面20例:文件复制。例:文件复制。#include#include#define SIZE 1024void filecopy(char*Infile,char*Outfile)char BufferSIZE;int In_fh,Out_fh,Count;if(In_fh=open(Infile,O_RDONLY)=-1)printf(Opening Infile);if(Out_fh=open(Outfile,(O_WRONLY|O_CREAT|O_TRUNC),(S_IRUSR|S_IWUSR)=-1)printf(Opening Outfile);while(Count=read(In_fh,Buffer,sizeof(Buffer)0)if(write(Out_fh,Buffer,Count)!=Count)printf(Writing data);if(Count=-1)printf(Reading data);close(In_fh);close(Out_fh);第第2 2章章 操作系统用户界面操作系统用户界面21int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);int close(int fd);open函数有两个形式,其中函数有两个形式,其中pathname是要打开的文件名是要打开的文件名(包含路径包含路径名称,缺省是认为在当前目录下名称,缺省是认为在当前目录下)。flags可以取下面的一个值或者可以取下面的一个值或者是几个值的组合。是几个值的组合。O_RDONLY以只读的方式打开文件以只读的方式打开文件O_WRONLY以只写的方式打开文件以只写的方式打开文件 O_RDWR以读写的方式打开文件以读写的方式打开文件O_APPEND以追加的方式打开文件以追加的方式打开文件O_CREAT创建一个文件创建一个文件 O_EXCL如果使用了如果使用了O_CREAT而且文件已经存在,就会发生而且文件已经存在,就会发生一个错误一个错误 O_NONBLOCK以非阻塞的方式打开一个文件以非阻塞的方式打开一个文件O_TRUNC如果文件已经存在,则删除文件的内容如果文件已经存在,则删除文件的内容第第2 2章章 操作系统用户界面操作系统用户界面22在在fcntl.h中有定义:中有定义:#define O_RDONLY 00000000#define O_WRONLY 00000001#define O_RDWR 00000002#define O_CREAT 00000100#define O_EXCL 00000200#define O_NOCTTY 00000400#define O_TRUNC 00001000#define O_APPEND 00002000#define O_NONBLOCK 00004000NOCTTY(no controlling terminal)第第2 2章章 操作系统用户界面操作系统用户界面23 前面三个标志只能使用任意的一个,如果使用了前面三个标志只能使用任意的一个,如果使用了O_CREAT标志,标志,那么我们要使用那么我们要使用open的第二种形式,还要指定的第二种形式,还要指定mode标志,用来表示文标志,用来表示文件的访问权限。件的访问权限。mode可以是以下情况的组合:可以是以下情况的组合:S_IRUSR用户可以读用户可以读S_IWUSR用户可以写用户可以写S_IXUSR用户可以执行用户可以执行S_IRWXU 用户可以读写执行用户可以读写执行S_IRGRP组可以读组可以读S_IWGRP组可以写组可以写S_IXGRP组可以执行组可以执行S_IRWXG组可以读写执行组可以读写执行S_IROTH其他人可以读其他人可以读S_IWOTH其他人可以写其他人可以写S_IXOTH其他人可以执行其他人可以执行S_IRWXO其他人可以读写执行其他人可以读写执行S_ISUID设置用户执行设置用户执行IDS_ISGID设置组的执行设置组的执行ID第第2 2章章 操作系统用户界面操作系统用户界面24在在stat.h中有定义:中有定义:#define S_IRWXU 00700#define S_IRUSR 00400#define S_IWUSR 00200#define S_IXUSR 00100#define S_IRWXG 00070#define S_IRGRP 00040#define S_IWGRP 00020#define S_IXGRP 00010#define S_IRWXO 00007#define S_IROTH 00004#define S_IWOTH 00002#define S_IXOTH 00001#define S_ISUID 0004000#define S_ISGID 0002000 第第2 2章章 操作系统用户界面操作系统用户界面252.6.2 Windows系统调用系统调用常用的常用的API(Application Programming Interface)函数调用可分为函数调用可分为如下五类:如下五类:(1)窗口管理类窗口管理类(2)图形设备接口图形设备接口GDI(Graphics Device Interface)类类(3)系统服务类系统服务类(4)国际特性类国际特性类(5)网络服务类网络服务类GDI32.DLL屏幕显示及打印功能的函数集屏幕显示及打印功能的函数集USER32.DLL鼠标、键盘、通信端口、声音、时钟功能的函鼠标、键盘、通信端口、声音、时钟功能的函数集数集KERNEL32.DLL文件及内存管理文件及内存管理(核心部分核心部分)功能的函数集功能的函数集MPR.DLLWindows 32网络接口库网络接口库MPRMultiple Provider Router第第2 2章章 操作系统用户界面操作系统用户界面26#include/入口函数入口函数int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int nCmdshow)HANDLE hFile;LPTSTR lpBuffer=Hello World!;/创建文件创建文件hFile=CreateFile(C:File.txt,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);CloseHandle(hFile);TCHAR szBuf128;DWORD dwRead;DWORD dwWritten;第第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);/从文件中读出一个字符串并将它显示在对话框中从文件中读出一个字符串并将它显示在对话框中if(ReadFile(hFile,szBuf,strlen(lpBuffer)+1,&dwWritten,NULL)MessageBox(NULL,szBuf,EXAM,MB_OK);CloseHandle(hFile);return 0;第第2 2章章 操作系统用户界面操作系统用户界面28 WinMain函数接收函数接收4个参数,这些参数都是在系统调用个参数,这些参数都是在系统调用WinMain函数时,传递给应用程序的。函数时,传递给应用程序的。n 第一个参数第一个参数hInstance表示该程序当前运行的实例的句柄,表示该程序当前运行的实例的句柄,这是一个数值。当程序在这是一个数值。当程序在Windows下运行时,它唯一标识下运行时,它唯一标识运行中的实例(注意,只有运行中的程序实例,才有实例运行中的实例(注意,只有运行中的程序实例,才有实例句柄)。一个应用程序可以运行多个实例,每运行一个实句柄)。一个应用程序可以运行多个实例,每运行一个实例,系统都会给该实例分配一个句柄值,并通过例,系统都会给该实例分配一个句柄值,并通过hInstance参数传递给参数传递给WinMain函数。函数。n 第二个参数第二个参数hPrevInstance表示当前实例的前一个实例的表示当前实例的前一个实例的句柄。通过查看句柄。通过查看MSDN我们可以知道,在我们可以知道,在Win32环境下,环境下,这个参数总是这个参数总是NULL,即在,即在Win32环境下,这个参数不再起环境下,这个参数不再起作用。作用。第第2 2章章 操作系统用户界面操作系统用户界面29n 第三个参数第三个参数lpCmdLine是一个以空终止的字符串,指定传是一个以空终止的字符串,指定传递给应用程序的命令行参数。例如:在递给应用程序的命令行参数。例如:在D盘下有一个盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本文件,当我们用鼠标双击这个文件时将启动记事本程序(程序(notepad.exe),此时系统会将),此时系统会将D:sunxin.txt作为命令作为命令行参数传递给记事本程序的行参数传递给记事本程序的WinMain函数,记事本程序在得函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。到这个文件的全路径名后,就在窗口中显示该文件的内容。要在要在VC+开发环境中向应用程序传递参数,可以单击菜单开发环境中向应用程序传递参数,可以单击菜单【Project】【Settings】,选择】,选择“Debug”选项卡,在选项卡,在“Program arguments”编辑框中输入你想传递给应用程序的编辑框中输入你想传递给应用程序的参数。参数。n 第四个参数第四个参数nCmdShow指定程序的窗口应该如何显示,例指定程序的窗口应该如何显示,例如最大化、最小化、隐藏等。这个参数的值由该程序的调用如最大化、最小化、隐藏等。这个参数的值由该程序的调用者所指定,应用程序通常不需要去理会这个参数的值。者所指定,应用程序通常不需要去理会这个参数的值。第第2 2章章 操作系统用户界面操作系统用户界面30 UNIX发展历史与特点发展历史与特点 UNIX概述概述 A multi-user,multitasking OS A Time-Sharing System Kernel and Shell UNIX的两大流派:的两大流派:(1)UNIX System V Res4.0,记:,记:SVR4 (2)UNIX 4.4BSDBSDBerkeley Software Distribution第第2 2章章 操作系统用户界面操作系统用户界面31 UNIX的移植产品或变种的移植产品或变种 如:如:SUN公司的公司的Solaris 2.6,IBM公司的公司的AIX 4.2,微机上的微机上的SCO UNIX,Xenix和和Linux等。等。UNIX标准化标准化 (1)SVID标准标准 国际国际UNIX组织和组织和AT&T公司于公司于85年宣布的年宣布的System V Interface Definition,即,即SVID。该文件在系统调用、例行程序库和实用程序等方面该文件在系统调用、例行程序库和实用程序等方面 描述了描述了UNIX System V。它给出了定义它给出了定义UNIX System V的基准,的基准,UNIX System V的所有提供者必须遵循这一基准。的所有提供者必须遵循这一基准。(2)POSIX规范(规范(Portable Operating System Interface)美国的美国的UNIX用户协会和美国的用户协会和美国的IEEE学会在学会在85年制订年制订 的一个可移植的操作系统规范。的一个可移植的操作系统规范。它包括可移植操作系统的规范、命令语言它包括可移植操作系统的规范、命令语言Shell和其和其 它工具、以及验证测试方法等。它工具、以及验证测试方法等。第第2 2章章 操作系统用户界面操作系统用户界面32 UNIX系统的特点系统的特点 (1)UNIX系统是一个可供多用户同时操作的会话式系统是一个可供多用户同时操作的会话式分时操作系统。分时操作系统。(2)UNIX系统向用户提供了两种用户友好的界面或系统向用户提供了两种用户友好的界面或接口:接口:程序一级的界面程序一级的界面系统调用系统调用 操作一级的界面操作一级的界面命令命令(Shell)(3)UNIX系统具有一个可装卸的分层树型结构文件系统具有一个可装卸的分层树型结构文件系统。系统。(4)UNIX系统把所有的外部设备都当作文件,并分系统把所有的外部设备都当作文件,并分别赋予它们对应的文件名。别赋予它们对应的文件名。(5)UNIX系统核心程序的绝大部分源代码和系统上系统核心程序的绝大部分源代码和系统上的支持软件都用的支持软件都用C语言编写。且语言编写。且UNIX系统是一个开放式系统是一个开放式系统。系统。第第2 2章章 操作系统用户界面操作系统用户界面33u 如何在如何在Windows主机上练习主机上练习Unix命令命令 申请帐号申请帐号 http:/www.cyberspace.org Internet上的上的Unix主机主机(美国美国),提供免费帐号供使用。可以先去那里申请一个帐号,提供免费帐号供使用。可以先去那里申请一个帐号,然后就可以在那里练习然后就可以在那里练习Unix命令。命令。连接连接 成功申请帐号之后,可用下列方法连上主机:成功申请帐号之后,可用下列方法连上主机:(1)DOS 在提示符下输入在提示符下输入telnet cyberspace.org (2)Windows在在IE地址栏里地址栏里telnet:/cyberspace.org 输入用户名和密码后,出现系统提示符:输入用户名和密码后,出现系统提示符:grex.cyberspace.org%第第2 2章章 操作系统用户界面操作系统用户界面34u Unix通过通过Shell实现系统与用户的交互,在实现系统与用户的交互,在Shell提示符下,提示符下,用户键入用户键入Unix命令。命令。UNIX System V 的常用的常用Shell 是是Bourne Shell(现在多为现在多为Korn Shell),缺省提示符是,缺省提示符是$。Bourne shell可以说是第一个可以说是第一个UNIX shell,它是由,它是由AT&T贝尔实验室的贝尔实验室的Stephen Bourne 所编写。所编写。Korn shell 是是AT&T贝尔实验室的贝尔实验室的David Korn 所开发,所开发,是是Bourne shell的增强版本,综合了的增强版本,综合了Bourne shell和和C shell的特的特点和约定,而点和约定,而Korn shell则比则比Bourne和和C shell执行得更快。执行得更快。UNIX BSD的常用的常用Shell 是是C Shell,缺省提示符是,缺省提示符是%。C shell是由是由Berkeley的的Bill Joy编写,是标准编写,是标准BSD(Berkeley System Distribution)命令解释。命令解释。第第2 2章章 操作系统用户界面操作系统用户界面35 UNIX系统结构系统结构第第2 2章章 操作系统用户界面操作系统用户界面用户程序用户程序硬件硬件内核内核Shell文档文档管理管理各种各种实用程序实用程序编译程序编译程序文件和文件和数据库数据库系统管理用系统管理用实用程序实用程序编辑编辑软件软件通信用通信用实用软件实用软件36 UNIX的命令控制界面的命令控制界面 UNIX通过通过Shell向用户提供的命令可分为以下两类:向用户提供的命令可分为以下两类:基本类基本类 (1)系统访问命令,例如系统访问命令,例如login登录;登录;logout退出。退出。(2)编辑和文件管理命令,编辑和文件管理命令,例如例如vi,emacs编辑文件;编辑文件;cp复制文件;复制文件;rm删除目录或文件;删除目录或文件;ls列出文件或目录名。列出文件或目录名。(3)编译、链接命令,例如编译、链接命令,例如ccC 编译;编译;link链接。链接。(4)维护、管理维护、管理命令,例如命令,例如adduser增加用户;增加用户;chown改变文件或目录的所有权。改变文件或目录的所有权。(5)调试命令,调试命令,例如例如dbx程序调试器。程序调试器。(6)记帐、日期等的命令,例如记帐、日期等的命令,例如date打印或设置系统日期打印或设置系统日期和时间和时间。(7)网络通信用命令,例如网络通信用命令,例如mailx电子邮件程序电子邮件程序(发送或接发送或接收电子邮件收电子邮件)。第第2 2章章 操作系统用户界面操作系统用户界面37 特殊类特殊类 (1)后台命令后台命令“&”例如:例如:cc pgm.c&要求系统在空闲时编译程序要求系统在空闲时编译程序pgm.c。(2)通配符通配符“*”和和“?”*任意字符串,?任意字符串,?任意字符任意字符 例如:例如:a*.c,a?.c (3)输入输出重定向输入输出重定向“”、“”、输出重定向。输出重定向。0标准输入标准输入(键盘键盘),1标准输出标准输出(显示器显示器),2标准错误标准错误信息输出。信息输出。例如:例如:ab,ab,lsb (4)管道管道命令命令“|”例如:例如:ls|sort|prlsfile1,sort file1file2,pr file2 (5)滤波器功能滤波器功能 grep查找字符串查找字符串(模式匹配模式匹配)。例如:。例如:grep abc file1 Sort排序。排序。tail输出文件的末尾部分输出文件的末尾部分(缺省为缺省为10行行)。第第2 2章章 操作系统用户界面操作系统用户界面38 UNIX的编程界面的编程界面 UNIX的系统调用可分为如下几类:的系统调用可分为如下几类:1.有关设备管理的系统调用有关设备管理的系统调用 ioctlI/O总控制函数总控制函数,read读文件读文件,write写文件写文件,open打开文件打开文件,close关闭文件。关闭文件。2.有关文件系统的系统调用有关文件系统的系统调用 read读文件读文件,write写文件写文件,open打开文件打开文件,close关闭文件,关闭文件,creat创建新文件,创建新文件,unlink删除链接,删除链接,execl执行文件,执行文件,fcntl文件控制,文件控制,flock文件加文件加/解锁,解锁,stat取文件状态信息,取文件状态信息,mount安装文件系统。安装文件系统。第第2 2章章 操作系统用户界面操作系统用户界面39 文件系统的安装与拆卸文件系统的安装与拆卸:l mount安装文件系统安装文件系统 格式:格式:#mount t type device mountpoint 例:例:#mount t msdos /dev/fd0 /mnt#mount t vfat /dev/fd0 /mntl umount拆卸文件系统拆卸文件系统 格式:格式:#umount device 例:例:#umount /dev/fd0#umount /mnt第第2 2章章 操作系统用户界面操作系统用户界面40例:合并文件例:合并文件main(argc,argv)int argc;char*argv;int fd1,fd2,fd3,n;char buf512,ch=n;fd1=open(argv1,0);/*打开打开argv1对应的文件,返回标识符对应的文件,返回标识符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文件文件网络连接、网络连接、FIFO、管道、终端、文件、管道、终端、文件文件描述符文件描述符(fd)一个和打开的文件相关联的整数一个和打开的文件相关联的整数 fd=open(name,mode)name文件名文件名 mode 文件的存取权文件的存取权 (0读,读,1写,写,2读写读写)fd=creat(name,mode)name文件名文件名 mode 文件的存取权文件的存取权 xxx xxx xxxrwx rwx rwx (r读,读,w写,写,x执行执行execute)文件主文件主Owner 文件主同组用户文件主同组用户Group 其他用户其他用户Others第第2 2章章 操作系统用户界面操作系统用户界面42 3.有关进程控制的系统调用有关进程控制的系统调用 fork创建一个新进程,创建一个新进程,wait等待子进程终止,等待子进程终止,exit中止进程,中止进程,getpid获取进程标识号,获取进程标识号,getppid获取父进程获取父进程标识号,标识号,getpriority获取调度优先级,获取调度优先级,nice改变分时进程改变分时进程的优先级,的优先级,kill向进程或进程组发信号,向进程或进程组发信号,signal允许进程允许进程处理可能发生的意外事件和中断,处理可能发生的意外事件和中断,pause挂起进程等待信号,挂起进程等待信号,pipe创建管道。创建管道。4.有关进程通信的系统调用有关进程通信的系统调用 5.有关存储管理的系统调用有关存储管理的系统调用 6.管理用系统调用管理用系统调用第第2 2章章 操作系统用户界面操作系统用户界面43例:创建进程例:创建进程main()int i;while(i=fork()=-1);/*若创建失败,则反复创建若创建失败,则反复创建*/printf(i=%dn,i);/*打印进程标识符打印进程标识符*/if(i)printf(It is a parent process!n);/*i0,在父进程,在父进程中中*/else printf(It is a child process!n);/*i=0,在子进程中,在子进程中*/第第2 2章章 操作系统用户界面操作系统用户界面44kill(pid,sig)发送信号发送信号pid为接收进程的标识符,为接收进程的标识符,sig为发送信号的类型。为发送信号的类型。signal(sig,func)接收或捕获信号接收或捕获信号sig为接收或捕获的信号类型,为接收或捕获的信号类型,func为信号处理方式。为信号处理方式。func可为:可为:1.常数常数SIG_IGN忽略此信号忽略此信号(ignore)2.常数常数SIG_DFL系统默认动作系统默认动作(default)3.调用函数的地址调用函数的地址第第2 2章章 操作系统用户界面操作系统用户界面45上机步骤上机步骤 已安装已安装LINUX的电脑直接启动的电脑直接启动 没有安装没有安装LINUX的电脑可以通过的电脑可以通过telnet访问访问 开始菜单开始菜单运行:运行:telnet LINUX 服务器服务器IP地址地址 大机房电脑连接到大机房电脑连接到 192.168.83.101 其他机房电脑连接到其他机房电脑连接到 192.168.83.1 Login:用户名用户名 Password:口令口令 logout或或exit或或D注销用户注销用户第第2 2章章 操作系统用户界面操作系统用户界面46常用常用shell命令命令(LINUX环境环境)目录和文件操作目录和文件操作l ls列出当前目录中所有的文件和目录名列出当前目录中所有的文件和目录名l cd改变当前目录改变当前目录l mkdir创建目录创建目录l rmdir删除目录删除目录l cp拷贝文件拷贝文件l rm删除文件删除文件l mv移动文件或重命名文件移动文件或重命名文件第第2 2章章 操作系统用户界面操作系统用户界面47调试调试C程序步骤程序步骤1.输入源程序输入源程序$gedit compxx.c$vi compxx.c xx学号末学号末2位位2.编译编译$cc compxx.c -o compxx$cc compxx.c (缺省为缺省为a.out)3.运行运行$./compxx$./a.out命令提示符命令提示符$:系统工具:系统工具终端终端gedit:附件:附件文本编辑器文本编辑器第第2 2章章 操作系统用户界面操作系统用户界面48vi中多种工作方式的转换关系中多种工作方式的转换关系第第2 2章章 操作系统用户界面操作系统用户界面UNIX shellvi filename:,/,?vi的命令行方式的命令行方式vi的末行命令方式的末行命令方式vi的插入编辑方式的插入编辑方式ESCi,aZZ 自动返回自动返回:wq,:q,:q!49全屏幕编辑工具全屏幕编辑工具vi(visual interpreter)命令行方式下常用命令命令行方式下常用命令 h()左移左移 l()右移右移 k()上移上移 j()下移下移 0光标移至行首光标移至行首$光标移至行尾光标移至行尾 H光标移至屏幕的最上行光标移至屏幕的最上行 M光标移至屏幕的中部光标移至屏幕的中部 L光标移至屏幕的最下行光标移至屏幕的最下行 G光标移至文件最后一行行首光标移至文件最后一行行首 nG光标移至文件第光标移至文件第n行行首行行首 dd删除光标所在行删除光标所在行 4dd删除从光标所在行开始删除从光标所在行开始4行行 d0删除光标至行首删除光标至行首 D删除光标至行尾删除光标至行尾 u取消上一次操作取消上一次操作 .重复上一次操作重复上一次操作第第2 2章章 操作系统用户界面操作系统用户界面50全屏幕编辑工具全屏幕编辑工具vi(visual interpreter)末行命令方式下常用命令末行命令方式下常用命令 /string从光标处向下寻找字符串从光标处向下寻找字符串string?string从光标处向上寻找字符串从光标处向上寻找字符串string :w保存保存 :w filename另存为另存为 :w!filename强行写盘强行写盘 :q退出退出vi :q!强行退出强行退出vi :wq写盘后退出写盘后退出vi :r filename将文件读入编辑缓冲区将文件读入编辑缓冲区 :e filename打开并编辑文件打开并编辑文件 :!shellcmd在在vi中执行中执行shell命令命令第第2 2章章 操作系统用户界面操作系统用户界面51What Is Cygwin?Cygwin is a Linux-like environment for Windows.It consists of two parts:n A DLL(cygwin1.dll)which acts as a Linux API emulation layer providing substantial Linux API functionality.n A collection of tools which provide Linux look and feel.The Cygwin DLL currently works with all recent,commercially released x86 32 bit and 64 bit versions of Windows,with the exception of Windows CE.Note that the official support for Windows 95,Windows 98,and Windows Me will be discontinued with the next major version(1.7.0)of Cygwin.第第2 2章章 操作系统用户界面操作系统用户界面52What Isnt Cygwin?n Cygwin is not a way to run native linux apps on Windows.You have to rebuild your application from source if you want it to run on Windows.n Cygwin is not a way to magically make native Windows apps aware of UNIX functionality,like signals,ptys,etc.Again,you need to build your apps from source if you want to take advantage of Cygwin functionality.GNU+Cygnus+Windows=Cygwin第第2 2章章 操作系统用户界面操作系统用户界面
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!