博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8.6 管道符和作业控制
阅读量:6990 次
发布时间:2019-06-27

本文共 2340 字,大约阅读时间需要 7 分钟。

hot3.png

管道符、作业控制

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

管道符的使用

  • 管道符 | ,表示把前面命令输出的结果,传输给后面的命令
  • cat 1.txt |wc -l ;cat 1.txt |grep 'aaa'
    • grep 命令,用来过滤指定关键词的命令,只要在一行中含有这个关键词,就会把这一行过滤出来
    • wc -l 命令,查看文件有多少个
[root@localhost ~]# ls111  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 //计算当前目录下有多少个文件
[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 命令,可以把暂停的任务列出来
    • 暂停多个任务后,并会显示停止的任务列出来
[root@localhost ~]# vim 1.txt[1]+  已停止               vim 1.txt[root@localhost ~]# fgvim 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就是指定任务)
    • 可以选择执行的任务
[root@localhost ~]# fg 1
  • bg [id] 命令,把任务调到后台并执行
[root@localhost ~]# bg 1[1]+ vim 1.txt &

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

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

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

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

```[root@localhost ~]# ps aux |grep sleeproot      2235  0.0  0.0 107892   624 pts/0    T    23:20   0:00 sleep 1000root      2236  0.0  0.0 107892   620 pts/0    T    23:20   0:00 sleep 200root      2264  0.0  0.0 112656   984 pts/1    R+   23:31   0:00 grep --color=auto slee[root@localhost ~]# ```

转载于:https://my.oschina.net/u/3707314/blog/1574440

你可能感兴趣的文章
元学习 - Learning How to Learn - 第一课:集中与发散思维
查看>>
一种具有细节保留功能的磨皮算法。
查看>>
排序算法7--选择排序--堆排序
查看>>
iOS开发规范&建议
查看>>
[原]如何为SqlServer2008数据库分配用户
查看>>
【leetcode】Basic Calculator III
查看>>
关于CCS中一些错误的解决方法
查看>>
回归到jquery
查看>>
安卓截屏如何实现将摄像头显示画面截下来
查看>>
jquery常识
查看>>
EF中的MySql返回 DataTable公共类库
查看>>
Visual Studio 2008常见问题
查看>>
【洛谷 P4254】 [JSOI2008]Blue Mary开公司(李超线段树)
查看>>
scrapy初体验 - 安装遇到的坑及第一个范例
查看>>
OC内存管理
查看>>
C#中Split用法
查看>>
3月6日 c#语言
查看>>
[LeetCode] Surrounded Regions, Solution
查看>>
MySQL系列:数据库基本操作(1)
查看>>
cpu真实核数
查看>>