【linux学习】重定向

目录

  • 重定向
    • 标准输出、标准输入和标准错误
      • 标准输出重定向
      • 标准错误重定向
      • 将标准输出和标准错误重定向到同一个文件
      • 处理不想要的输出
      • 标准输入重定向
    • 管道
      • 过滤器
      • uniq-报告或者忽略文件中重复的行
      • wc-打印行数、字数和字节数
      • grep-打印匹配行
      • head/tail 打印文件的开头部分/结尾部分
      • tee-从stdin读取数据,并同时输出到stdout和文件

重定向

I/O是输入和输出的缩写。这个功能可以把命令行的输入重定向为从文件中获取的内容,也可以把命令行的输出结果重定向到文件中

标准输出、标准输入和标准错误

标准输出重定向

使用重定向符“>”

ls -l /usr/bin > ls-output.txt

标准错误重定向

引入文件描述符
文件流的前三个分别对应标准输入文件、标准输出文件和标准错误文件,那么在shell将在内部用文件描述符分别索引为0,1,和2.

ls -l /bin/usr 2> ls-error.txt

将标准错误重定向到ls-error.txt中

将标准输出和标准错误重定向到同一个文件

ls -l /bin/usr > ls-ouput.txt 2>&1

新版本的方法

ls -l /bin/usr &> ls-ouput.txt

处理不想要的输出

ls -l /bin/usr 2> /dev/null

其中dev是device的缩写,这个文件是一个称为位桶的系统设备,它接受输入但是不对输入进行任何处理。

标准输入重定向

cat
cat是“concatenate”的缩写,拼接文件
cat读取一个或者多个文件,并把它们复制到标准输出文件中

cat ls-ouput.txt

向文件中写入内容

cat > lazy_dog.txt

管道

命令从标准输入到读取数据,并将数据发送到标准输出的能力,是使用了名为管道的shell特性。使用管道操作符“|”可以把一个命令的标准输出传送到另一个命令的标准输入中。

ls -l /usr/bin | less

过滤器

ls /bin /usr/bin | sort | less

uniq-报告或者忽略文件中重复的行

确保没有重复行

ls /bin /usr/bin |sort |uniq | less

反过来,想要查看重复的行使用-d

ls /bin /usr/bin |sort |uniq -d | less

wc-打印行数、字数和字节数

grep-打印匹配行

使用正则表达式打印匹配行
grep pattern [file…]
举例来说,搜索文件名中包含zip的所有文件。
【linux学习】重定向_第1张图片

head/tail 打印文件的开头部分/结尾部分

-n选项指定输出行数

tee-从stdin读取数据,并同时输出到stdout和文件

把读到的内容复制到标准输出和一个或多个文件中
【linux学习】重定向_第2张图片

你可能感兴趣的:(linux,linux,学习,运维)