iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中怎么使用&号和管道符号
  • 224
分享到

linux中怎么使用&号和管道符号

2023-06-27 09:06:34 224人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关linux中怎么使用&号和管道符号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。掌握连接各个命令之间的连接符号用法也是很重要的。实际上,命令的用法并不难,例如 mkdi

这篇文章将为大家详细讲解有关linux中怎么使用&号和管道符号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

掌握连接各个命令之间的连接符号用法也是很重要的。实际上,命令的用法并不难,例如 mkdir、touch和 find 也分别可以简单概括为“建立新目录”、“更新文件”和“在目录树中查找文件”而已。

linux中怎么使用&号和管道符号

但如果要理解

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

这一串命令的目的,以及为什么要这样写,就没有这么简单了。

关键之处就在于命令之间的连接符号。掌握了这些符号的用法,不仅可以让你更好理解整体的工作原理,还可以让你知道如何将不同的命令有效地结合起来,提高工作效率。

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

幕后工作

我来举一个简单的例子,看看如何使用 & 号将下面这个命令放到后台运行:

cp -R original/dir/ backup/dir/

这个命令的目的是将 original/dir/ 的内容递归地复制到 backup/dir/ 中。虽然看起来很简单,但是如果原目录里面的文件太大,在执行过程中终端就会一直被卡住。

所以,可以在命令的末尾加上一个 & 号,将这个任务放到后台去执行:

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

任务被放到后台执行之后,就可以立即继续在同一个终端上工作了,甚至关闭终端也不影响这个任务的正常执行。需要注意的是,如果要求这个任务输出内容到标准输出中(例如 echo 或 ls),即使使用了 &,也会等待这些输出任务在前台运行完毕。

当使用 & 将一个进程放置到后台运行的时候,Bash 会提示这个进程的进程 ID。在 Linux 系统中运行的每一个进程都有一个唯一的进程 ID,你可以使用进程 ID 来暂停、恢复或者终止对应的进程,因此进程 ID 是非常重要的。

这个时候,只要你还停留在启动进程的终端当中,就可以使用以下几个命令来对管理后台进程:

jobs 命令可以显示当前终端正在运行的进程,包括前台运行和后台运行的进程。它对每个正在执行中的进程任务分配了一个序号(这个序号不是进程 ID),可以使用这些序号来引用各个进程任务。

$ jobs[1]- Running cp -i -R original/dir/* backup/dir/ &[2]+ Running find . -iname "*jpg" > backup/dir/images.txt &

fg 命令可以将后台运行的进程任务放到前台运行,这样可以比较方便地进行交互。根据 jobs 命令提供的进程任务序号,再在前面加上 % 符号,就可以把相应的进程任务放到前台运行。

$ fg %1 # 将上面序号为 1 的 cp 任务放到前台运行cp -i -R original/dir/* backup/dir/

如果这个进程任务是暂停状态,fg 命令会将它启动起来。

使用 ctrl+z 组合键可以将前台运行的任务暂停,仅仅是暂停,而不是将任务终止。当使用 fg 或者 bg 命令将任务重新启动起来的时候,任务会从被暂停的位置开始执行。但 sleep 命令是一个特例,sleep 任务被暂停的时间会计算在 sleep 时间之内。因为 sleep 命令依据的是系统时钟的时间,而不是实际运行的时间。也就是说,如果运行了 sleep 30,然后将任务暂停 30 秒以上,那么任务恢复执行的时候会立即终止并退出。 bg 命令会将任务放置到后台执行,如果任务是暂停状态,也会被启动起来。

$ bg %1[1]+ cp -i -R original/dir/* backup/dir/ &

如上所述,以上几个命令只能在同一个终端里才能使用。如果启动进程任务的终端被关闭了,或者切换到了另一个终端,以上几个命令就无法使用了。

如果要在另一个终端管理后台进程,就需要其它工具了。例如可以使用 kill 命令从另一个终端终止某个进程:

kill -s STOP

这里的 PID 就是使用 & 将进程放到后台时 Bash 显示的那个进程 ID。如果你当时没有把进程 ID 记录下来,也可以使用 ps 命令(代表 process)来获取所有正在运行的进程的进程 ID,就像这样:

ps | grep cp

执行以后会显示出包含 cp 字符串的所有进程,例如上面例子中的 cp 进程。同时还会显示出对应的进程 ID:

$ ps | grep cp14444 pts/3 00:00:13 cp

在这个例子中,进程 ID 是 14444,因此可以使用以下命令来暂停这个后台进程:

kill -s STOP 14444注意,这里的 STOP 等同于前面提到的 ctrl+z 组合键的效果,也就是仅仅把进程暂停掉。

如果想要把暂停了的进程启动起来,可以对进程发出 CONT 信号:

kill -s CONT 14444这个给出一个可以向进程发出的常用信号列表。如果想要终止一个进程,可以发送 TERM 信号:kill -s TERM 14444如果进程不响应 TERM 信号并拒绝退出,还可以发送 KILL 信号强制终止进程:kill -s KILL 14444强制终止进程可能会有一定的风险,但如果遇到进程无节制消耗资源的情况,这样的信号还是能够派上用场的。

另外,如果你不确定进程 ID 是否正确,可以在 ps 命令中加上 x 参数:

$ ps x| grep cp14444 pts/3 D 0:14 cp -i -R original/dir/Hols_2014.mp4original/dir/Hols_2015.mp4 original/dir/Hols_2016.mp4original/dir/Hols_2017.mp4 original/dir/Hols_2018.mp4 backup/dir/

这样就可以看到是不是你需要的进程 ID 了。

最后介绍一个将 ps 和 grep 结合到一起的命令:

$ pgrep cp8181926334047546172889613633966801373514444

pgrep 可以直接将带有字符串 cp 的进程的进程 ID 显示出来。

可以加上一些参数让它的输出更清晰:

$ pgrep -lx cp14444 cp

在这里,-l 参数会让 pgrep 将进程的名称显示出来,-x 参数则是让 pgrep 完全匹配 cp 这个命令。如果还想了解这个命令的更多细节,可以尝试运行 pgrep -ax。

关于“linux中怎么使用&号和管道符号”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: linux中怎么使用&号和管道符号

本文链接: https://www.lsjlt.com/news/309195.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中怎么使用&号和管道符号
    这篇文章将为大家详细讲解有关linux中怎么使用&号和管道符号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。掌握连接各个命令之间的连接符号用法也是很重要的。实际上,命令的用法并不难,例如 mkdi...
    99+
    2023-06-27
  • &在c语言中是什么符号
    在 c 语言中,& 符号表示按位与运算符。它按位操作两个位模式,如果两个位都为 1,则结果为 1;否则,结果为 0。按位与运算符用于设置或清除特定位、测试位的状态以及组合位模式。...
    99+
    2024-04-13
    c语言
  • Mysql中@和@@符号怎么使用
    本篇内容主要讲解“Mysql中@和@@符号怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql中@和@@符号怎么使用”吧!一、概述@是用户变量,@@是系统变量。select...
    99+
    2023-06-30
  • PHP中引用符号(&)的作用是什么
    本篇文章给大家分享的是有关PHP中引用符号(&)的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。按位与$a & $b 将把 $a 和 $b 中都为1的...
    99+
    2023-06-15
  • php中&&和||逻辑运算符怎么使用
    本篇内容主要讲解“php中&&和||逻辑运算符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中&&和||逻辑运算符怎么使用”吧!一. &&a...
    99+
    2023-07-04
  • 如何使用批处理命令的管道符号
    这篇文章主要介绍“如何使用批处理命令的管道符号”,在日常操作中,相信很多人在如何使用批处理命令的管道符号问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用批处理命令的管道符号”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-08
  • URL中“#” “?” &“”号有什么用
    这篇文章将为大家详细讲解有关URL中“#” “?” &“”号有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. #    1...
    99+
    2024-04-02
  • Linux下的符号链接怎么使用
    本篇内容主要讲解“Linux下的符号链接怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下的符号链接怎么使用”吧!在 Linux 底下的连结档有两种,一种是类似 Windows ...
    99+
    2023-06-28
  • javascript逻辑运算符||和&&怎么使用
    这篇文章主要讲解了“javascript逻辑运算符||和&&怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript逻辑运算符||和&&怎么...
    99+
    2023-06-04
  • php中箭头符号怎么使用
    这篇“php中箭头符号怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中箭头符号怎么使用”文章吧。PHP箭头(-...
    99+
    2023-07-05
  • 怎么使用MySQL中“<=>”操作符
    这篇文章将为大家详细讲解有关怎么使用MySQL中“<=>”操作符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题 :我在看以前的一个开发者的...
    99+
    2024-04-02
  • Linux中怎么移除符号连接
    这篇文章主要介绍了Linux中怎么移除符号连接的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中怎么移除符号连接文章都会有所收获,下面我们一起来看看吧。什么是符号链接?符号链接(symlink)又称软链...
    99+
    2023-06-27
  • php中怎么使用位运算符中的^和&
    这篇文章给大家分享的是有关php中怎么使用位运算符中的^和&的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上,位运算比加减运算...
    99+
    2023-06-20
  • Linux中怎么实现用户账号管理
    这篇文章给大家介绍Linux中怎么实现用户账号管理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。添加用户账号添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的...
    99+
    2023-06-16
  • linux命令管道符如何使用
    在Linux中,命令管道符(|)用于将一个命令的输出作为另一个命令的输入。管道符的使用方法如下:command1 | command...
    99+
    2023-09-29
    Linux
  • linux中管道符的作用是什么
    本文小编为大家详细介绍“linux中管道符的作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux中管道符的作用是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在linux中,管道符是“|”,主...
    99+
    2023-07-02
  • Linux中的管道和命名管道有什么用
    小编给大家分享一下Linux中的管道和命名管道有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 Linux 中,pipe 能让你将一个命令的输出发送给另一...
    99+
    2023-06-16
  • js中||和&&怎么用
    这篇文章将为大家详细讲解有关js中||和&&怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。|| 和 && 的妙用// 场景 1function&n...
    99+
    2023-06-27
  • Linux中的常用符号说明
    本篇内容主要讲解“Linux中的常用符号说明”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中的常用符号说明”吧!一、通配符:“*”、“”  和DOS下一样,当我们不知道确切的文件名时,...
    99+
    2023-06-10
  • Linux管道命令怎么使用
    本文小编为大家详细介绍“Linux管道命令怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux管道命令怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。管道是一种最基本的IPC机制,作用于有血缘...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作