bg和fg指令(整理)以及 Linux中Ctrl+C、Ctrl+D等按键操作&进程相关命令

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

参考来源:
https://www.cnblogs.com/suixingc/p/shell-zhong-defg-ming-ling.html
https://www.cnblogs.com/chjbbs/p/6307333.html
https://blog.csdn.net/qq_42914528/article/details/81913482
https://blog.csdn.net/hellocsz/article/details/82085761

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值