linux基本命令fg Linux基本命令格式( 八 )


at time command
其中 , time是指定命令command在将来执行时的时间和日期 。时间的指定方法有多种,用户可以使用绝对时间,也可以用相对时间 。该指定命令将以作业形式在后台运行 。例如:
$ at 15:00 Oct 20
回车后进入接收方式,接着键入以下命令:
mail -s "Happy Birthday!" liuzheny
按下D键 , 屏幕显示:
job 862960800.a at Wed Oct 20 15:00:00 CST 1999
$
表明建立了一个作业,其作业ID号是862960800.a,运行作业的时间是1999年10月20日下午3:00,给liuzheny发一条标题为“Happy Birthday!”(生日快乐)的空白邮件 。
利用 at -l 可以列出当前at队列中所有的作业 。
利用 at -r 可以删除指定的作业 。这些作业以前由at或batch命令调度 。例如,
at -r 862960797.a
将删除作业ID号是862960797.a的作业 。其一般使用形式是:
at -r job_id
注意,结尾是.a的作业ID号 , 表示这个作业是由at命令提交的;结尾是.b的作业ID号,表示这个作业是由batch命令提交的 。
· batch命令
batch命令不带任何参数,它提交的作业的优先级比at命令提交的作业的优先级低 。batch无法指定作业运行的时间 。实际运行时间要看系统中已经提交的作业数量 。如果系统中优先级较高的作业比较多 , 那么,batch提交的作业则需要等待;如果系统空闲,则运行batch提交的作业 。例如,
$ batch
回车后进入接收方式 , 接着键入命令:
find / -name exam.txt -print
按下D 。退出接收方式 , 屏幕显示:
job 862961540.b at Thu Nov 18 14:30:00 CST 1999
表示find命令被batch作为一个作业提交给系统 , 作业ID号是862961540.b 。如果系统当前空闲,这个作业被立即执行 , 其结果同样作为邮件发送给用户 。
· jobs命令
jobs命令用来显示当前shell下正在运行哪些作业(即后台作业) 。例如:
$ jobs
[2] + Running tar tv3 *
[1] - Running find / -name README -printlogfile
$
其中,第一列方括号中的数字表示作业序号,它是由当前运行的shell分配的,而不是由操作系统统一分配的 。在当前shell环境下,第一个后台作业的作业号为1,第二个作业的作业号为2,等等 。
第二列中的“ ”号表示相应作业的优先级比“-”号对应作业的优先级高 。
第三列表明作业状态,是否为运行、中断、等待输入或停止等 。
最后列出的是创建当前这个作业所对应的命令行 。
利用 jobs -l 形式,可以在作业号后显示出相应进程的PID 。如果想只显示相应进程的PID,不显示其它信息 , 则使用 jobs -p 形式 。
· fg命令
fg命令把指定的后台作业移到前台 。其使用格式是:
fg [job…]
其中 , 参数job是一个或多个进程的PID , 或者是命令名称或者作业号(前面要带有一个“%”号) 。例如:
$ jobs
[2] + Running tar tv3 *
[1] - Running find / -name README -printlogfile
$ fg %find
find / -name README -printlogfile
注意,显示的命令行末尾没有“”符号 。下面命令能产生同样的效果:
$ fg %1
这样,find命令对应的进程就在前台执行 。当后台只有一个作业时,键入不带参数的fg命令,就能使相应进程移到前台 。当有两个或更多的后台作业时 , 键入不带参数的fg,就把最后进入后台的进程首先移到前台 。
· bg命令
bg命令可以把前台进程换到后台执行 。其使用格式是:
bg [job…]
其中 , job是一个或多个进程的PID、命令名称或者作业号,在参数前要带“%”号 。例如,在cc(C编译命令)命令执行过程中 , 按下Z键,使这个作业挂起 。然后键入以下命令:

推荐阅读