其他分享
首页 > 其他分享> > 8.6-管道符和作业控制

8.6-管道符和作业控制

作者:互联网

之前用过管道符 |,它用于将前一个指令的输出作为后一个指定的输入

| 管道符

[root@evan-01 ~]# cat 1.txt
1.txt
2.txt
[root@evan-01 ~]# cat 1.txt | wc -l
2
[root@evan-01 ~]# 

作业控制
当运行进程时,你可以使它暂停(Ctrl+Z组合键)然后使用 fg(foreground 的简写)命令恢复它,或是利用 bg (background 的简写) 命令使它到后台运行。此外,你也可以使他终止(Ctrl+C组合键)

Ctrl+z 暂停任务

[root@evan-01 ~]# vim 1.txt 

在这里插入图片描述
随便输入一些内容,写着写着,突然想起来要做下其他事情,比如查看磁盘使用、查看1.txt。那么此时,我们就可以按下 ESC 键,然后使用 Ctrl+Z 组合键暂停

暂停后不耽误去做别的事情

[root@evan-01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  2.9G   15G  17% /
devtmpfs                 482M     0  482M   0% /dev
tmpfs                    493M     0  493M   0% /dev/shm
tmpfs                    493M  6.8M  486M   2% /run
tmpfs                    493M     0  493M   0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M  13% /boot
tmpfs                     99M     0   99M   0% /run/user/0
[root@evan-01 ~]# cat 1.txt
1.txt
2.txt
[root@evan-01 ~]# 

fg 恢复
使用 fg 命令恢复它,此时又进入了刚才的 vim 窗口了
在这里插入图片描述

jobs 查看被暂停在后台运行的任务
再按下 ctrl+z 暂停,打开个文件 2.txt,再按ctrl+z

[root@evan-01 ~]# jobs
[1]-  Stopped                 vim 1.txt
[2]+  Stopped                 vim 1.txt
[root@evan-01 ~]#

想恢复其中的某一个就 fg id

[root@evan-01 ~]# fg 1

bg 把暂停的任务放在后台重新运行
vmstat 1 是用来观察系统状态的一个命令,后面会讲到
执行 vmstat 1 > 3.txt 后按 ctrl+z 暂停

[root@evan-01 ~]# vmstat 1 > 3.txt
^Z
[3]+  Stopped                 vmstat 1 > 3.txt
[root@evan-01 ~]# 

job查看当前被暂停在后台的任务

[root@evan-01 ~]# vmstat 1 > 3.txt
^Z
[3]+  Stopped                 vmstat 1 > 3.txt
[root@evan-01 ~]# jobs
[1]-  Stopped                 vim 1.txt
[2]   Stopped                 vim 1.txt
[3]+  Stopped                 vmstat 1 > 3.txt
[root@evan-01 ~]# 

按 bg 3 让它在后台运行

[root@evan-01 ~]# bg 3
[3]+ vmstat 1 > 3.txt &
[root@evan-01 ~]# jobs
[1]+  Stopped                 vim 1.txt
[2]   Stopped                 vim 1.txt
[3]-  Running                 vmstat 1 > 3.txt &
[root@evan-01 ~]# 

命令 & 直接丢到后台

[root@evan-01 ~]# sleep 1000 &
[4] 1407
[root@evan-01 ~]# jobs
[1]+  Stopped                 vim 1.txt
[2]   Stopped                 vim 1.txt
[3]   Running                 vmstat 1 > 3.txt &
[4]-  Running                 sleep 1000 &
[root@evan-01 ~]# sleep 2000 &
[5] 1408
[root@evan-01 ~]# jobs
[1]+  Stopped                 vim 1.txt
[2]   Stopped                 vim 1.txt
[3]   Running                 vmstat 1 > 3.txt &
[4]   Running                 sleep 1000 &
[5]-  Running                 sleep 2000 &
[root@evan-01 ~]# 

ps aux 查看进程
再重新打开个终端,输入 jobs 没反应,如果你知道进程的命令关键字,就可以查到
在这里插入图片描述ps aux 查看进程

[root@evan-01 ~]# ps aux | grep sleep
root      1407  0.0  0.0 107952   616 pts/0    S    16:25   0:00 sleep 1000
root      1408  0.0  0.0 107952   612 pts/0    S    16:26   0:00 sleep 2000
root      1429  0.0  0.0 112708   984 pts/1    R+   16:27   0:00 grep --color=auto sleep
[root@evan-01 ~]# 

kill 结束进程
如果想结束该进程,需要使用 kill 命令。kill 命令很简单,直接在后面加 pid 即可。如果遇到结束不了的进程时,可以在 kill 后面加一个选项,即 kill -9 [pid]

[root@evan-01 ~]# ps aux | grep sleep
root      1407  0.0  0.0 107952   616 pts/0    S    16:25   0:00 sleep 1000
root      1408  0.0  0.0 107952   612 pts/0    S    16:26   0:00 sleep 2000
root      1429  0.0  0.0 112708   984 pts/1    R+   16:27   0:00 grep --color=auto sleep
[root@evan-01 ~]# kill 1407
[root@evan-01 ~]# ps aux | grep sleep
root      1408  0.0  0.0 107952   612 pts/0    S    16:26   0:00 sleep 2000
root      1432  0.0  0.0 112708   984 pts/1    R+   16:28   0:00 grep --color=auto sleep
[root@evan-01 ~]# kill -9 1408
[root@evan-01 ~]# ps aux | grep sleep
root      1434  0.0  0.0 112708   980 pts/1    R+   16:28   0:00 grep --color=auto sleep
[root@evan-01 ~]# 

标签:01,8.6,0.0,管道,evan,作业控制,sleep,txt,root
来源: https://blog.csdn.net/u010148669/article/details/101450215