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 ~]# 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章