首页 理论教育 实用LinuxShell编程教程

实用LinuxShell编程教程

时间:2023-11-18 理论教育 版权反馈
【摘要】:如果事先知道命令的名字,例如想把vi命令拿到前台,并且当前窗口的后台命令当中只有一个vi命令的话,fg命令参数可以为%vi。假设作业号为1,将其放到前台可以执行%1,与命令fg%1效果相同;放到后台的话可以执行%1&,与命令bg%1效果相同。

实用LinuxShell编程教程

在3.11.2节讲过,命令的后面带&即可将命令直接放在后台执行。例如,find命令有时用时较长,特别是从根目录开始查找时,这时可以将其放在后台执行。下面的后台命令从根目录开始查找后缀名为doc的文件:

978-7-111-48202-4-Chapter09-11.jpg

则当前命令窗口有3条后台命令,find命令的状态为运行中(Running),用选项-r时,命令jobs仅显示状态为Running的作业:

978-7-111-48202-4-Chapter09-12.jpg

仔细查看jobs命令的输出,可以看到+和-。+代表最近(最新)的作业,也称为当前作业,-代表前一个作业。

现在当前窗口有3条后台命令,如果希望把某条命令拿到前台(foreground),可用内置的fg命令,格式为:

978-7-111-48202-4-Chapter09-13.jpg

例如,想把vi命令拿到前台,继续编辑test.txt文件,执行:

978-7-111-48202-4-Chapter09-14.jpg

如果把最近的被放在后台的作业(即当前作业)放到前台,fg命令参数为%+或者%%。如果把第二近后台作业放到前台,参数为%-。如果事先知道命令的名字,例如想把vi命令拿到前台,并且当前窗口的后台命令当中只有一个vi命令的话,fg命令参数可以为%vi。引用后台作业的方法见表9-1。

表9-1 引用后台作业的方法

978-7-111-48202-4-Chapter09-15.jpg(www.xing528.com)

命令bg的作用是把作业放到后台(background)。重新打开一个Terminal,从根目录下开始查找名字以.gz结尾的文件,立刻按〈Ctrl+Z〉键挂起它:

978-7-111-48202-4-Chapter09-16.jpg

运行jobs,可见当前有一个作业,状态为Stopped:

978-7-111-48202-4-Chapter09-17.jpg

用命令bg,把该作业放到后台执行:

978-7-111-48202-4-Chapter09-18.jpg

运行jobs,可见该作业的状态变为Running:

978-7-111-48202-4-Chapter09-19.jpg

如果fg(bg)命令不带任何参数,那么当前作业将被放到前(后)台,即无参数的命令fg(bg)与命令fg%+(bg%+)效果是一样的。

把作业放到前台或者后台执行有更简洁的方式。假设作业号为1,将其放到前台可以执行%1,与命令fg%1效果相同;放到后台的话可以执行%1&,与命令bg%1效果相同。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈