anggame安博电竞app_anggame安博电竞_ang安博电竞
anggame安博电竞app

永州天气,门事件-anggame安博电竞app_anggame安博电竞_ang安博电竞

admin admin ⋅ 2019-05-18 08:57:26
这篇文章将了解一下 & 符号及它在 Linux 指令行中的各种用法。
-- Paul Brown

假如阅览过我之前的三篇文章(1[1]2[2]3[3]),你会觉得把握衔接各个指令之间的衔接符号用法也是很重要的。实践上,指令的用法并不难,例如 mkdirtouch 和 find 也别离能够简略归纳为“建立新目录”、“更新文件”和“在目录树中查找文件”罢了。

但假如要了解

  1. mkdir test_dir 2>/dev/null || touch images.txt && find . -iname "*jpg" > backup/dir/images.txt &

这一串指令的意图,以及为什么要这样写,就没有这么简略了。

要害之处就在于指令之间的衔接符号。把握了这些符号的用法,不只能够让你更好了解全体的作业原理,还能够让你知道怎么将不同的指令有效地结合起来,进步作业效率。

在这一篇文章和接下来的文章中,我会介绍怎么运用 & 号和管道符号(|)在不同场景下的运用方法。

暗地作业

我来举一个简略的比如,看看怎么运用 & 号将下面这个指令放到后台运转:

  1. cp -R original/dir/ backup/dir/

这个指令的意图是将 original/dir/ 的内容递归地复制到 backup/dir/ 中。尽管看起来很简略,可是假如原永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞目录里边的文件太大,在履行过程中终端就会一向被卡住永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞。

所永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞以,能够在指令的结尾加上一个 & 号,将这个使命放到后台去履行:

  1. cp -R original/dir/ backup/dir/ &

使命被放到后台履行之后,就能够当即持续在同一个终端上作业了,乃至封闭终端也不影响这个使命的正常履行。需求留意的是,如我的史前部落果要求这个使命输出内容到规范输出中(例如 echo 或 ls),即便运用了 &,也会等候这些输出使命在前台运转结束。

当运用 & 将一个进程放置到后台运转的孕交时分,Bash 会提示这个进程的进程 ID。在 Linux 体系中运转的每一个进程都有一个仅有的进程 ID,你能够运用进程 ID 来暂停、康复或许停止对应的进程,因而进程 ID 是非常重要的。

这个时分,只需你还停留在发动进程的终端傍边,就能够运用以下几个指令来对办理日本护理后台进程:

◈ jobs 指令能够显现其时终端正在运转的进程,包括前台运转和后台运转的进程。它对每个正在履行中的进程使命分配了一个序号(这个序号不是进程 I与王纯甫书D),能够运用这些序号来引证各个进程使命。
  1. $ jobs
  2. [1]- Running cp -i -R original/dir/* backup/dir/ &
  3. [2]+ Running find . -iname "*jpg" &新我国奇疑要案20例gt; backup/dir/images.txt &
◈ fg 指令能够将后台运转的进程使命放到前台运转,这样能够比较方便地进行交互。根据 j心灵同伴云渠道官网obs指令供给的进程使命序号,再在前面加上 % 符号,就能够把相应的进程使命放到前台运转。
  1. $ fg %1 # 将上面序号为 1 cp 使命放到前台运转
  2. cp -i -R original/dir/* backup/dir/

假如这个进程使命是暂停状况,fg 指令会将它发动起来。

◈ 运用 ctrl+z 组合键能够将前台运转的使命暂停,仅仅是暂停,而不是将使命停止。当运用&nb李寻欢孙子sp;fg 或许 bg 指令将使命重新发动起来的时分,使命会从被暂停的方位开端履行。但 sleep[4] 指令是一个特例,sleep永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞 使命被暂停的时刻管帐算在 sleep 时刻之内。由于 sleep 指令根据的是体系时钟的时刻,而不是实践运转的时刻永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞。也便是说,假如运转了 sle胡诺言和陈琪ep 30,然后将使命暂停 30 秒以上,那么使命康复履行的时分会当即停止并退出。
◈ bg 指令会将使命放置到后台履行,假如使命是暂停状况,也会被发动起来。
  1. $ bg %1
  2. [1]+ cp -i -R original/dir/* backup/dir/ &

如上所述,以上几个指令只能在同一个终端里才干运用。假如发动进程使命的终端被封闭了,或绪方泰子者切换到了另一个终端,以上几个指令就无法运用了。

假如要在另一个终端办理后台进程,就需求其它东西了。例如能够运用 永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞;kill[5] 指令从另一个终端停止某个进程:

  1. kill -s STOP <PID>

这儿的 PID 便是运用 &严树新; 将进程放到后台时 Bash 显现的那个进程 ID。假如你其时没有把进程 ID 记录下来,也能够运用 ps 指令(代表 process)来获取一切正在运转的进程的进程 ID,就像这野间安娜样:

  1. ps | grep cp

履行以后会显现出包括 cp 字符串的一切进程,例如上面比如中的 cp 进程。一同还会显现出对应的进程 ID:

  1. $ ps | grep cp
  2. 14444 pts/3 00:00:13 cp

在这个比如中,进程 ID 是 14444,因而能够运用以下指令来暂停这个后台进程:

  1. kill -s STOP 14444

留意,这儿的 STOP 等同于前面说到西汇农商的 ctrl+z 组合键的作用,也便是仅仅把进程暂停掉。

假如想要把暂停了的进程发动起来,能够对进程宣布 CONT 信号:

  1. kil降服花心大少l -s CONT 14444

这个给出一个能够向进程宣布的常用信号[6]列表。假如想要停止一个进程,能够发送 TERM 信号:

  1. kill -s TE广州今气候候RM 14444

假如进程不响应 TERM 信号并回绝退出,还能够发送 KILL 信号强制停止进程:

  1. kill -s KILL 14444

强制停止进程或许会有必定的危险,但假如遇到进程无节制耗费资源的状况,这样的信号仍是能够派上用场的。

其他,假如你不确定进程 ID 是否正确,能够在 ps 指令中加上 x 参数:

  1. $ ps x| grep cp
  2. 14444 pts/3 D 0:14 cp -i -R original/dir/Hols_2014.mp4
  3. original/dir/Ho祁介泉ls_2015.mp4 original/dir/Hols_大众重视今日直播视频2016.mp4
  4. original/dir/Hols_2017.mp4 original/dir/Hols_2018.mp4 backup/dir/

这样就能够看到是不黑道悲情3在线阅览是你需求的进程 ID 了。

最终介绍一个帝妻赋将 ps 和 grep 结合到一同的指令:

  1. $ pgrep cp
  2. 8
  3. 18
  4. 19
  5. 26
  6. 33
  7. 40
  8. 47
  9. 54
  10. 61
  11. 72
  12. 88
  13. 96
  14. 136
  15. 339
  16. 6680
  17. 137永州气候,门事情-anggame安博电竞app_anggame安博电竞_ang安博电竞35
  18. 14444

pgrep 能够直接将带有字符串 cp 的进程的进程 ID 显现出来。

能够加上一些参数让它的输出更明晰:

  1. $ pgrep -lx cp
  2. 14444 cp

在这儿,-l 参数会让 pgrep 将进程的称号显现出来,-x 参数则是让 pgrep 彻底匹配 cp 这个指令。假如还想了解这个指令的更多细节,能够测验运转 pgrep -ax

总结

在指令的结尾加上 & 能够让我们了解前台进程和后台进程的概念,以及怎么办理这些进程。

在 UNIX/Linux 术语中,在后台运转的进程被称为看护进程daemon。假如你从前听说过这个词,那你现在应水咲该知道它的含义了。

和其它符号相同,& 在指令行中还有许多其他用法。鄙人一篇文章中,我会更具体地介绍。


via: https://www.linux.com/blog/learn/2019/2/and-ampersand-and-linux

作者:Paul Brown[8] 选题:lujun9972 译者:HankChow 校正:wxy

本文由 LCTT 原创编译,Linux我国 荣誉推出

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻