重定向

0 标准输入 stdin /dev/stdin 
1 标准输出 stdout /dev/stdout 
2 标准错误 stderr /dev/stderr

>覆盖文件

  • 如果log.txt不存在,则会创建
  • 如果存在,则会覆盖之前的内容
ls -l / 1>./log.txt

>>追加文件

  • 会把重定向的内容追加到log.txt
ls -l / 1>>./log.txt

区别输出类型

# 1 代表标准输出 stdout
ls -l / 1>>./stdout.txt

# 2 代表标准错误 stderr 
ls -l / 2>>./stderr.txt

# 也可以区别开
ls -l /bin /etc  1>stdout.txt 2>stderr.txt

# 将标准输出和错误输出合并到一个文件
ls -l / &>log.txt

echo

  • -e 表示输出转义符
echo -e "1 \n 2 \n 3"

/dev/null

  • /dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它会立即得到一个EOF。

  • /dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。

/dev/zero

  • /dev/zero:在类UNIX操作系统中,/dev/zero是一个特殊的文件,当你读它时,它会提供无限的空字符(NULL , ASCALL NUL, 0x00)。

tr 输入重定向

tr 准备要替换的字符 要替换成的字符

# 把空格替换为制表符 并输出到test.txt
tr ' ' '\t' <./test.txt

sort 命令

  • 对文件内容进行按行的排序

管道

  • 支持管道输入的命令

和less结合查看文本

# 把ls的输出作为less的输入
ls -al /etc | less

和grep结合过滤文本

# 把ls的输出作为grep的输入
ls -al /etc | grep 'ssh'

和cut结合切割文本

# 切割log文件的前两列字符
cat ./log.txt | cut -c1,2

# 切割第一个字符串以:为分隔符
cat /etc/passwd | cut -f1 -d*:

和wc结合统计文本

wc 文件名
行数 单词数 字节数

# 仅仅统计文本行数
wc -l 文件名
  • 统计当前用户家目录下所有目录的总数
ls -al ~ | cut -c1 | grep 'd' | wc -l

# ls -al ~  列出家目录中所有文件
# cut -c1 切割每一行中第一字符列,切割出来的为文件类型符号
# grep 'd' 查找文件类型为目录的行
# wc -l 统计目录行数

* 管道不会传输stderr信息