Linux命令行使用之命令行输入与输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26765193/article/details/83189393

          与DOS类似,Shell 程序通常自动打开3个标准文档:标准输入文档(stdin)、标准输出文档(stdout)和标准错误输出文档(stderr)。其中 stdin 一般对应终端键盘,stdout 和 stderr 对应终端屏幕。进程从 stdin 获取输入内容,将执行结果输出到stdout,如果有错误信息,同时输出到 stderr。多数情况下使用标准输入输出作为命令的输入输出,但有时可能要改变标准输入输出,这就涉及到重定向和管道。

1.输入重定向

主要用于改变命令的输入源,让输入不要来自键盘,而来自指定文件。基本用法:

命令 < 文件名

例如,wc 命令用于统计指定文件包含的行数、字数和字符数,直接执行不带参数的 wc 命令,将等待用户输入内容之后,按<Ctrl>+<D>结束输入后才对输入的内容进行统计。而执行下列命令通过文件为 wc 命令提供统计源。

2.输出重定向

主要用于改变命令的输出,让标准输出不要显示在屏幕上,而是写入到指定文件中。基本用法:

命令 > 文件名

例如,ls 命令在屏幕上列出文件列表,不能保存列表信息。要将结果保存到指定文件,就可使用输出重定向,下列命令将当前目录中的文件列表信息写到所指定的文件中。

ls > /home/nnp/myml.list

如果要写入已有文件,则将该文件重写(覆盖)。要避免重写破坏原有数据,可选择追加功能,将 > 改为 >>,下列命令将当前目录中的文件列表追加到指定文件的末尾。

ls >> /home/nnp/myml.list

以上是对标准输出来讲的,至于标准错误输出的重定向,只需要换一种符号,将 > 改为 2> ,将 >> 改为 2>>。将标准输出和标准错误输出重定向到同一文件,则使用符号 &>。

3.管道

管道用于将一个命令的输出作为另一个命令的输入,使用符号 “|” 来连接命令。可以将多个命令依次连接起来,前一个命令的输出作为后一个命令的输入。基本用法:

命令1 | 命令2 ....... | 命令n

在Linux命令行中,管道操作非常实用。例如,以下命令将 ls 命令的输出结果提交给 grep 命令进行搜索。

ls | grep "ab"

在执行输出内容较多的命令时可以通过管道使用 more 命令进行分页显示,例如:

cat /etc/log/message | more

4.命令替换

命令替换与重定向有些类似,不同的是命令替换将一个命令的输出作为另一个命令的参数,常用命令格式如下:

扫描二维码关注公众号,回复: 4117731 查看本文章
命令1 '命令2'

其中命令2的输出作为命令1的参数,注意这里的符号是指反引号,被它括起来的内容作为命令执行,执行的结果作为命令1的参数。例如以下命令将 pwd 命令列出的目录作为 cd 命令的参数,结果仍停留在当前目录下。

cd 'pwd'

猜你喜欢

转载自blog.csdn.net/qq_26765193/article/details/83189393