Linux 命令之管道命令 |
Persus & Xie
学习管道之前我们先了解一下Linux的命令执行顺序
命令执行顺序控制
通常情况下,我们在终端中只能执行一条命令,然后按下回车执行,那么如何执行多条命令的?
顺序执行多条命令:command1;command2;command3;
简单的顺序指令可以通过 ; 来实现
有条件的执行多条命令: command1 && command2 || command3
&& :如果前一条命令执行成功则执行下一条命令,如果command1执行成功则执行第二条命令
|| :与&&相反,是前一条命令执行不成功时执行后边的命令
$? :储存上一条命令的返回结果
实例1.1 ,在目录下有三个文件001.txt,002.txt,003.txt
la && ls
ls && la
ls || la
la || ls
运行结果
>>> command not found: la
>>> 001.txt 002.txt 003.txt
command not found: la
>>> 001.txt 002.txt 003.txt
>>> command not found: la
001.txt 002.txt 003.txt
管道命令
管道命令是一种通信机制,通常用于进程间的通讯(也可以通过socket进行通信),它表现出来的形式是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
管道命令 | 作为界定符号,管道命令与上面说的连续执行命令不一样。
-
管道命令仅能处理standard output, 对于stand error output会予以忽略。
less,more,head,tail...都可以接受standard input命令,所以他们是管道命令
ls,cp,mv并不会接受standard input的命令,所以他们就不是管道命令了
- 管道命令必须要能够接受来自前一个命令的数据称为standard input继续处理才行
第一个管道命令
ls -al /etc | less
通过管道将ls -al
的输出作为下一命令less
的输入 ,方便浏览:
管道命令的处理图