下载此文档

Unix系列shell程序编写.doc


文档分类:IT计算机 | 页数:约43页 举报非法文档有奖
1/43
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/43 下载此文档
文档列表 文档介绍
Unix 系列 shell 程序编写(上) 内核和 Shell 的交互方法启动 UNIX 时, 程序 UNIX( 内核) 将被调入计算机内存, 并一直保留在内存中直到机器关闭。在引导过程中,程序 init 将进入后台运行一直到机器关闭。该程序查询文件/etc/inittab , 该文件列出了连接终端的各个端口及其特征。当发现一个活动的终端时, ini t 程序调用 getty 程序在终端上显示 login 等登陆信息。(username 和 passwd) ,在输入密码后, getty 调用 login 进程,该进程根据文件/etc/passwd 的内容来验证用户的身份。若用户通过身份验证, login 进程把用户的 home 目录设置成当前目录并把控制交给一系列 setup 程序。 setup 程序可以是指定的应用程序,通常 setup 程序为一个 Shell 程序, 如:/bin/sh 即 Bourne Shell ( command 出来了,呵呵)。得到控制后, Shell 程序读取并执行文件/etc/.profile 。这两个文件分别建立了系统范围内的和该用户自己的工作环境。最后 Shell 显示命令提示符,如$。(这是以 bsh 为例,若是 csh, ,ksh ,bash 等等) 注不妨把/etc/.profile 看成 DOS 的 或 文件)当 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 命令执行时会显示出该子进程。每当用户执行一条命令时, 就会产生一个子进程。该子进程的执行与其父进程或 Shel l 完全无关,这样可以使 Shell 去做其他工作。(Shell 只是把用户的意图告诉内核,然后该干嘛干嘛) 现在 windows 有个计划任务( 在固定的时间,日期自动执行某任务), 其实 UNI X 很早就有这个功能了, 也就是所谓的 Shell 的自动执行。一些 UNIX 资源,如 cron 可以自动执行 Shell 程序而无需用户的参与, ( 这个功能好象在/var/spool/crotab 目录里)。 Crontab 程序对于系统管理员来说是非常有用的。 Cron 服务用于计划程序在特定时间(月、日、周、时、分)运行。我们以 root 的 crontab 为例。根用户的 crontab 文件放在/var/spool/crontab/root 中,其格式如下: (1) (2) (3) (4) (5) (6) 00**3 /usr/bin/updatedb 1. 分钟(0-60) 2. 小时(0-23) (1-31) (1-12) 5. 星期(1-7) 6. 所要运行的程序 的功能和特点 1> 命令行解释 2> 使用保留字 3> 使用 Shell 元字符( 通配符) 4> 可处理程序命令 5> 使用输入输出重定向和管道 6> 维护一些变量 7> 运行环境控制 8> 支持 Shell 编程对于" 命令行解释" 就不多说了, 就是在 shell 提示符( 例如:"$","%","#"等) 后输入一行 unix 命令, Shell 将接收用户的输入。" 使用保留字" :Shell 有一些具有特殊意义的字,例如在 Shell 脚本中, do,done,fo r 等字用来控制循环操作, if,then 等控制条件操作。保留字随 Shell 环境的不同而不同。" 通配符":* 匹配任何位置? 匹配单个字符[] 匹配的字符范围或列表例如: $ls [a-c]* 将列出以 a-c 范围内字符开头的所有文件$ls [a,m,t]* 将列出以 e,m

Unix系列shell程序编写 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数43
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小122 KB
  • 时间2017-01-10