之前用过管道符 |,它用于将前一个指令的输出作为后一个指定的输入
| 管道符
[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 ~]#