链接Linux命令意味着,组合几个命令,并使它们基于它们之间使用的运算符的行为来执行。 链接在Linux的命令,有点像你正在写在shell本身,从终端直接执行它们。 链接使得可以自动化过程。 此外,无人值守的机器可以在链接操作者的帮助下以系统的方式工作。
Linux中的10个链接操作符
阅读也: 如何用awk和正则表达式中的文件筛选文本
本文旨在对经常使用的命令链运营扔光,有简短的描述和相应的例子这肯定会提高您的工作效率,让你写减少系统负载,有时旁边简短而有意义的代码。
符号运算符(&)
' 和 '的功能是使在后台运行的命令。 只需键入命令遵循的空白和'&'。 你可以在后台执行多个命令,一次就可以。
在后台运行一个命令:
youcl@localhost:~$ ping c5 www.youcl.com &
在后台同时运行两个命令:
root@localhost:/home/youcl# apt-get update & apt-get upgrade &
分号运算符(;)
分号运算符使得可以一次运行几个命令,并且顺序执行命令。
root@localhost:/home/youcl# apt-get update ; apt-get upgrade ; mkdir test
上面的命令组合将首先执行更新指令,然后再升级指令,最后将创建当前工作目录下的一个“ 测试 ”目录。
AND运算符(&&)
AND运算符 (&&)将只执行第二个命令,如果第一个命令执行成功 ,即第一个命令的退出状态是0。 此命令在检查最后一个命令的执行状态时非常有用。
例如,我想用访问网站youcl.com 链接命令 ,在终端但在此之前,我需要检查主机是否带电 与否 。
root@localhost:/home/youcl# ping -c3 www.youcl.com && links www.youcl.com
4. OR运算符(||)
OR运算符 (||)很像编程的' 其他 '语句。 上述运营商允许你执行只有当第一个命令执行失败第二个命令,也就是说,第一个命令的退出状态为“1”。
例如,我想执行非root帐户“apt-get的更新 ”,如果第一个命令失败,那么第二个“链接www.youcl.com'命令将执行。
youcl@localhost:~$ apt-get update || links youcl.com
在上面的命令,因为用户没有被允许更新系统,这意味着第一个命令的退出状态是被执行'1',因此最后的命令“ 链接youcl.com”。
如果执行成功的第一个命令,以退出状态“0”? 明显! 第二个命令不会执行。
youcl@localhost:~$ mkdir test || links youcl.com
这里,用户创建在他的家目录的文件夹“ 测试 ”,为此,用户被允许。 命令执行成功给人一种退出状态“0”,因此不执行命令的最后一部分。
NOT运算符(!)
NOT运算符 (!)很像一个' 除了 '语句。 此命令将执行除提供的条件之外的所有。 要理解这一点,请在你的home目录目录“youcl”和“CD”它。
youcl@localhost:~$ mkdir youcl youcl@localhost:~$ cd youcl
接下来,创建多种类型的文件夹“youcl”的文件。
youcl@localhost:~/youcl$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html
看到我们创建的文件夹“youcl”中的所有新文件。
youcl@localhost:~/youcl$ ls a.doc a.html a.pdf a.xml b.doc b.html b.pdf b.xml
现在,删除所有文件除了“HTML”文件中的所有一次,在一个巧妙的方法。
youcl@localhost:~/youcl$ rm -r !(*.html)
只是验证,最后执行。 列出所有使用的可用文件的ls命令 。
youcl@localhost:~/youcl$ ls a.html b.html
6. AND - OR运算符(&& - ||)
上述运营商实际上是“AND”和“OR”运算符的组合。 它很像一个' 的if-else'语句。
例如,让我们做平至youcl.com,如果成功echo' 验证 '别的echo“ 主机停机 ”。
youcl@localhost:~/youcl$ ping -c3 www.youcl.com && echo "Verified" || echo "Host Down"
示例输出
PING www.youcl.com (212.71.234.61) 56(84) bytes of data. 64 bytes from www.youcl.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 64 bytes from www.youcl.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 64 bytes from www.youcl.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms --- www.youcl.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms Verified
现在,断开您的互联网连接,并再次尝试相同的命令。
youcl@localhost:~/youcl$ ping -c3 www.youcl.com && echo "verified" || echo "Host Down"
示例输出
ping: unknown host www.youcl.com Host Down
7. PIPE操作员(|)
这条管道算哪里的第一个命令的输出作为一个输入第二个命令是非常有用的。 例如,管道的' 的ls -l'的输出为“ 少 ”,看到了命令的输出。
youcl@localhost:~$ ls -l | less
8.命令组合运算符{}
组合两个或更多个命令,第二个命令取决于第一个命令的执行。
例如,检查是否有目录' 本 '是可用的,并输出相应的输出。
youcl@localhost:~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.
优先运算符()
操作员可以按优先顺序执行命令。
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_x4执行取决于Command_x3的退出状态。
10.连接运算符(\)
连接运算符 (\)作为名称指定,则使用了几行的壳来连接大量的命令。 例如,下面的命令将打开文本文件试验(1).txt中 。
youcl@localhost:~/Downloads$ nano test\(1\).txt
目前为止就这样了。 我很快会想到另一个有趣的文章。 直到那时敬请关注,健康,连接到youcl。 不要忘记在我们的评论部分给你宝贵的反馈。