1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux标准输入 标准输出 重定向

Linux标准输入 标准输出 重定向

时间:2020-02-12 12:35:50

相关推荐

Linux标准输入 标准输出 重定向

前言

背景:我们在平时中常见到诸如

Linux常见的命令>1>/dev/null2>&1都是指的什么呢?

>代表重定向符

1>/dev/null代表标准输出重定向到空设备文件,也就是不输出也不显示任何信息。其中 :1 代表标准输出,/dev/null 代表空设备文件。

2>&1代表标准错误重定向且等同于标准输出,也就是标准错误也重定向到空设备中。其中:2代表标准错误,& 代表等同于。

command 1>/dev/null 2>&1就是不显示任何标准输出和标准错误

关于标准输入、输出和错误

3种文件描述符

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

标准输入文件(stdin):stdin的文件描述符为0,Unix/Linux 程序默认从stdin读取数据,标准输入就是命令的输入,默认指向键盘。标准输出文件(stdout):stdout 的文件描述符为1,Unix/Linux 程序默认向stdout输出数据,标准输出就是命令的输出,默认指向终端屏幕。标准错误文件(stderr):stderr的文件描述符为2,Unix/Linux 程序会向stderr流中写入错误信息,标准错误是命令错误信息的输出,默认指向屏幕。

默认情况下,command > file将 stdout 重定向到 file,command < file将stdin 重定向到 file。

6种重定向符

命令 < 文件

将文件作为命令的输入,如:mail -s "mymail" IloveChina@ < mailfile

将文件mailfile作为信件内容发送。

命令 > 文件

将命令的输出结果送到指定文件中,默认为标准输出重定向(即1>),且覆盖原文件内容。

命令 >! 文件

将命令的输出结果送到指定文件中,若指定文件存在,则覆盖。

命令 >& 文件

将命令的输出结果写入到指定文件中

命令 >> 文件

将命令的输出结果附加到指定文件中(追加)

命令 >>& 文件

将命令的 产生的任何输出结果附加到指定文件中

常用的有2、4、5,重定向的使用需要注意:

标准输入0、标准输出1、标准错误2需要分别重定向,一个重定向只能改变它们其中一个。标准输入和标准输出可以省略。(当出现重定向符号左侧时)文件描述符在重定向符号左侧直接写即可,在右侧时前面加&。文件描述符与重定向符号之间不能有空格

例子

我们来解析一些例子:

# /home/pi需要根据用户名修改,且已存在temp目录,不存在则需 mkdir temp 创建新目录# 将字符test输入到test.txtpi@raspberrypi:/dev $ echo "test" > /home/pi/temp/test.txtpi@raspberrypi:/dev $ cat /home/pi/temp/test.txttest# 将字符test2222输入到已存在的test.txt,>覆盖原内容,>>追加原内容pi@raspberrypi:/dev $ echo "test2222" > /home/pi/temp/test.txtpi@raspberrypi:/dev $ cat /home/pi/temp/test.txttest2222pi@raspberrypi:/dev $ echo "test2222" >> /home/pi/temp/test.txtpi@raspberrypi:/dev $ cat /home/pi/temp/test.txttest2222test2222# 将标准错误输出重定向到 err_out.txt 文件中,由于不存在test目录而不能创建文件导致错误,使用2>重定向错误到文件中,则控制台不显示错误输出# 注意:前提要不存在test目录pi@raspberrypi:~ $ touch /home/test/test/test.txt 2> err_out.txtpi@raspberrypi:~ $ cat err_out.txttouch: cannot touch '/home/test/test/test.txt': No such file or directory# 将标准错误重定向到标准输出,将标准输出重定向到空设备文件pi@raspberrypi:~ $ ls > /dev/null 2>&1 pi@raspberrypi:~ $ ls 2&>1 > /dev/null # 两者等价

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。