本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1. 前言
使用Linux命令时,我们有时候会执行一条命令成功后再执行下一条,或者是依次执行几条命令。通过单条命令操作,通常是输入一条命令执行操作,等待执行完后再输入下一条命令执行另外的操作。有的操作执行时间久,再执行时就需要我们不时去看是否执行完以进行下一步操作,这样就比较麻烦,浪费精力,这时就需要一次执行多条命令,多条命令通过不同的连接符连接实现不同的操作。
2. 操作场景
;分号:依次执行多个命令,命令之间互不影响。&&逻辑与:依次执行多个命令,当一个命令失败后面的命令不再执行。||逻辑或:执行一个命令,当这个命令成功后面的命令不再执行。|管道:执行多个命令,上一个命令的结果作为下一个命令继续处理。
3. 操作实例
语法格式:cmd1; cmd2; cmd3 执行多个命令,命令之间互不影响。
# 示例:打开/home/test目录,查看目录位置,创建a.txt文件,显示文件列表
cd /home/test; pwd; touch a.txt; ll
语法格式:cmd1 && cmd2 && cmd3 执行多个命令,当一个命令失败后面的命令不再执行。
# 示例:打开/home/test目录,下载a.zip文件,下载成功后解压
cd /home/test && wget https://www.xxx.com/a.zip && unzip a.zip
语法格式:cmd1 || cmd2 || cmd3 执行一个命令,当这个命令成功后面的命令不再执行。
# 示例:打开/home/test目录,不存在则打开/home/test1目录,不存在则打开/home/test2目录
cd /home/test || cd /home/test1 || cd /home/test2
语法格式:cmd1 | cmd2 | cmd3 执行多个命令,上一个命令的结果作为下一个命令继续处理。
# 示例:查看进程列表,过滤包含java关键字,再过滤包含test关键字的进程
ps -ef | grep java | grep test
4. 总结
通过 ;、&&、||、| 我们可以实现依次执行、阻断执行、或执行、继续执行操作,在实际操作中使用恰当能给我们的操作带来事半功倍的效果。