The Linux Command Line 学习笔记(三)

第七章 重定向

默认情况下:

  1. 标准输出和标准错误都连接到屏幕;
  2. 标准输入连接到键盘。
cat - 连接文件
sort - 排序文本行
uniq - 报道或省略重复行
grep - 打印匹配行
wc - 打印文件中换行符,字,和字节个数
head - 输出文件第一部分
tail - 输出文件最后一部分

> - 重定向标准输出,例如:ls -l /usr/bin > ls-output.txt> ls-output.txt 可以重写 ls-output.txt 文件,
>> - 如果后面的文件不存在,则和 > 一样,如果存在,则把重定向结果追加到文件内容后面
2> - 重定向标准错误

ls -l /bin/usr > ls-output.txt 2>&1 重定向标准输出和标准错误到同一个文件,这是两个重定向操作,先重定向标准输出到后者文件中,然后重定向标准错误到标准输出中。
很麻烦,所以新版bash中&> 即可,如:ls -l /bin/usr &> ls-output.txt

ls -l /bin/usr 2> /dev/null - 处理不需要的输出,/dev/null 是特殊文件,位存储桶,接受输入,并不做任何处理,可以用来隐瞒命令错误信息。

cat - 命令读取一个或多个文件,然后复制它们到标准输出,如:cat ls-output.txt,连接文件,如:cat movie.mpeg.0* > movie.mpeg

cat 不加参数执行,会从标准输入(默认是键盘)读入数据,然后输出到标准输出——屏幕,
cat > lazy_dog.txt 重定向输出,就可以用来创建简短的文本文件。

< - 重定向标准输入操作符,把标准源从键盘改到了文件,这和传递单个文件名作为参数别无二致。


| - 管道符,命令的标准输出管道到另一个命令的标准输入,如:ls -l /usr/bin | less,输出两个目录中的可执行程序,联合到一起后,经过整体排序后再传给 less。

uniq - 报道或忽略重复行,如:ls /bin /usr/bin | sort | uniq | less, uniq 参数 -d 用来输出重复行,如: ls /bin /usr/bin | sort | uniq -d | less

wc - 打印行,字和字节数,如: wc ls-output.txt,”-l”选项限制命令输出只能 报道行数:ls /bin /usr/bin | sort | uniq | wc -l

grep - 打印匹配行,用来找到文本中的匹配文本,如:ls /bin /usr/bin | sort | uniq | grep zip,这里只是简单地匹配,grep 还可以使用正则表达式进行匹配。
-i 忽略大小写,-v 只打印不匹配的行。

head / tail - 打印文件开头部分/结尾部分
-n 可以指定行数,比如打印文件开头前五行:head -n 5 README.md
此外还可以用在管道中:ls /usr/bin | tail -n 5
-f 可以继续监测文件,当新内容添加到文件中时,会立即出现在屏幕上,直到 Ctrl-c,观察log日志文件进展时很有用。

tee - 从 Stdin 读取数据,并同时输出到 Stdout 和文件。
用来捕捉管道线中间处理内容时很有用,可以将中间过程保存到文件中,如:
ls /usr/bin | tee ls.txt | grep zip,列出 /usr/bin 目录下的文件和文件夹,并保存到 ls.txt 里,然后同时输出到 Stdout 中,交给 grep 来匹配含有 zip 的字符,并输出到命令行中。

原文地址:https://www.cnblogs.com/nicholaswang/p/9199800.html