前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >8.6 管道符和作业控制

8.6 管道符和作业控制

作者头像
运维小白
发布2022-01-06 14:00:57
2980
发布2022-01-06 14:00:57
举报
文章被收录于专栏:运维小白运维小白

管道符、作业控制

  • ctrl z //暂停一个任务
  • jobs //查看后台的任务
  • bg [id] //把任务调到后台
  • fg [id] //把任务调到前台
  • 命令后面加&直接丢到后台

管道符的使用

  • 管道符 | ,表示把前面命令输出的结果,传输给后面的命令
  • cat 1.txt |wc -l ;cat 1.txt |grep 'aaa'
    • grep 命令,用来过滤指定关键词的命令,只要在一行中含有这个关键词,就会把这一行过滤出来
    • wc -l 命令,查看文件有多少个
代码语言:javascript
复制
[root@localhost ~]# ls
111  123  1.txt  234  2.txt  2.txt.bak  3.txt  anaconda-ks.cfg
[root@localhost ~]# ls | wc -l    
8
  • find ./ -type f //在当前目录下,列出所有的文件
    • find ./ -type f |wc -l //计算当前目录下有多少个文件
代码语言:javascript
复制
[root@localhost ~]# find ./ -type f
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./anaconda-ks.cfg
./.bash_history
./.viminfo
./1.txt
./2.txt
./3.txt
./2.txt.bak
[root@localhost ~]# find ./ -type f |wc -l    计算当前目录下,有多少个文件
12

作业控制

  • ctrl+z快捷键,暂停一个任务
    • 若是正在编辑一个文件的时候
      • 可以ctrl+z临时暂停下这个服务(丢到后台去了),回到命令行界面,去操作其他的任务
      • fg 命令可以把丢在后台的命令,调回前台
    • 可以控制多个任务,将他们暂停掉
  • jobs 命令,可以把暂停的任务列出来
    • 暂停多个任务后,并会显示停止的任务列出来
代码语言:javascript
复制
[root@localhost ~]# vim 1.txt

[1]+  已停止               vim 1.txt
[root@localhost ~]# fg
vim 1.txt

[1]+  已停止               vim 1.txt
[root@localhost ~]# jobs
[1]+  已停止               vim 1.txt
[root@localhost ~]# vim 2.txt

[2]+  已停止               vim 2.txt
[root@localhost ~]# jobs
[1]-  已停止               vim 1.txt
[2]+  已停止               vim 2.txt
[root@localhost ~]# 
  • fg [id] 命令,把任务调到前台并执行——>不加id号就是执行最后一次的任务(加id就是指定任务)
    • 可以选择执行的任务
代码语言:javascript
复制
[root@localhost ~]# fg 1
  • bg [id] 命令,把任务调到后台并执行
代码语言:javascript
复制
[root@localhost ~]# bg 1
[1]+ vim 1.txt &

运行一条命令,可以将它丢到后台(前台)去运行 在结束任务的时候,必须是在前台才能结束——>(否则在后台是无法结束任务的)

  • sleep 1000 命令,暂停一千秒,什么事都不做,一千秒之后把命令窗口恢复回来
代码语言:javascript
复制
[root@localhost ~]# sleep 1000
^Z
[1]+  已停止               sleep 1000
[root@localhost ~]# jobs
[1]+  已停止               sleep 1000
[root@localhost ~]# sleep 200
^Z
[2]+  已停止               sleep 200
[root@localhost ~]# jobs
[1]-  已停止               sleep 1000
[2]+  已停止               sleep 200
[root@localhost ~]# fg
sleep 200
^Z
[2]+  已停止               sleep 200
代码语言:javascript
复制
在调到前后台运行的时候,不指定id号,就是默认最后一条执行命令
  • & 符号,把任务丢到后台去执行
代码语言:javascript
复制
[root@localhost ~]# sleep 100 &
[3] 2239
[root@localhost ~]# jobs
[1]   运行中               sleep 100 &
[root@localhost ~]# 

在打开另一终端,jobs命令,是查看不到执行当前终端的任务

但是在另一个终端,可以查看到进程ps aux |grep sleep

代码语言:javascript
复制
```
[root@localhost ~]# ps aux |grep sleep
root      2235  0.0  0.0 107892   624 pts/0    T    23:20   0:00 sleep 1000
root      2236  0.0  0.0 107892   620 pts/0    T    23:20   0:00 sleep 200
root      2264  0.0  0.0 112656   984 pts/1    R+   23:31   0:00 grep --color=auto slee
[root@localhost ~]# 
```
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/11/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 管道符、作业控制
    • 管道符的使用
      • 作业控制
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档