课时2 Shell命令的组合运用
一、管道操作
定义:将一端的命令输出交给另一端的命令处理
格式:命令1 | 命令2
示例1:查找/etc目录下名称以.conf为结尾的文件
示例2:从系统已经启动的所有进程中找出名字包含httpd的进程
二、重定向操作
定义:改变执行命令时的默认输入、输出
各类型重定向含义如下图所示:
类型 |
操作符
|
用途
|
重定向输入 | < |
从指定文件读取数据,而不是从键盘输入
|
重定向输出
|
>
>>
|
将标准输出结果覆盖指定文件
将
标准
输出结果追加到指定文件
|
标准错误输出
|
2>
2>>
|
将错误信息覆盖指定文件
将错误信息追加到指定文件
|
混合输出
| &> &>> |
将标准输出结果和错误信息覆盖指定文件
将
标准输出结果和
错误信息追加到指定文件
|
示例2:将错误信息输出到error.txt(假设不存在version2.txt)
[
root@localhost ~]# cat version2.txt 2> error.txt
三、逻辑分隔
处理多条命令之间的逻辑关系
逻辑与
|
&&
|
逻辑或
| || |
顺序执行
| ; |
示例1:萝卜青菜各有所爱(关注输出结果)
[
root@localhost ~]# echo "萝卜" && echo "白菜"
萝卜
白菜
[
root@localhost ~]# echo "萝卜" || echo "白菜"
萝卜
示例2:判断一条命令是否执行成功,如下两种方式是等价的
#成功则显示“成功”,失败则不显示
[
root@localhost ~]# mkdir /mulu/a 2>/dev/null && echo "成功"
#成功则不显示,失败则
显示“失败”
[
root@localhost ~]# mkdir /mulu/a 2>/dev/null || echo "失败"
示例3:顺序执行cd和ls命令
[
root@localhost ~]# cd /boot/grub ; ls -lh grub.conf