文档详情

Unix系列shell程序编写.doc

发布:2017-02-03约3.69万字共43页下载文档
文本预览下载声明
?Unix系列shell程序编写(上) 1.UNIX内核和Shell的交互方法?   启动UNIX时,程序UNIX(内核)将被调入计算机内存,并一直保留在内存中直到机器关闭。在引导过程中,程序?init将进入后台运行一直到机器关闭。该程序查询文件/etc/inittab,该文件列出了连接终端的各个端口及其特征。当发现一个活动的终端时,init程序调用getty程序在终端上显示login等登陆信息。(username和passwd),在输入密码后,?getty调用login进程,该进程根据文件/etc/passwd的内容来验证用户的身份。若用户通过身份验证,login进程?把用户的home目录设置成当前目录并把控制交给一系列setup程序。setup程序可以是指定的应用程序,通常setup程序?为一个Shell程序,如:/bin/sh?即Bourne?Shell(command出来了,呵呵)。?   得到控制后,Shell程序读取并执行文件/etc/.profile以及.profile。这两个文件分别建立了系统范围内的和?该用户自己的工作环境。最后Shell显示命令提示符,如$。(这是以bsh为例,若是csh,为.cshrc,ksh为.kshrc,bash为.bashrc等等)?   ?   注不妨把/etc/.profile和.profile看成DOS的autoexec.bat?或?config.sys文件)?   当shell退出时,内核把控制交给init程序,该程序重新启动自动登陆过程。有两种方法使shell退出,一是用户执行exit命令,二是?内核(例如root用kill命令)发出一个kill命令结束shell进程。shell退出后,内核回收用户及程序使用的资源。?   用户登陆后,用户命令同计算机交互的关系为:命令进程---Shell程序---UNIX内核---计算机硬件。当用户输入一个命令,如$ls,?Shell将定位其可执行文件/bin/ls并把其传递给内核执行。内核产生一个新的子进程调用并执行/bin/ls。当程序执行完毕后,内核取消?该子进程并把控制交给其父进程,即Shell程序。例如执行:?     $ps?     该命令将会列出用户正在执行的进程,即Shell程序(下来详细说说,别急现在)和ps程序。若执行:?     $sleep?10??     $ps?   其中第一条命令将产生一个在后台执行的sleep子进程。ps命令执行时会显示出该子进程。?   每当用户执行一条命令时,就会产生一个子进程。该子进程的执行与其父进程或Shell完全无关,这样可以使Shell去做其他工作。(Shell只是把用户的意图告诉内核,然后该干嘛干嘛)?现在windows有个计划任务(在固定的时间,日期自动执行某任务),其实UNIX很早就有这个功能了,也就是所谓的Shell的自动执行。一些UNIX?资源,如cron可以自动执行Shell程序而无需用户的参与,(这个功能好象在/var/spool/crotab目录里)。?Crontab?程序对于系统管理员来说是非常有用的。Cron?服务用于计划程序在特定时间(月、日、周、时、分)运行。我们以root的crontab?为例。根用户的?crontab?文件放在?/var/spool/crontab/root?中,其格式如下:?   (1)? (2)? (3)? (4)? (5) ?(6)?   ?0  ?0?  *  ?*?  3  ?/usr/bin/updatedb?       1.?分钟?(0-60)?       2.?小时?(0-23)?       3.?日?(1-31)?       4.?月?(1-12)?       5.?星期?(1-7)?       6.?所要运行的程序?   2.Shell的功能和特点?   1命令行解释?   2使用保留字?   3使用Shell元字符(通配符)?   4可处理程序命令?   5使用输入输出重定向和管道?   6维护一些变量?   7运行环境控制?   8支持Shell编程?   对于命令行解释就不多说了,就是在shell提示符(例如:$,%,#等)后输入一行unix命令,Shell将接收用户的输入。?   使用保留字:Shell有一些具有特殊意义的字,例如在Shell脚本中,do,done,for等字用来控制循环操作,if,then等控制条件操作。?保留字随Shell环境的不同而不同。?   通配符:*?匹配任何位置?        ??匹配单个字符?        []?匹配的字符范围或列表?例如:?        ?          ?$ls?[a-c]*?          ?   
显示全部
相似文档