命令通常从标准输入读取输入,将输出写入标准输出。默认情况下,标准输入和标准输出都是终端。重定向就是重新指定输入/输出。
文件描述符
linux中一切都是文件,输入、输出设备也不例外。为做区分,Linux 会给每个文件分配一个 ID,这个 ID 就是一个整数,即文件描述符。
Linux 程序在执行任何形式的 I/O 操作时,都是在读取或者写入一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数,它的背后可能是一个硬盘上的普通文件、FIFO、管道、终端、键盘、显示器,甚至是一个网络连接。
输出重定向
输出重定向是指命令的结果不再输出到显示器上,而是输出到其它地方(一般是文件中)。
- >:覆盖
- >>:追加
str="helloWorld"
echo $str >>demo.txt #将输出结果以追加的方式重定向到文件
/dev/null 文件
可以把 /dev/null 当成 Linux 系统的垃圾箱,任何放入垃圾箱的数据都会被丢弃,不能恢复。
ls -l &>/dev/null
输入重定向
输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输入。