【Linux进阶学习笔记】- 命令执行顺序控制与管道

顺序执行多条命令

在Linux使用中我们常常会做如下操作:

sudo apt-get update
sudo apt-get install vim
vim

但以下语句是与其等价的:

sudo apt-get update;sudo apt-get install vim;vim

这将会自动安装vim并打开

有选择的执行命令

&&运算符

&&运算符是用于选择命令执行的
&&的前面语句执行状态为0(即成功执行,并非控制台输出内容),则执行&&后面的语句内容
例如使用which查找已安装的vim,并打开:

which vim && vim

在该语句执行后若已安装vim则会打开,否则不做任何操作

||运算符

||在这表示与&&相反的效果来看一个例子:

which vim || sudo apt-get install vim

执行命令后则搜索vim,若没有安装则执行安装

管道符

|是Linux下的管道符,它用于将上一条命令的输出作为下一条命令的输入,例如:

ls -al /etc | less

该命令将ls输出的内容作为less命令的输入,则etc目录下内容将逐行显示
再来看一个例子:

ls | grep log.txt

该命令将ls输出内容作为grep命令的输入,则查找操作目录下是否存在log.txt文件

管道符与重定向命令的区别

我们知道重定向命令>>>
它们将前一条命令输出的内容写入(覆盖或追加)到后一文件中例如:

echo "Hello World!" > Hello.txt
echo "Hello World!" >> Hello.txt

这两个重定向命令的区别在于,>将用输入内容覆盖原有(文件)内容,而>>则是追加在末尾

重定向命令与管道符命令区别甚大,例如我们可以用管道符这样写:

ls -al /etc | less

但使用重定向命令这样写则是极大的错误:

ls -al /etc > less

如处于root用户下,这将覆写less命令,使其不能正常工作
所以,请谨慎使用命令

posted @ 2021-05-15 12:02  Evan_Lai  阅读(152)  评论(0编辑  收藏  举报