重定向
linux中使用 > 和 >> 来重定向标准输入
>>是追加,>会覆盖原文件
输入输出就这3个部分,一般命令行中的数标准输入stdin和标准输出stdout,而如果发生错误就是stderr
输出重定向就是将某个命令默认指向stdout或者stderr的输出文本转而指向一个文件,也即使得命令输出到某个指定文件中,而不是输出到终端窗口了
ls -al 1> example 将ls的执行结果输出到example文件中
1是指stdout
2是指stderr
example原本的内容会被覆盖掉。如果想保留原有的内容
ls -al 1>> example 命令输出将会添加到文件原来内容的后面
ls -l file 2> stderr.txt 将命令报错输出到stderr.txt文件中
/dev/null文件是一个非常特殊的块设备文件,可以视为系统的“黑洞”。写入到这个文件中的内容均会被丢弃掉
管道 |
管道就是一种特殊的输入输出重定向,是将一个命令的标准输入输出重定向为另一个命令的标准输入
在linux中完成复杂的任务往往需要构造命令管道
ls -al /etc l less
将ls命令的输出作为less命令的输入
注意 | 和grep经常放在一起使用,但是|才是管道,grep和管道没有关系,知识一个文本查找命令
grep是一个文本查找命令,后面可以跟2个参数
grep [关键字] [目标文件]
ls -al /etc | grep 'ssh'
在ls的输出中查找带有ssh字样的行
cut是文本切割命令,用于切割文本文件或是标准输出中的指定列并输出
-c表示按字符列切割文本,后面紧跟的数字表示切第几列,可切割多列,数字之间用逗号隔开即可
wc是文本统计命令
wc可以统计文本文件或者标准输出中的文本行数、单词数和字节数
wc -l 表示仅统计文本行数
查找目录下文本文件的数量
ls -al | cut -c1 | grep "d" | wc -l