《基于UNIX操作系统的编程》期末复习思考题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

复习思考题1、UNIX操作系统中的两大基本概念是什么?“文件”和与其相对应的“进程”是UNIX系统中的两个最基本概念.2、UNIX系统中的标准命令格式是什么?$命令名[-命令任选项][命令参数]3、文件系统中可以包含哪些类型的文件?如何判断一个文件的类型是什么?UNIX系统把文件分成三类:普通文件,目录文件,设备特殊文件普通文件包括源程序、图表、电子邮件、可执行程序等;目录文件其中包括若干目录项,每个目录项中存放一个文件名及其相关信息,这个文件名可以是普通文件、下一级子目录文件或设备特殊文件的文件名。设备特殊文件每个I/O硬件都有一个文件名与其对应,该文件中并不存有具体信息,而是代表该设备的驱动程序入口地址.4、什么是用户的主目录?什么是当前工作目录?什么是相对路径名?什么是绝对路径名?主目录用户登录进入系统时的初始工作目录,由/etc/passwd文件指定当前工作目录用户当前所处在的目录相对路径:起始点是当前工作目录的路径名绝对路径:起始点是根目录(/)的路径名5、什么是通配符?UNIX系统中包括哪些常用的通配符?在UNIX系统中,常常使用通配符来代替文件名中某一类类或某一种字符串,使用户在表达多个文件名时,只需使用一个带通配符的文件名,来代表若干个文件名,而不是把这若干个文件名一一枚举出来.例如:student*包括student,student2,student_deve,student9a,student.log等所有以student开头的文件名.p*.c包括prog.c,people.c,p.c,p31_data.c,ppp.c等所有以p开头,以.c结尾的文件名.file?匹配file1,file2,filex,file_,filea等所有以file开头,长度为5个字符的文件名.?x?匹配所有长度为3个字符,且第二个字符为x的文件名,如:1x1,axy,3xr等.com[abc]只匹配coma,comb和comc三个文件名.dot[a-z]匹配文件名长度为四,且最后一个字符为a到z的文件名(共26个).dep[13-79]匹配文件名长度为四,且最后一个字符为1,3,4,5,6,7和9的文件名.6、一个文件通常包括哪些属性?如何获取文件的属性信息?ls-l命令7、文件的读写访问权限是如何标定的?怎样改变一个(些)文件的特定权限?chmod命令8、进程的标准输入文件是什么?进程的标准输出文件是什么?进程的标准错误输出文件是什么?标准输入:键盘fd=0标准输出:荧光屏fd=1标准错误输出:荧光屏fd=2如果一个进程在运行时需要输入输出数据,在缺省状况下是从标准输入上读入数据,向标准输出上输出结果。利用shell的重定向操作符,可以把进程的输入和/或输出数据重新定向的任意其它文件。例如:$catfile运行结果(file的内容)送到标准输出荧光屏$passwd所需数据(新老口令)从标准输入键盘读入$ls-Yabcls:invalidoption–Y错误信息送到标准错误输出(荧光屏)上显示标准错误输出重定向:command2filename(2和之间无空格)进程运行中的错误信息重定向到文件filename,例如:$cc-ocore_prtcore.c2err.log在编译过程中如果core.c中有语法或/和词法等静态错误,则把错误信息保存在文件err.log中.$catfile1file2file32errfile如果命令运行正常,则把结果(连接file1和file2)存入file3中,如果出现错误,则把错误信息存放到errfile中.$grepstring6data_savcount_log2&1把进程的出错信息存放到标准输出(已重定向到count_log)中,即把标准输出和标准错误输出都定向到一个文件中.管道管道用于连接两个命令,它把前一个命令的标准输出重定向给后一个命令作为标准输入,其格式为:command1|command2对command1来说标准输出被重新定向到管道,对command2来说标准输入也被重新定向为管道.9、输入输出重定向包括哪些操作符号?它们的意义、作用和用法分别是什么?输出重定向commandfilename进程输出覆盖文件filename或commandfilename进程输出追加到文件filename后面,不覆盖filename例如:$catmyfile把文件myfile的内容输出到标准输出文件----荧光屏上$catmyfilenewfile把文件myfile的内容输出到文件newfile中(标准输出已被重新定向到newfile).其结果相当于拷贝文件.$catfile1file2file3文件file1和file2的内容被依次送到文件file3中----把多个小文件连接成一个大文件.$catabcxyz把abc添加到xyz已有内容后面,而不是覆盖xyz应用举例:①.按字母顺序显示当前系统中所有已登录的用户:$whotemp1把当前登录用户的名单保存在temp1中$sorttemp1temp2把排序后的名单保存在temp2中$moretemp2逐屏显示排好序的用户名单$rmtemp1temp2删除不用的临时文件②.记录长时间运行程序的日志:$system_monitorrun_log运行中的信息累加(而不是覆盖)到文件run_log中,便于随时查询.输入重定向commandfilename进程的输入来自文件filename,例如:$cat↙cat命令后无文件名,cat等待键盘输入abcdeabcde键盘输入内容thisisatestlinethisisatestlinecat进程输出内容^d$catabcaaaaaaaaaaaaaaabbbbbbbbcat进程的输入来自重定向文件abccccccccccccccccccc输出到标准输出荧光屏$10、常用的文件操作命令有哪些?其基本功能是什么?11、如何进行基本的文件编辑操作?12、UNIX系统中包括哪些Shell类型?各种shell的提示符是什么?各种shell的退出命令什么?Shell的常用种类:1.Bourneshell----程序名为sh,提示符为$2.Cshell----程序名为csh,提示符为%3.Kornshell----程序名为ksh,提示符为$另一常用提示符:#----超级用户(无论何种shell)在UNIX操作系统结构中Shell--工具层Shell的退出命令:exit主要用于退出B_shell和K_shelllogout主要用于退出C_shell^d可用于退出各类shell.因^d常含有其它功能含义,故尽量不用或少用^d来作退出命令.注:exit和logout是正规退出系统的命令,执行时通常包含许多善后工作,而^d没有.13、什么是shell的环境变量?常用的环境变量和意义是什么?HOME=/usr/computer/student6用户主目录,注册时的初始目录PATH=/bin:/usr/bin:$HOME/bin:./键盘命令的搜索路径SHELL=/bin/sh当前运行的shell名称TERM=vt100当前所用的终端类型PS1=$shell的主提示符IFS=域分隔符,通常为空白符,用来分隔命令行各个域环境变量可在shell运行时动态修改。系统的基本环境变量放在/etc/profile中,用户环境变量放在用户主目录下的.profile文件中,用户shell启动时,先执行/etc/profile,再执行用户主目录下的.profile。14、什么是shell的系统变量?常用的系统变量有哪些?$0当前shell程序的名字$1~$9命令行上的第一到第九个参数$#命令行上的参数个数$*命令行上的所有参数$@分别用双引号引用命令行上的所有参数$$当前进程的进程标识号(PID)$?上一条命令的退出状态$!最后一个后台进程的进程标识号系统变量只能引用不能修改!例如:$echoaabbccdd$$aabbccdd2391$catfile1file2file32errlog$echo$?(非0表示命令运行失败,错误信息在errlog文件中)15、如何设定和使用用户自定义变量?局部变量是由用户根据需要任意创建的.变量名通常由一个字母后跟零个到多个字母、数字或下划线组成。引用变量的值时,在变量名前面加上$符号.例如:$AA=123定义变量AA$echo$AA引用变量AA的值123(变量AA的值)$B=thisisastring定义变量B(字符串中有空格时用引号)$echo$B引用变量B的值thisisastring(变量B的值)16、单引号、双引号、反撇号、花括号的作用和用法是什么?shell规定单引号禁止变量替换,元字符$和*等保持其符号本身;而双引号允许元字符变量替换.$a=heisastudent$echoShesaid:$aShesaid:heisastudent$b='Thevalueofais$a'$echo$bThevalueofais$a$c=Thevalueofais$a$echo$cThevalueofaisheisastudent反撇号中的字符串作为命令名$b=`date`(反撇号中的字符串作为命令名)$echo$bSatFeb116:28:19Beijing2003$c=Thereisateach$echo$cerreadingroomreadingroom(无变量cer,用空串替代)$echo${c}erreadingroomThereisateacherreadingroom(花括号将变量名和后面的字符串区分开)17、shell可接收哪些形式的键盘命令?何时开始接收键盘命令?何时开始执行键盘命令?18、在UNIX系统中如何启动、查看、暂停、终止一个进程的运行?获取进程状态信息:ps命令不带参数的ps命令运行时,显示该用户当前活动进程的基本信息:$psPIDTTYTIMECOMMAND612tty080:37sh931tty080:01ps$PID进程标识号.系统每个进程在其生命周期都有一个唯一的PID.TTY启动该进程的终端号TIME进程累计占用CPU的时间COMMAND产生该进程的命令暂停进程运行:sleep命令sleeptimesleep命令使运行它的进程暂停time指定的秒数.例如:$sleep5[进程暂停5秒钟,什么也不作]$$sleep10;who[进程暂停10秒钟后,显示系统中登录的用户名]$echoIamsleeping…;sleep100;echoIamawakeIamsleeping…[等待100秒钟]Iamawake$终止进程运行:kill命令通常在三种情况下进程被终止运行:.进程运行完成,自动消亡;.用户按^c或Del等中断键,强行终止前台进程的运行;.用户发出kill命令,强行终止后台进程或键盘锁住了的前台进程的运行.kill命令的三种常用格式为:killPID正常结束进程,完成善后工作,类似于按Del键.kill-1PID先挂起该进程,终止子进程,完成善后工作,终止该进程.kill-9PID立即强行终止该进程,不作任何善后工作.可能出现资源浪费和孤儿进程.19、UNIX系统内部包含的常用即时通讯、半即时通讯、非即时通讯工具有哪些?其基本用法是什么?交谈命令writewriteusername[terminal]双向通信命令talk广播信息命令wall邮件命令mail20、shell编程的基本流程是什么?如何执行一个shell程序?1.建立shell文件包含任意多行操作系统命令或shell命令的文本文件;2.赋予shell文件执行权限用chmod命令修改权限;3.执行shell文件直接在命令行上调用shell程序.实例:1.建立shell文件(可用任何建立文本文件的方法):$catprog1who|grep$12.赋予执行权限:(初始文本文件无执行权限)$chmod740prog13.执行该shell程序$prog1student5

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功