一、输出格式
echo //末尾自带换行
-n //取消自带换行
-e //支持转移符 常见转义符 \n换行 \t制表符

printf // 格式化输出字符串
%-10s // %s代表字符串 -10 左对齐容纳10个字符

二、输入输出重定向
file descriptors (FD,文件描述符 或 Process I/O channels): 进程使用文件描述符来管理打开的文件
标准输出
1 // 正确的输出
2 // 错误的输出
& // 无论正确或者错误
> // 先覆盖再追加

// 空内容覆盖追加到文件中,相当于创建两个空文件
>> // 追加
/dev/null // 黑洞

// 不论是否ping通,都将结果丢进黑洞里面,屏蔽掉
标准输入
①命令 < 文件 // 拉取文件进行处理
mail -s "test01" zhangsan**< a.txt // 向张三发送a.txt中的文件,标题为test01**

②命令 << eof ==>从键盘中输入
>eof

标准输入输出混合使用 ==> 先看小于号 再看大于号 先看输入再看输出
示例1:从键盘中输入到文件中
>
命令 >> 文件 << eof
>eof

示例2:从无限资源设备中取内容存放到指定文件
dd > file.txt < /dev/zero bs=1M count=50 // 取文件覆盖到指定文件
>> // 取文件追加到指定文件
