linux-工作管理

工作管理

工作管理指的是在单个登录终端(也就是登录的 Shell 界面)同时管理多个工作的行为。也就是说,我们登陆了一个终端,已经在执行一个操作,那么是否可以在不关闭当前操作的情况下执行其他操作呢?

当然可以,我们可以再启动一个终端,然后执行其他的操作。不过,是否可以在一个终端执行不同的操作呢?这就需要通过工作管理来实现了。

例如,我在当前终端正在 vi 一个文件,在不停止 vi 的情况下,如果我想在同一个终端执行其他的命令,就应该把 vi 命令放入后台,然后再执行其他命令。把命令放入后台,然后把命令恢复到前台,或者让命令恢复到后台执行,这些管理操作就是工作管理。

后台管理有几个事项需要大家注意:

1. 前台是指当前可以操控和执行命令的这个操作环境;后台是指工作可以自行运行,但是不能直接用 Ctrl+C 快捷键来中止它,只能使用 fg/bg 来调用工作。
2. 当前的登录终端只能管理当前终端的工作,而不能管理其他登录终端的工作。比如 tty1 登录的终端是不能管理 tty2 终端中的工作的。
3. 放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作它。
4. 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则只能放入后台暂停,而不能执行。比如 vi 命令只能放入后台暂停,而不能执行,因为 vi 命令需要前台输入信息;top 命令也不能放入后台执行,而只能放入后台暂停,因为 top 命令需要和前台交互
1、 Linux命令放入后台运行

Linux 命令放入后台的方法有两种,分别介绍如下。

第一种:“命令 &”,把命令放入后台执行

第一种把命令放入后台的方法是在命令后面加入 空格 &。使用这种方法放入后台的命令,在后台处于执行状态。

注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

[root@ali01 ~]# ping www.baidu.com >>/dev/null &
[1] 3252

第二种:使用ctrl +Z的方式放入后台,此时进程时暂停的。

[root@ali01 ~]# ping www.baidu.com
PING www.wshifen.com (119.63.197.139) 56(84) bytes of data.
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=1 ttl=54 time=3.40 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=2 ttl=54 time=3.44 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=3 ttl=54 time=3.43 ms
^Z
[1]+  Stopped                 ping www.baidu.com
2、查看当前终端放入后台的工作:jobs

jobs 命令可以用来查看当前终端放入后台的工作,工作管理的名字也来源于 jobs 命令。

jobs 命令的基本格式如下:

[root@localhost ~]#jobs [选项]

表 1 罗列了 jobs 命令常用的选项及含义。

选项含义
-l(L 的小写)列出进程的 PID 号。
-n只列出上次发出通知后改变了状态的进程。
-p只列出进程的 PID 号。
-r只列出运行中的进程。
-s只列出已停止的进程。

范例1:

[root@ali01 ~]# jobs
[1]+  Running                 ping www.baidu.com >> /dev/null &

可以看到,当前终端有1个后台工作:一个是 ping 命令,工作号为 1,状态是运行;"+"号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作,-"号代表倒数第二个放入后台的工作,而第三个以后的工作就没有"±"标志了。

3、 把后台命令恢复在前台执行:fg

前面所讲,都是将工作丢到后台去运行,那么,有没有可以将后台工作拿到前台来执行的办法呢?答案是肯定的,使用 fg 命令即可。

fg 命令用于把后台工作恢复到前台执行,该命令的基本格式如下:

[root@localhost ~]#fg %工作号

注意,在使用此命令时,% 可以省略,但若将% 工作号全部省略,则此命令会将带有 + 号的工作恢复到前台。另外,使用此命令的过程中, % 可有可无。

例如:

[root@ali01 ~]# fg 1
ping www.baidu.com >> /dev/null
4、 把后台暂停的工作恢复到后台执行:bg

前面讲过,使用 Ctrl+Z 快捷键的方式,可以将前台工作放入后台,但是会处于暂停状态,那么,有没有办法可以让后台工作继续在后台执行呢?答案是肯定的,这就需要用到 bg 命令。

bg 命令的基本格式如下:

[root@localhost ~]# bg %工作号

和 fg 命令类似,这里的 % 可以省略。

例如:

[root@ali01 ~]# ping www.baidu.com
PING www.wshifen.com (119.63.197.139) 56(84) bytes of data.
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=1 ttl=54 time=3.36 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=2 ttl=54 time=3.38 ms
^Z
[1]+  Stopped                 ping www.baidu.com
[root@ali01 ~]# bg 1
[1]+ ping www.baidu.com &
[root@ali01 ~]# 64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=3 ttl=54 time=3.42 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=4 ttl=54 time=3.38 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=5 ttl=54 time=3.39 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=6 ttl=54 time=3.47 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=7 ttl=54 time=3.41 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=8 ttl=54 time=3.43 ms
64 bytes from 119.63.197.139 (119.63.197.139): icmp_seq=9 ttl=54 time=3.37 ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值