收集云服务器优惠信息
记录云服务器使用心得

整理10个有用的Linux链接运算符及演示实例

Linux命令的链接(链接运算符)意味着组合多个命令,并根据它们之间使用的操作符的行为来执行。Linux中的命令链接似于在shell本身编写简短的shell脚本,并直接从终端执行它们。链接使流程自动化成为可能。

此外,无人值守的机器可以在链式操作员的帮助下系统地工作。在本文中,小编主要介绍常用的的Linux命令链运算符,并且提供了简短的描述和相应的示例,可以提高你的工作效率,使你能够编写简洁、有意义的代码,同时有时会减少系统负载。

Linux链接运算符

1、与号运算符(&)

“&”的作用是让命令在后台运行,你可以在后台一次性执行多个命令,只需键入命令,后跟空格和‘&‘即可。例如,在后台运行一个名为“ping”的Linux 命令:

ping -­c5 www.ecscoupon.com &

在后台顺序运行两个或多个apt命令,可以写为:

apt update & apt upgrade &

2、分号运算符(;)

分号(;) 运算符可以一次运行多个命令,并且命令的执行会按顺序发生,示例如下:

apt update ; apt upgrade ; mkdir test

上述命令组合将首先执行update指令,然后执行upgrade指令,最后会在当前工作目录下创建一个’test’目录。

3、AND运算符(&&)

如果第一个命令执行成功,即第一个命令的退出状态为0,则AND运算符(&&)将仅执行第二个命令。这个命令在检查最后一个命令的执行状态时非常有用。

例如,我想在终端中使用links命令访问网站ecscoupon.com,但在此之前,需要检查主机是否处于活动状态:

ping -c3 www.ecscoupon && links www.ecscoupon.com

4、OR运算符(||)

OR运算符(||)非常多用,就像编程中的“else”语句一样。 || 运算符允许你仅在第一个命令执行失败时才执行第二个命令,即第一个命令的退出状态为‘1‘。

例如,我想从非root帐户执行“apt update”,如果第一个命令失败,则第二个命令’links ecscoupon.com’ 将被执行。

apt update || links ecscoupon.com

在上述命令中,由于用户不允许更新 系统,这意味着第一个命令的退出状态为 ‘1’,因此后面一个命令为’links ecscoupon.com’ 被执行。

如果第一个命令成功执行,退出状态为“0”怎么办?明显地,第二个命令将不会执行。

mkdir test || links ecscoupon.com

此处,用户在其主目录中创建一个文件夹“test”,用户有权使用该文件夹,命令执行成功,给出退出状态“0”,因此后面的命令将不被执行。

5、NOT 运算符(!)

NOT运算符(!)很像’ except’ 语句。该命令将执行除提供的条件之外的所有命令。要了解这一点,请在主目录中创建一个目录“tecmint”和“cd’ 到该目录。

mkdir tecmint 
cd tecmint

接下来,在文件夹“tecmint”中创建多种类型的文件:

touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

这时候已经在文件夹“tecmint”中创建了所有新文件,如下所示:

ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

现在,使用rm命令以智能的方式一次性删除除“html”文件之外的所有文件:

rm -r !(*.html)

只是为了验证,最后一次执行,使用ls命令列出所有可用文件:

ls 

a.html  b.html

注意:在bash中,要使用rm -- !(file.txt),可能需要启用extglob(小心使用):

# type bash -O extglob

6、AND – OR运算符(&& – ||)

上述运算符是“AND”和“OR”的组合运算符,它很像“if-else”语句。

例如,让我们对ecscoupon.com执行ping操作,如果成功,则显是“Verified”,否则显是“Host Down”。

ping -c3 www.ecscoupon.com && echo "Verified" || echo "Host Down"

示例输出:

PING www.ecscoupon.com (121.41.107.51) 56(84) bytes of data. 
64 bytes from www.ecscoupon.com (121.41.107.51): icmp_req=1 ttl=55 time=26 ms 
64 bytes from www.ecscoupon.com (121.41.107.51): icmp_req=2 ttl=55 time=24 ms 
64 bytes from www.ecscoupon.com (121.41.107.51): icmp_req=3 ttl=55 time=26 ms 

--- www.ecscoupon.com ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 25ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

现在,断开主机的互联网连接,然后再次尝试相同的命令。

ping -c3 www.ecscoupon.com && echo "Verified" || echo "Host Down"

示例输出:

ping: unknown host www.ecscoupon.com 
Host Down

7、PIPE运算符(|)

当第一个命令的输出用作第二个命令的输入时,PIPE管道操作符非常有用。例如,将“ls-l”的输出通过管道传输到“less”,然后查看命令的输出:

ls -l | less

drwx------  tecmint tecmint  4.0 KB Thu Nov 16 12:03:02 2023 AnyDesk
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:35 2023 bin
drwxr-xr-x  root    root     4.0 KB Wed Nov 24 22:05:09 2021 DEBIAN
drwxrwxr-x  tecmint tecmint  4.0 KB Sat Nov 18 12:32:49 2023 Desktop
drwx--x---+ tecmint tecmint  100 KB Fri Dec  8 12:00:49 2023 Downloads
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 10:25:07 2023 llpp
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:26:46 2023 MyImages
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 14:55:42 2023 Obsidian Vault
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:32 2023 opt
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:46:54 2023 php
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 15:54:33 2023 tar_examples
.rw-rw-r--  tecmint tecmint   73 KB Mon Sep 18 11:46:02 2023 Apache-Web-Server-Security.png
.rw-rw-r--  tecmint tecmint  2.2 KB Sun Oct 29 00:17:15 2023 ChatGPT-SEO-Prompts
.rw-rw-r--  tecmint tecmint   41 KB Thu Nov 23 11:34:33 2023 Create-Users-in-Linux.png

8、命令组合运算符({})

组合两个或多个命令,第二个命令取决于第一个命令的执行。

例如,首先检查目录“bin”是否可用,并输出相应的输出,命令如下:

[ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9、优先运算符(()

运算符()可以按优先顺序执行命令,例如:

Command_x1 && Command_x2 || Command_x3 && Command_x4

在上面的伪命令中,如果Command_x1失败怎么办?其实Command_x2、Command_x3和Command_x4都不会被执行。为此可以使用优先运算符,如下所示:

(Command_x1 && Command_x2) || (Command_x3 && Command_x4)

在上述伪命令中,如果Command_x1失败,Command_x2也会失败,但仍会根据Command_x3的退出状态执行Command_x3和Command_x4。

10、转义字符运算符 (\) 

转义运算符 (\) 作为名称指定,用于在shell中连接多行大型命令,连接示例:

mkdir a b \
c d

上面的命令将创建四个目录,a、b、c和d。

此外,如果在\后面添加n,这会在新行显示,例如:

echo "This \nis on two lines."

上面输出由\n或新行转义字符分割的行,所以输出如下:

This
is on two lines.

总结

以上简单列举了一些有用的Linux链接运算符,其实在Linux系统中,链接运算符通常指的是shell中的一些特殊符号,用于对命令进行连接或者管道操作。

这些链接运算符在shell脚本或终端中广泛使用,可以用于构建复杂的命令序列,实现不同命令之间的协同工作,可以有效的减轻你的工作负担。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《整理10个有用的Linux链接运算符及演示实例》
文章链接:https://www.ecscoupon.com/3219.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!