- 标准输出重定向
$ list -l /usr/bin > ls-output.txt
重写
$ list /usr >> ls-output.txt
追加
- 标准错误重定向
$ list abc 2> ls-output.txt
- 标准输出和错误重定向到同一个文件
$ list abc > ls-output.txt 2>&1
OR
$ list abc &> ls-output
- cat
$ cat [file ...]
连接多个文件并输出到标准输出
$ cat a.txt b.txt > c.txt
连接两个文件输出到标准输出,然后重定向标准输出到c.txt
$ cat > input.txt
cat不接参数将接受标准输入作为输入,Ctrl+D结束输入(EOF)。此方法可以快速创建短文本文件。
- 管道线
$ ls -la /usr | less
通过管道线,将一条命令的标准输出输送到另一条命令的标准输入(作为另一条命令的参数)
Notice: 在管道线中传输的是stdout文件,而不是文件的内容
$ which cp | ls
这里的用法是错误的,ls打印的实际是当前目录而不是/bin/cp
$ ls $(which cp)
可以用命令替换来实现这样的操作
OR
$ ls `which cp`
- 过滤器
$ ls /bin /usr/bin | sort | uniq | less
整理输出可执行程序列表(排序、去重)
通常情况下uniq需和sort配合使用,只能检测临近行uniq
$ uniq -d
-d选项:仅显示重复列表
- wc
$ wc [file ...]
打印行数、字数、字节数
$ ls /bin /usr/bin | sort | uniq | wc -l
统计可执行程序的个数
$ wc
wc不带参数则接受标准输入
- grep
$ grep pattern [file ...]
pattern 可接受正则表达式
grep不带参数则接受标准输入
$ grep -i
忽略大小写
$ grep -v
仅打印不匹配行
- head / tail
$ head/tail [-n lineNum] [file ...]
显示文件前/后10行(或指定行数)
$ tail -f
实时监控并更新打印行
- tee
$ ls /bin | tee list.txt | grep zip
根据管道线的特点,即取左边命令的标准输出作为右边命令的标准输入
可以将tee引入其中作为一环来保存中间数据