Marco Nie - 管道 2019-11-27T14:36:24+08:00 Typecho https://blog.niekun.net/feed/atom/tag/%E7%AE%A1%E9%81%93/ <![CDATA[Linux 管道命令的使用]]> https://blog.niekun.net/archives/547.html 2019-11-27T14:36:24+08:00 2019-11-27T14:36:24+08:00 admin https://niekun.net 配合 Linux 管道符,可以根据情况执行多条命令,常用的符号有:'|' '&&' ';' '||' '>' '>>'

|

管道符 "|" 主要用来将上一个命令的输出作为下一个命令的输入。

例如:

ps aux | grep test.sh

将当前所有进程信息作为输出信息,grep 将输出的内容作为输入,列出有 "test.sh" 的行。

可同时使用多条管道:

cat /etc/passwd | grep /bin/bash | wc -l

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。

多命令顺序执行符

;     命令1;命令2    多个命令顺序执行,命令之间无任何逻辑关系
&&    命令1&&命令2   逻辑与:当命令1正确执行后,命令2才会正确执行,否则命令2不会执行
||    命令1||命令2   逻辑或:当命令1不正确执行后,命令2才会正确执行,否则命令2不会执行

例如:

pwd;ls;date
ls test.sh && echo found file
ls test.sh || echo no file

重导向

重导向就是使命令改变它所认定的标准输出。

'>' 可将结果输出到文件中,该文件原有内容会被删除,'>>' 则将结果附加到文件中,原文件内容不会被删除。

将 file1.txt 的内容复制到 file2.txt,file2.txt 原内容会被清空。

cat file1.txt > file2.txt

将 file1.txt 的内容附加到 file2.txt,file2.txt 原内容保留。

cat file1.txt >> file2.txt
]]>