fg(前台执行) frontground
bg(后台执行) background
linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务
假如你发现运行的一个程序需要很长的时间,但是需要干别的事情,你就可以用ctrl-z挂起这个程序,然后可以看到系统的提示:
[1]+ Stopped /root/bin/rsync.sh
然后我们可以把程序调度到后台执行:(bg 作业号)
#bg 1
[1]+ /root/bin/rsync.sh &
(fg命令不加参数时,使用效果就是让刚才最近被你挂起的进程返回前台执行)
用jobs命令查看任务
#jobs
[1]+ Running /root/bin/rsync.sh &
把它调回到控制台运行
#fg 1
/root/bin/rsync.sh
这样,你这控制台上就只有等待这个任务完成了。
fg、bg、jobs、&、 ctrl+z都是跟系统任务有关的,学会了相当的实用
一、&最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
二、ctrl + z (挂起) Ctrl+c (强制中断) Ctrl+d
ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停
Ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
Ctrl+c是强制中断程序的执行。
Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态。
例如:当你vi一个文件时,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下Ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件。
Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
键盘和shell的交互:
Ctrl-c Kill foreground process 常用
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell 常用 有时也会使程序退出,例如没有参数的cat命令,从终端读一行显示一行,知道Ctrl+D终结输入并终结进程
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l Clear screen
控制字符都是可以用(stty命令)更改的。可以用stty -a看看终端配置。
但实验指导书中:我们可以通过键盘发键盘中断信号来唤醒
pctl 父子进程继续执行,输入 ctrl+c
三、jobs
查看当前有多少在后台运行的命令
四、fg
将后台中的命令调至前台继续运行
如果后台有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
五、bg
将一个在后台暂停的命令,变成继续执行
如果后台有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
总结:
一般命令在前台执行(fg),执行完毕后,控制返回给用户。
在命令后面加上&,它会在后台执行(bg),并将特殊的环境变量$!设置为该任务的进程ID。这时shell可以并发执行其他命令。
按Ctrl+z可以挂起前台运行的程序
挂起的程序可以用fg恢复到前台,或者用bg恢复到后台
后台程序试图写入数据到终端设备时(与写入标准输出不同)可能被阻塞。
shell可以等待一个后台任务执行完成,只需使用wait命令,加上进程ID或者任务序号;也可以等待所有的后台任务,只需使用不加参数的wait
进程管理
Bash有两种执行命令的模式:批处理模式、并发模式。
要以批处理模式执行命令(即按照顺序),必须用;分隔
command1 ; command2
eg: mkdir demo ; cd demo
[hadoop@hadoop000 demo]$
在这个例子中,当command1执行完毕,即执行command2
要并发执行两个命令,它们必须用&分隔
command1 & command2
在这种情况下,command1 在后台执行(通过&),从而立即将控制返回到shell,以执行command2
参考来源:
/suixingc/p/shell-zhong-defg-ming-ling.html
/chjbbs/p/6307333.html
/qq_42914528/article/details/81913482
/hellocsz/article/details/82085761
如果觉得《bg和fg指令(整理)以及 Linux中Ctrl+C Ctrl+D等按键操作进程相关命令》对你有帮助,请点赞、收藏,并留下你的观点哦!