Linux操作系统下运行命令时CTRL+Z的作用

本文介绍如何在Linux环境中使用CTRL+Z快捷键暂停进程,并通过bg与fg命令将进程置于后台或恢复到前台继续运行。此外还提供了具体实例帮助理解。
 

命令运行时使用CTRL+Z,强制当前进程转为后台,并使之停止.

1. 使进程恢复运行(后台)

(1)使用命令bg

Example:

zuii@zuii-desktop:~/unp/tcpcliserv$ ./tcpserv01

*这里使用CTRL+Z,此时serv01是停止状态*

[1]+ Stopped ./tcpserv01

zuii@zuii-desktop:~/unp/tcpcliserv$ bg

[1]+ ./tcpserv01 & *此时serv01运行在后台*

zuii@zuii-desktop:~/unp/tcpcliserv$

(2)如果用CTRL+Z停止了几个程序呢?

Example:

zuii@zuii-desktop:~/unp/tcpcliserv$ jobs

[1]- Running ./tcpserv01 &

[2]+ Stopped ./tcpcli01 127.0.0.1

zuii@zuii-desktop:~/unp/tcpcliserv$ bg %1

bash: bg:任务 1 已转入后台 *后台运行*

2. 使进程恢复至前台运行

Example:

zuii@zuii-desktop:~/unp/tcpcliserv$ ./tcpserv04

[1]+ Stopped ./tcpserv04

zuii@zuii-desktop:~/unp/tcpcliserv$ fg

./tcpserv04

总结:

(1) CTRL+Z停止进程并放入后台

(2) jobs 显示当前暂停的进程

(3) bg %N 使第N个任务在后台运行(%前有空格)

(4) fg %N 使第N个任务在前台运行

默认bg,fg不带%N时表示对最后一个进程操作!

### LinuxCtrl+Z 与 Ctrl+C 的区别、作用及使用场景 #### 1. Ctrl+C 的功能及作用 Ctrl+C 的主要功能是中断当前正在前台运行的进程,并发送一个 `SIGINT`(Signal Interrupt)信号给该进程。收到此信号后,大多数程序会立即终止执行[^3]。 典型使用场景包括: - 当一个命令或程序陷入死循环,可以通过按下 Ctrl+C 强制停止其运行。 - 如果某个命令执行间过长且不需要继续运行,可以使用 Ctrl+C 来中断它。 例如,在运行一个无限循环脚本: ```bash while true; do echo "Running..."; sleep 1; done ``` 如果需要停止这个脚本,可以直接按下 Ctrl+C。 #### 2. Ctrl+Z 的功能及作用 Ctrl+Z 的主要功能是将当前正在前台运行的进程暂停,并将其放入后台等待状态,同发送一个 `SIGTSTP`(Signal Terminal Stop)信号给该进程[^5]。进程被挂起后并不会终止,而是进入暂停状态,用户可以选择稍后恢复其运行。 典型使用场景包括: - 当前运行的程序需要暂停止,但又不想完全终止,可以使用 Ctrl+Z。 - 在暂停程序后,用户可以返回到终端执行其他命令,之后再通过 `fg` 或 `bg` 命令恢复被暂停的任务。 例如,在运行一个长任务如 `ping www.example.com` : ```bash ping www.example.com ``` 按下 Ctrl+Z 后,屏幕上会显示类似以下内容: ``` ^Z [1]+ 已停止 ping www.example.com ``` 此可以通过以下命令恢复任务: - 使用 `fg` 将任务恢复到前台继续运行。 - 使用 `bg` 将任务恢复到后台继续运行。 #### 3. 主要区别 以下是 Ctrl+C 和 Ctrl+Z 的主要区别: | 特性 | Ctrl+C | Ctrl+Z | |----------------|------------------------------------------|------------------------------------------| | **信号** | 发送 `SIGINT` 信号 | 发送 `SIGTSTP` 信号 | | **作用** | 终止当前正在运行的前台进程 | 暂停当前正在运行的前台进程并将其放入后台 | | **结果** | 进程被完全终止 | 进程被暂停,但未终止 | | **使用场景** | 需要立即停止程序 | 需要临暂停程序 | #### 4. 示例代码 以下是一个简单的示例,展示如何使用 Ctrl+Z 和 Ctrl+C: ```bash # 运行一个无限循环程序 while true; do echo "Looping..."; sleep 1; done # 按下 Ctrl+C,程序会被终止 # 再次运行相同的程序 while true; do echo "Looping..."; sleep 1; done # 按下 Ctrl+Z,程序会被暂停并放入后台 # 查看后台任务列表 jobs # 将任务恢复到前台 fg # 或者将任务恢复到后台 bg ``` #### 5. 总结 - Ctrl+C 用于终止当前正在运行的前台进程,通常适用于不再需要的程序。 - Ctrl+Z 用于暂停当前正在运行的前台进程,并将其放入后台等待状态,适用于需要临停止的程序。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值