kavin

管道符+任务暂停+放入后台运行+查看后台运行程序列表

kavin linux 2023-01-25 463浏览 0

管道符

|,一条竖线,这就是管道符。
它的作用是把前面的命令输出的结果传递给后面的命令。这不就是个管子干的事情吗?
看个例子:

[root@localhost ~]# ls
1.txt  4.txt   7.txt    aac  a_hard           bgk.txt  cuo.txt  gk.txt  out.txt
2      56.txt  a        abc  anaconda-ks.cfg  ca       def      input   zheng.txt
2.txt  58.txt  a9c      aBc  bbbk.txt         cb       gg.txt   lesson
3.txt  5.txt   aaa.txt  adc  bbc.txt          cd       gkl      out
[root@localhost ~]# ls|wc -l
34

ls输出的结果,刚好作为了wc命令的输入。

暂停与继续

命令运行着,我又要去干别的事情了,怎么办?暂停呗。ctrl+z即可实现。

比如我们现在正打开vim在编辑文件,写到一半要切出去做别的事情,可是我又不想退出,这个时候就可以暂停它。按ctrl + z:

[root@localhost ~]# vim a.txt

[3]+  已停止               vim a.txt

vim中按ctrl+z有个小坑,那就是在编辑模式下按不了,你要切回到普通模式就可以。

那怎么切回来呢?按fg就可以了。

管道符+任务暂停+放入后台运行+查看后台运行程序列表
vim

注意,如果你把多个任务都暂停了,每个被暂停的任务都会有个数字编号:

管道符+任务暂停+放入后台运行+查看后台运行程序列表
暂停

这个时候,我们就可以使用fg+数字编号把想要的任务调回来。
比如我想调回任务3,这样操作:

fg 3

jobs

jobs命令帮我们查看到后台有哪些进程暂停或者运行。下面的例子中,我们用vim打开了两个文件,丢到后台,它们显示的状态是‘已停止’。我们又把vmstat 1丢到后台,它是运行中。

[root@localhost ~]# vmstat 1 &> /dev/null &
[3] 14700
[root@localhost ~]# jobs
[1]-  已停止               vim a
[2]+  已停止               vim b
[3]   运行中               vmstat 1 &> /dev/null &

我们仍然可以使用fg命令,将它们调到前台。

丢到后台

丢到后台我们讲两种操作方式。

bg

bg将暂停的任务放到后台运行起来,注意是运行起来。
用法:bg + 任务编号。
拿vmstat命令来做实验。这个命令会一直输出信息到终端,我们ctrl+z暂停后,可以看到输出停止了:

[root@localhost ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0   9524 102896     40 562256    0    0    63    31   95  181  0  0 99  0  0
^Z
[1]+  已停止               vmstat 1

接下来我们使用命令bg 1将其丢到后台,发现它又开始输出了:

[root@localhost ~]# bg 1
[1]+ vmstat 1 &
[root@localhost ~]#  2  0   9524 102656     40 562420    0    0   164    53 10111 19559  0  0 100  0  0
 1  0   9524 102656     40 562420    0    0     0     0  102  186  0  0 100  0  0
 0  0   9524 102656     40 562420    0    0     0     0  105  189  0  1 99  0  0

我们要结束它的话,使用fg 1命令将其调到前台,然后按ctrl + c就好了。

&

&符号是直接将任务丢到后台,省了ctrl+z暂停的那一步,比如:


[root@localhost ~]# vmstat 1 &
[1] 14695
[root@localhost ~]# procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0   9524 102716     40 562420    0    0    63    31   95  181  0 
``

继续浏览有关 Linux教程 的文章
发表评论