【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(四)进程切换命令

简介: 【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(四)进程切换命令
  • 本系列文章,将整理一系列Linux环境下进程相关的操作命令,包括进程启动、kill、挂起、查看、前后台进程切换等各种命令。


  • 本文为本系列的第四篇,进程的切换,主要关注如何在前后台切换一个作业。


ctrl + z


  • 可以将一个正在前台执行的命令放到后台,且处于暂停状态,不可执行;


  • 一般和bg命令配合使用:先ctrl + z再bg,这样进程就被移到后台运行,终端还能继续接受其他命令;


&


  • 加在一个命令的最后,可以把这个命令放到后台执行 ,如:


[qxhgd@localhost ~]$ sudo vsftpd &
[1] 2368


jobs


  • 作业控制中的关键命令是jobs命令,jobs可显示 Linux 中的任务列表及任务状态,包括后台运行的任务(包括使用ctrl+z或&操作过的任务);


  • jobs命令中输出有加号和减号,带加号的作业被当做默认作业,带减号的为下一个默认作业;


  • 该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应于一个或者多个进程号。


  • jobs 只限于某个控制台,控制台间彼此不通用,A控制台中的job ,在B控制台用jobs 看不到 ,但是用ps -aux 可以看到相应进程;


  • job 不管是在前台还是在后台,也不管什么状态,其依赖于所在的控制台,关闭控制台后所有job 将不复存在;


  • job在后台运行时,不会被ctrl+c中断,但是输出仍然会显示到屏幕上,如果不希望输出,则可借助/dev/null设备;


[qxhgd@localhost ~]$ jobs
[1]-  Stopped                 top
[2]+  Stopped                 top


fg


  • 将后台中的命令调至前台继续运行;


  • 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid);


[qxhgd@localhost ~]$ sudo vsftpd&
[1] 8103
[1]+  Stopped                 sudo vsftpd
[qxhgd@localhost ~]$ jobs
[1]+  Stopped                 sudo vsftpd
[qxhgd@localhost ~]$ fg 1
sudo vsftpd
[sudo] password for qxhgd:
[qxhgd@localhost ~]$ jobs
[qxhgd@localhost ~]$ ps -aef | grep vsftpd
root       1324      1  0 Apr10 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
qxhgd      8125   7943  0 05:54 pts/1    00:00:00 grep --color=auto vsftpd


bg


  • 将一个在后台暂停的命令,变成继续执行 (在后台执行);


  • 如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid);


  • 一个综合的例子,按top->ctrl+z->jobs->bg操作:


[qxhgd@localhost ~]$ top
top - 05:58:07 up  6:02,  2 users,  load average: 0.01, 0.20, 0.23
Tasks: 271 total,   1 running, 270 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  6.2 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863076 total,   150012 free,   872996 used,   840068 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   807612 avail Mem
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  8192 qxhgd     20   0  162160   2304   1532 R 12.5  0.1   0:00.02 top
     1 root      20   0  125604   4184   2628 S  0.0  0.2   0:02.86 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd
     ...
[1]+  Stopped                 top
[qxhgd@localhost ~]$ jobs
[1]+  Stopped                 top
[qxhgd@localhost ~]$ bg 1
[1]+ top &


参考资料


相关文章
|
10天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
93 6
|
11天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
47 3
|
11天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
37 2
|
6天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
34 3
|
12天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
53 8
|
9天前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
|
11天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
44 3
|
14天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
49 6
|
Linux 开发工具
Linux_进程管理&计划任务
目录 目录 top打开Linux系统任务管理控制台 ps进程查询指令 kill进程关闭指令 一个小实验 一次性计划任务 周期性计划任务 top打开Linux系统任务管理控制台 快捷键: P M k q r ? > < 进程优先级设定: nice -n ...
946 0
|
Linux 安全 Shell
Linux进程管理(第二版) --计划任务
计划任务 一、一次性计划任务 at命令 #功能:安排一个/几个命令在指定时间(时刻)运行一次 1、at的命令格式及参数  at [-f 文件名] 时间 at -d 或者 atrm 删除队...
1024 0
下一篇
无影云桌面