文章目录

  • 1. 背景
  • 2. 输入输出重定向
    • 2.1. 管道符号 `|`
    • 2.2. 输出重定向符号 `>`
    • 2.3. 输出重定向符号 `>>`
    • 2.4. 输入重定向符号 `<`
  • 3. 连接符号
    • 3.1. 连接符号 `;`
    • 3.2. 后台执行符号 `&`
    • 3.3. 逻辑与符号 `&&`
    • 3.4. 逻辑或符号 `||`
  • 4. 子命令符号
    • 4.1. 子命令符号 `()`
    • 4.2. 表达式计算符号 `(())`

1. 背景

最近在学习Linux中的管道与连接符号,写一篇笔记进行总结。

2. 输入输出重定向

2.1. 管道符号 |

Command A | Command B

将前A命令的输出作为B命令的输入。

常与筛选命令grep搭配使用,如

ps aux | grep mysql

在所有进程中查询含有mysql关键字的信息。

ps aux | grep mysql | less

还可以将输入导入less命令,less 是一个分页工具,它允许你一页一页地查看信息。

2.2. 输出重定向符号 >

Command A > File B

将前A命令的输出写入B文件,覆盖原文件内容。

如在hello.txt中写入Hello World!

echo Hello World! > hello.txt

2.3. 输出重定向符号 >>

Command A >> File B

将前A命令的输出追加写入B文件,不覆盖原文件的内容。

echo Hello World! >> hello.txt

Hello World! 追加到 hello.txt 后面。

注:cat hello.txt >> hello.txt会导致无限循环。

2.4. 输入重定向符号 <

Command A < File B

B文件的内容作为命令 A 的输入。

先创建 Python 文件 test.py,功能为输出用户输出的内容。

echo 'print(input())' > test.py

hello.txt 作为 test.py 的输入。

python test.py < hello.txt

结果会输出 Hello World!

3. 连接符号

3.1. 连接符号 ;

Command A ; Command B

在一行写入多个命令时,使用;进行分割,不论 A 命令是否执行成功,B命令都会继续执行。

比如下面的命令,A命令执行失败,B命令执行成功。

ee ; echo Hello World!

输出为

zsh: command not found: ee
Hello World!

3.2. 后台执行符号 &

Command A &

命令A会进入后台执行,当用于挂载后台服务,或执行耗时任务时可能会用到。

如下面的命令,会创建一个后台进程,在60秒后结束。

sleep 60 &

命令行会输出[1] 51277,表示进程的PID51277,60秒后会输出[1] 51277 done sleep 60,表示进程结束。

3.3. 逻辑与符号 &&

Command A && Command B

A命令执行成功,继续执行B命令,否则不执行B命令。

如下面的命令会在60秒后输出Hello World!

sleep 60 && echo Hello World!

而接下里这条命令只会输出命令A的错误信息。

ee && echo Hello World!

输出为zsh: command not found: ee

3.4. 逻辑或符号 ||

Command A || Command B

如果命令 A 执行失败,则执行 B

ee || echo Hello World!

输出为

zsh: command not found: ee
Hello World!

4. 子命令符号

4.1. 子命令符号 ()

(Command A)

创建一个子 shell 去执行命令 A,在A中切换文件夹不会影响当前shell工作路径。

(cd .. ; ls)

这条命令会返回上层目录的内容,但工作路径仍然在当前目录。

Command A $(Command B)

表示返回命令B的结果,并将结果作为命令A的参数继续执行。

$(echo echo) B

输出为 B

echo A $(echo B)

输出为 A B

4.2. 表达式计算符号 (())

((Calculation A))

计算表达式A的值。

如果要作为变量的话,需要加上$。如echo $((3+2)),输出为5

常与 iffor 命令配合使用。

if ((3>2)) echo true
for ((i=1;i<=16;i++));do echo $i; done

联系邮箱:curren_wong@163.com

CSDN:https://me.csdn.net/qq_41729780

知乎:https://zhuanlan.zhihu.com/c_1225417532351741952

公众号复杂网络与机器学习

欢迎关注/转载,有问题欢迎通过邮箱交流。

Linux中的管道与连接符号相关推荐

  1. Linux中的管道与重定向

    前言: 这篇博文主要参考了鸟哥的<鸟哥的Linux私房菜>和杨鹏(NetSnake)的<Linux服务器架设>这两本书,以及在网络上查阅的资料.此博文作为我阅读<鸟哥的L ...

  2. Linux中普通文件是什么符号,普通文件用符号 - 表示

    下面我们来看看在一个目录中用 ls,grep 和 wc 命令统计指定类型文件数目的技巧.命令之间的交互通过命名管道完成. grep – 用户根据给定模式或正则表达式进行搜索的命令. wc – 用于统计 ...

  3. linux 同一进程内通信,linux中,管道能够在同一进程中进行通信吗?

    linux中,管道能够在同一进程中进行通信吗? 答案是否定的. 管道是用于不同进程之间通信,不能再同一进程中进行通信. 同一进程中,直接进行参数传递就行了,不设计通信问题. 不同进程之间才需要通信,通 ...

  4. linux怎么打出管道命令这个符号,linux 管道命令 竖线 ‘ | ’

    管道符号,是unix功能强大的一个地方,符号是一条竖线:"|", 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为comm ...

  5. Linux如何运行pipe1,Linux中的管道

    一.管道是进程间通信的一种重要手段,在linux中没有使用专门的数据结构,而是借助了文件系统的file结构和VFS索引节点inode.通过两个file结构指向同一个临时的VFS索引节点,而这个索引节点 ...

  6. linux中使用net方式连接网络,如何使用 Netplan 从终端连接到无线网络?

    我的家用电脑主要使用桌面 Linux.我也有多台 Linux 服务器用于托管网站以及开源软件,如 Nextcloud.Discourse.Ghost.Rocket Chat 等. 我可以使用 lino ...

  7. Linux中的管道和过滤器

    管道和过滤器 管道 Shell可以将两个或多个程序连接到一起,以使一个程序的输出变成另一个程序的输入,这种方式连接的两个或者多个程序就形成了管道.管道通常用于执行一些复杂的数据处理操作.这些命令之间使 ...

  8. linux中的管道定义,Linux 管道命令是什么?

    Linux管道命令是"|",其作用是用来连接多条指令,前一条指令的输出流会作为后一条指令的操作对象,其命令格式为"指令1 | 指令2 | -",该命令的后一条指 ...

  9. linux mysql授权远程登录,Linux中 MySQL 授权远程连接的方法步骤

    说明:当别的机子(IP )通过客户端的方式在没有授权的情况下是无法连接 MySQL 数据库的,如果需要远程连接 Linux 系统上的 MySQL 时,必须为其 IP 和 具体用户 进行 授权 .一般 ...

最新文章

  1. Box2D教程3-刚体绑定外观
  2. 关于Modernizr的使用
  3. python print中文_python:print含有中文的list
  4. python可变类型与不可变类型作为函数参数区别_不要用可变类型对象做函数默认参数...
  5. The BIG Talk 2015 :创新金融和智能城市
  6. 2022年低压电工考试题库及模拟考试
  7. js常用分割取字符串的方法
  8. 软件测试——全链路压测原理
  9. dbv oracle驱动,oracle dbv使用详解
  10. 高性能Web应用程序–数据URI
  11. 工作流审批平台-审批流程-审批权限
  12. 静态分析工具PMD使用说明
  13. 掌握这些PDF转Word方法,从此你就是大神的存在
  14. cfa三级真题和mock_cfa mock和真题哪个难(cfa mock和真题差别)
  15. IP广播分控隐私政策
  16. 深入浅出安卓,如何从零学好移动开发
  17. 小程序用户头像昵称获取不到解决办法
  18. EAS客户端提示找不到第三方类可能的原因
  19. 电力系统微型计算机继电保护2018,4月全国自考电力系统微型计算机继电保护试卷及答案解析.docx...
  20. Win 10家庭版如何添加多用户

热门文章

  1. 硅谷上市公司 Confluent 饶军:我能开公司,所有人都有机会
  2. 大数据时代的地理信息系统发展
  3. 闲鱼客服工具/消息管理系统:可以让客服放下手机,在电脑上管理闲鱼店铺的咨询信息
  4. 【精品】服务端 架构演进 历程
  5. SpringMVC学习系列(5) 之 数据验证
  6. 「独立站必备工具」25种检测竞争对手网站的分析工具
  7. 19张动作速写参考,人物灵活就靠这些!
  8. opencv的图片处理:缩小尺寸为原图的一半【自己练习存档,没有参考价值,多看其他大神代码,谢谢】
  9. linux脚本程序是什么意思,Linux中$?是什么意思?
  10. LostRoutes项目日志——玩家飞机精灵Fighter解析