Unix Shell程序编写的方法详解

http://tech.ddvip.com   2007年07月04日    社区交流

内容摘要:为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Shell的强大功能,占先其强大魅力,达到更方便灵活的管理、应用UNIX的目的。

  用户登陆后,用户命令同计算机交互的关系为:命令进程--->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>命令行解释

责编:豆豆技术应用

正在加载评论...