标准输入,输出,和错误
cat命令:读取一个或多个文件,然后复制到标准输出。
“cat test.txt”读取文本文件中的内容并输出到屏幕。
以下命令也是从文件中输入,到屏幕中输出。
sort命令:排序文本行。
uniq命令:报道或省略重复行。
grep命令:打印匹配行。
wc命令:打印文件中换行符、字。和字节数。
head命令:输出文件第一部分。
-n参数可调整打印对的行数,默认十行
tail命令:输出文件最后一部分。
也有-n参数
默认情况,程序或者命令如ls、cat的标准输出和标准错误都连接到屏幕,标准输入连接到键盘或文件。而I/O重定向允许我们改变输出的走向和输入的来向。
重定向
使用“>”重定向输出。
重定向标准输出。例如 “ls -l /usr/bin”输入结果到屏幕,“ls -l /usr/bin > output.txt”则输出结果到 output.txt文本文件。如果文件不存在,则创建该文件,如果文件已经存在,则先删除已存在文件的内容,再写入。注意,若该命令出错,则没有标准输出,但文件的内容已被删除。
技巧“> output.txt”,即可删除一个文件的内容。
使用“>>”重定向输出并不删除文件内容,在文件尾部追加内容。
使用“2>”重定向错误。shell将标准输入,输出和错误内部参考为文件描述符0,1和2。
让重定向输出和重定向错误到同一个文件。旧版在重定向标准输出之后添加“2>&1”,使得重定向文件描述符2到文件描述符1,注意标准错误的重定向必须出现在标准输出重定向之后;新版则使用“&>”联合重定向。
“/dev/null”文件叫做位存储桶,它接受收入,并且不对输入做任何处理。可以可以将不需要的输出和错误重定向到“/dev/null”。
管道线
管道线操作符“|”,可将前一个管道命令的标准输出管道到另一个命令的标准输入。
例如“cat output.txt | less”,“cat output.txt”不将输出结果输出到屏幕,而是通过管道线传递给“less”,less接收了之后在进行输出。
tee命令:从标准输入读取数据,并同时输出到标准输出和文件
即“ls /usr/bin | tee ls.txt | grep zip”中ls的结果管道给了tee,tee将结果输出文件并管道给了grep
网友评论