在telnet程序中,包含了很多功能。我们在之前的文章中也介绍了一部分,例如它的安装和测试,命令控制等等方面。今天我们将要为大家介绍一下telnet程序的作业控制,什么是作业控制呢?现在就让我们来详细看一下吧。
作业控制
Unix系统支持一种叫做“作业控制”的功能。它可使你暂停一个程序而工作另一程序,然后再返到第一个程序。这里我们不再详细讨论Unix的功能,但我们将介绍,若你的系统内有作业控制,telnet是如何配合其工作的。 在telnet提示符下录入z命令(后面再解释命令名的含义)。 它将告诉telnet暂停工作而返回到“shell”(即读入并处理你的命令的程序)。这样你就可以在远程对话过程中录入常规命令了。
只有当你的shell支持作业控制,z命令才能工作。若你所用的是一种现代shell,如C Shell或者Korn shell,它都可以工作。但假如你用的是较陈旧的Bourne shell,它没有作业控制,z命令也就不能工作。 事实上,telnet程序自己也“冻结”(freeze)。 你当前正在运行的程序被称为放在“前台”。当你退出一个程序时,我们称将其放在“后台”。
当你录入 z 命令,telnet程序将自己置于后台而让你返回到本地 shell(local shell),这样你就可以随意录入常规的Unix命令。例如,你可以检查你的邮件,显示时间、日期等等。当你想恢复远程连接时,录入命令:
fg
该命令告诉Unix系统重新启用被中断的最后一个程序,将其置于前台。现在你就可以恢复远程连接了。 你可能会想,为什么telnet作业控制命令名是z? 这是因为, 在支持作业控制的Unix系统中,你可以按下susp(暂停)键来将当前程序置于后台。通常该键是CTRL-Z。因此,该telnet命令是以Unix的键命名的。 若在一段规定的时间内没有进行任何操作,许多主机会自动让你退出。例如, 在某系统中,若你在15分钟内未录入任何东西, 该系统即让你退出。 当你使用Z命令中断telnet对话时应注意这一点。若在规定时间之内你未能恢复远程对话,连接将被自动切断。
在例子的开始,我们在一台叫nipper 的计算机上登录。 你可以看到 shell提示符:
nipper
在该提示符下我们录入一条telnet命令,与一台地址名为 fuzzball .ucsb.edu的远程计算机连接:
telnetfuzzball.ucsb.edu
一旦连接确定,fuzzball即显示标准的Unix登录提示符。我们采用用户标识harley 来登录。注意,为了保密我们录入的口令字并未显示出来。登录完成后,远程机显示一些信息,并后附一个shell提示符:
fuzzball
我们现在录入data命令来显示时间及日期。
- nippertelnetfuzzball.ucsb.edu
- Trying...
- Connected to fuzzball.ucsb.edu
- Escape character is '^]'。
- ULTRIX V4.2A (Rev.47) (fuzzball)
- Welcome to the Fuzzball System
- login: harley
- Password:
- Last login: Sun Apr 18 00:09:58 from nipper.com
- fuzzball date
- Sun Apr 18 00:24:54 CDT 1993
- fuzzball CTRL-]
- telnet> z
- Stopped
- nipper mail
- No mail for harley
- nipper fg
- telnetfuzzball.ucsb.edu
- fuzzball logout
- Connection closed by foreign host。
- nipper
接下来我们想暂时返回到nipper机上检查有无邮件。首先,我们按下 CTRL-], 将远程连接中断并返回到telnet。你将看到提示符:
telnet>
接着我们录入z命令,它把telnet程序置于后台。 现在我们就看到 nipper的shell
提示符。再使用mail命令来检查有无电子邮政信息。 现在录入fg命令。 shell的响应是显示被置于后台的最后一条命令(例子中是telnet命令)。然后shell将该程序放回前台, 即自动恢复远程连接。我们将再次看到fuzzball的shell提示符。
最后,我们录入logout命令从 fuzzball上退出。远程连接自动关闭, telnet程序退出。我们又返回到开始的nipper shell提示符下。在Unix系统中,shell是读入并处理你的命令的程序。有许多种Unix shell,你可以任选一种。 当shell准备接收命令时它将显示一提示符。 若你在多台计算机有帐户,最好能按一定格式规定提示符,使它能包含计算机的名字(这里不作详细阐述)。这样,你的shell 提示符可以随时告诉你正在使用的是哪一个shell。 依照惯例,提示符的最后一个字符表示你所用shell的类型。 字符(如本例)表明是C—Shell。$字符是表明Korn shell或Bourne shell。