不要重复发明轮子
开源文化的核心理念之一就是不要重复发明轮子,
很多的开源软件都是现有 软件、代码、功能 的重新组合,
就像用现有的零件装配机器一样,
源代码的开放和共享 让这成为了可能, 同时极大提高了效率和生产力
引入
命令简单且单一
在Linux中, 大多数命令 功能简单且单一;
我们可以将不同的命令组合起来 完成复杂的功能
纯文本的输入输出
因为是CLI(命令行界面),
命令的输入数据的格式 为纯文本, 输出格式也是 纯文本
多命令协作
通过 管道和重定向 机制, 实现多命令协作
数据流
命令的输入 通过 STDIN
命令的输出 通过 STDOUT 和 STDERR
STDIN
标准输入
0
键盘
STDOUT
标准输出
1
终端
STDERR
标准错误
2
终端
管道和重定向
控制数据流
重定向
>
将STDOUT重定向到文件(覆盖)
echo "123" > out.txt
>>
将STDOUT重定向到文件(追加)
echo "567" >> out.txt
2>
将STDERR重定向到文件(覆盖)
ls $^$^ > errout.txt
2>>
(追加)
<
重定向 STDIN
grep root < /etc/passwd
管道
|
将左边命令的STDOUT作为右边命令的STDIN
ls -l | grep wuqinfei
用途
管道 通常用来组合不同命令, 以实现一个复杂的功能
重定向 通常用来以文件的方式保存某命令的输出信息或错误信息