




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
技 术 文 件技术文件名称:Unix操作系统培训讲义 技术文件编号: 版 本:V1.0 文件质量等级:A级共 19 页(包括封面) 拟 制 刘建华 审 核 会 签 标准化 批 准 深圳市中兴通讯股份有限公司目 录1Unix操作系统中的shell32用户和组43用户个人配置文件54文件系统65文件和目录65.1常用文件管理命令65.2文件类型和属性75.3文件权限85.4绝对权限:二进制屏蔽106Unix上的编程126.1进程控制126.1.1进程标识126.1.2进程创建136.2进程终止146.3查看进程状态166.4线程控制166.4.1Posix线程176.4.2用户线程和内核线程176.4.3线程创建186.4.4线程的中止196.5同步196.6进程间通讯20UNIX操作系统讲义1 Unix操作系统中的shellUnix操作系统的命令行相当于MS-DOS的命令行,或者Windows操作系统中的dos prompt。不管是MS DOS中的命令行,还是dos prompt,都有一个命令解释器。在Unix中也是一样,在Unix中命令解释器称作Shell。在Unix操作系统有多种shell,用得最广的shell有Bourne Shell、C Shell和Korn Shell。在Unix中创建一个用户时,指定用户登录后使用的Shell,也可以从一个Shell切换到其它Shell。在命令行提示下直接输入要使用的shell名,即可更换shell。常用的Shell有:名 称路 径环境变量定义Bourne shell/bin/sh格式:VARIABLE=value;export VARIABLEC shell/bin/csh格式:setenv VARIABLE valueKorn shell/bin/ksh格式:VARIABLE=value;export VARIABLEBourne shell是用于普通目的的小shell。C shell在Berkeley Unix的众多用户间广为流传。C shell的用法与Bourne shell和Korn shell完全不同。C shell最重要的优点是命令历史、命令编辑和别名。命令历史存储最近使用的命令列表。可以显示这些命令并像原来一样重新使用,还可以通过编辑更改命令。而别名允许输入常用命令的短名字,甚至可以组合常用命令序列并提供该序列的别名。Korn shell和Bourne shell使用相同的文法,但是它有许多内置的功能可以从shell直接定义。Korn shell提供了比C shell更好的命令编辑形式,Korn shell也提供命令历史和别名。2 用户和组Unix中的超级用户为root。使用超级用户登录后,shell的缺省提示符是#。执行su命令可以转换到超级用户的身份。使用who命令,可以查看登录到系统上的用户的信息。whoami命令显示当前用户的用户名。passwd命令改变用户的口令。其它用户管理命令列表:命 令用 途useradd增加一个用户userdel删除一个用户usermod修改一个用户groupadd增加一个组groupdel删除一个组groupmod修改一个组以上命令一般只有root用户才有权限。3 用户个人配置文件Unix系统中的每个用户有一个配置文件,也称作初始化文件。初始化文件放在个人目录下。在Unix中用户的初始化文件的名称与shell有关。不同的shell有不同的配置文件。名 称初始化文件说 明Bourne file当用户登录进入或从命令行启动Bourne shell时读取.profile。C shell.login,.cshrc当用户登录时,读取.login文件,然后是.cshrc文件。当从命令行启动C shell时,只读取.cshrc文件。Korn file,.ksh-env当用户登录进入时,读取.profile文件,然后是.ksh-env文件。可以将.ksh-env文件命名为.kshrc。但必须在.profile中设置.ENV环境变量。例如:ENV=$HOME/.kshrc;export ENV4 文件系统在Unix操作系统中,每一个硬盘分区映射为一个文件系统。像软驱和光驱等设备,同样映射为一个文件系统。每个文件系统有一个安装点,即对应的目录。Unix中有两个最基本的文件系统,根文件系统、swap文件系统。根文件系统映射为Unix操作系统的根目录“/”。在一个文件系统中可以创建目录和子目录,并形成一个目录树。其它的文件系统映射为根文件系统中的目录。映射的目录可以位于根文件系统的任何目录位置,既可以根目录,也可以是根目录下的子目录。文件系统必须显示地安装,也可以动态卸载。安装命令为mount,卸载命令为umount。如果想在系统启动时自动安装,可以在/etc/fstab(在solaris中是/etc/vfstab)文件中设置安装命令。执行df命令可以显示系统中安装的文件系统。5 文件和目录5.1 常用文件管理命令命 令功 能ls列出当前目录下的所有文件和目录。cd改变当前目录。如果cd后不跟目录名,当前目录切换为用户的个人目录。rm删除文件。cp复制文件。mv移动文件。mkdir创建目录rmdir删除目录cat显示文件内容more分页显示文件find用于查找目录或子目录下的文件。5.2 文件类型和属性Unix最优秀的特性在于它的设备无关性。通过文件描述符实现的统一的设备接口,他允许对终端、磁盘、磁带、音频甚至网络通信使用相同的I/O调用。在Unix系统中,大多数文件是普通文件或目录,但还有其它一些文件类型。文件类型说 明普通文件最常见的文件类型。它包含了某种形式的数据。目录文件这种文件包含了其他文件的名字以及指向与这些文件有关信息的指针字符特殊文件用于系统中的某些类型的设备块特殊文件用于磁盘设备。系统中的所有设备不是字符特殊文件,就是块特殊文件FIFO用于进程间的通信,也称为命名管道socket套接字文件,用于进程间的网络通信符号连接这种文件指向另一个文件ls l命令在列出文件的同时还列出文件的属性。文件的属性从左至右依次为文件类型和权限许可、连接数、文件的所有者、文件所有者所属组名,以byte度量的文件大小、文件最后被修改的日期和时间、文件的名字。5.3 文件权限在Unix系统中有三种不同类型的用户可对目录和文件加以访问: 文件所有者 组 其他人所有者是文件的创建者。用户被分成组,用户属于确定的组。所有者拥有文件的管理权限,他可以把权限赋予组中的其他用户,以及其它人(非组内的用户)。文件的权限分为读权限、写权限和执行权限。可执行文件或shell程序赋予执行权限才有实际意义。因此文件的权限分为三组:文件所有者、组和其他人。每组权限包括读权限、写权限和执行权限。从上面的例图中可以看到文件权限由10个字符组成。第一个字符其实与权限无关,标识文件的类型。取值如下:d 目录;D 门;l 符号连接;b 块特殊文件;c 字符特殊文件;p 命令管道特殊文件;s 套接字文件;- 普通文件; 剩余的9个字符分为三组,分别表示 文件所有者的权限 组权限 其他人权限每组3个字符,从左到右依次表示 读权限(r) 写权限(w) 执行权限(x)写权限表示可以修改和删除。如果字符为“-”,表示无权限。你可以使用chmod命令改变文件或目录的权限。权限分成三组,即文件所有者、组和其他人,分别用u、g和o表示,为类别字符。每组权限又分为读、写和执行,分别用r、w和x表示,为权限字符。增加权限用+表示,删除权限用-表示,为增删字符。执行chmod命令时,可以使用类别字符、增删字符和权限字符的组合来改变文件和目录的权限。类别字符为可选,如果没有类别字符,缺省为所有的类别。例如:chmod +x-w test以上的组合方式只改变命令中指定的权限,原有的其它权限不会改变。一个目录的读权限可以使用户显示目录中的文件。执行权限可使用户进入该目录。写许可允许用户在该目录中创建或删除自己的文件。使用chown命令可以改变文件或目录的所有者,使用chgrp命令还可以改变文件或目录的组。5.4 绝对权限:二进制屏蔽利用绝对方法一次可变更所有的权限,而不是一项一项地加以指定。它使用一种二进制屏蔽来引用每类中的所有权限。读、写和执行权限分别用二进制数值100(8进制4)、010(8进制2)和001(8进制1)表示。权限8进制数值二进制数r4100w2010x1001因此07的8进制数字可以分解成读、写和执行权限的唯一组合。如读、写的组合是3(1+2);读、执行的组合是5(1+4);读、写和执行的组合是7(1+2+4)。因此所有者、组用户和其他人这三类权限可以用三个8进制数字表示。第一个表示所有者的权限,第二个表示组的权限,第三个表示其他人的权限。例如:chmod 544 test544分解所有者rx1+4=5组用户r4=4其他人r4=4表示设置所有者的读和执行权限、组用户的读权限、其他人的读权限。二进制屏蔽一个非常有价值的应用是指定权限掩码,用来控制新创建文件的缺省权限。缺省的权限掩码是000。也就是说缺省权限是777,即所有者、组用户和其他人具有读、写、执行的所有权限。这可能会造成非常大的安全隐患。通过改变权限掩码,则可以消除安全问题。umask指令用来改变权限掩码。例如:umask 007设置新建文件的缺省权限为770,即只有所有者、组用户具有所有的权限,其他人无权访问。umask可以在个人目录下的shell初始化文件中设置,也可以在命令行设置。6 Unix上的编程6.1 进程控制在Unix上,多进程方式和单进程多线程的开发方式是并存的。早期的Unix系统没有线程的概念,那时普遍采用多进程的开发方式。随着线程概念的出现,单进程多线程开发方式开始流行。但由于Unix系统的多样性和各种Unix系统在线程具体实现上存在着差异,人们为了编写可移植的程序,仍然较多地采用多进程的开发模式。直到POSIX线程标准的出现,可移植性问题才逐步得到解决。主流的Unix操作系统应该都支持POSIX线程标准。一些Unix系统除了支持POSIX标准外,同时还支持自己的线程库。如果考虑可移植性,应该采用POSIX线程库编写程序。6.1.1 进程标识在Unix系统中创建每一个进程都有一个进程标识,该标识是一个整数。进程标识是唯一的,不同的进程拥有不同的进程标识。Unix系统中的进程标识还有一个特点,当一个进程终止后,该进程的进程标识不会马上被重新使用。以上特点使得进程标识常常被用来作为其它标识符的一部分。在Unix系统中,进程标识0和1是专用的。进程0被成为交换进程,属于内核的一部分。进程1通常是init进程,在系统启动过程中有内核调用。它是所有用户进程的父进程或祖父进程。getpid和getppid可以获得调用进程的进程标识和父进程的进程标识。#include #include pid_t getpid(void);pid_t getppid(void);6.1.2 进程创建通过调用fork函数,Unix可以拷贝当前进程的映像创建子进程。新进程将获得父进程地址映像的一份拷贝。这两个进程都将接着fork后的指令继续执行。#include #include pid_t fork(void);fork函数在父子进程中的返回值是不同的。父进程返回子进程的进程标识,子进程返回0。因此通过判断fork的返回值,父子进程可以公用同一可执行文件,但执行不同的代码。#include #include if (fork( ) = 0) 子进程代码; else 父进程代码;如果子进程要执行不同的可执行文件,可以调用exec系统调用。#include int execv(const char *path, char *const argv);int execvp(const char *file, char *const argv);int execve(const char *path, char *const argv, char *const envp);6.2 进程终止进程有三种正常终止法及两种异常终止法:正常终止:1) 在main函数内执行return语句,等效于调用exit。2) 调用exit函数。3) 调用_exit系统调用。此函数由exit调用,它处理Unix特定的细节。异常终止:1) 调用abort函数。它产生SIGABRT信号。2) 当进程收到某个信号。不管进程如何终止,最后都会执行内核中的同一段代码。这段代码关闭当前进程打开所有描述符、释放它所使用的物理内存。每一个进程都有一个父进程。当进程正常终止时,可以向父进程传递退出时的状态。#include void exit(int status);#include void _exit(int status);如果进程异常终止,内核也会向父进程传递一个表示其异常终止原因的终止状态。如果父进程想获得子进程的状态或者等待子进程结束,可以调用wait或waitpid函数。#include #include pid_t wait(int *statloc);pid_t waitpid(pid_t pid, int *statloc, int options);6.3 查看进程状态ps命令用来查看进程的状态。进程的状态取值如下:O 正在运行S 睡眠 R 就绪 Z 僵死 T 暂停6.4 线程控制线程有时也称作轻量级进程。同一个进程中的线程共用同一个地址空间,线程间通过全局变量就能进行通讯。每个线程对应于一个线程入口函数,创建线程必须提供线程入口函数。线程有自己的堆栈。线程是操作系统调度的实体。线程可以并发运行,通过把一个任务划分为多个子任务,每个任务用一个线程实现,这样可以提高程序的并行性。多线程可以提高系统的性能。对于计算为主的场合,采用多线程不一定能提高系统的性能。6.4.1 Posix线程主流Unix系统厂商均支持POSIX线程。采用POSIX线程可以提高程序的可移植性。如果采用POSIX线程编程,生成可执行文件或动态库时,必须连接POSIX线程库libpthread。例如:cc o test test.c lpthreadPOSIX线程库中的函数均以pthread作为前缀,并在pthread.h文件中说明。6.4.2 用户线程和内核线程操作系统分为内核空间和用户空间。内核线程是处于内核空间的线程,内核将每个内核线程看作一个调度的实体。内核线程在一个广阔的基础上竞争处理机资源。内核线程的调度如同调度进程一样耗费时间,但内核线程可利用多处理机,并发性较好。内核线程占用内核资源,内核资源往往是有限的,因此内核支持的内核线程的数目也是有限的。用户线程是处于用户空间的线程,用户线程的调度在用户空间进行,避免了内核上下文切换造成的性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国羟丙基淀粉醚项目创业计划书
- 天津市中医院影像与临床结合考核
- 重庆市中医院儿童外科疾病识别考核
- 农村私人的土地买卖合同范本6篇
- 2025年铜仁燃气壁挂炉项目可行性研究报告
- 贷款居间合同模板6篇
- 课件插件爆炸性增长
- 中国改性硫酸钡项目创业计划书
- 艾防知识培训总结课件
- 2025年西安航空发动机成套设备有限公司(企业信用报告)- 天眼查
- 2025年产品开发设计题库及答案
- 2025至2030全球及中国网络访问控制(NAC)解决方案行业发展趋势分析与未来投资战略咨询研究报告
- GB/T 20013.1-2025核医学仪器例行试验第1部分:γ辐射计数系统
- 2025年书记在公文抄袭问题专项整治工作会议上的讲话范文
- 2024年下半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
- 魅力歌剧-《饮酒歌》课件 2024-2025学年人音版初中音乐九年级上册
- 示波器的使用示波器的使用
- 济南老火车站概况整理
- 《航空电机学》课件第15章 永磁电机
- 放射性粒子植入在肿瘤治疗中的应用
- 急诊科抢救记录书写模板
评论
0/150
提交评论