Shell语言-09-输入输出重定向

1. 简述

一般情况下:

  • 输入方向就是数据从哪里流向程序。数据默认从键盘流向程序,如果改变了他的方向,数据就从让其他地方流入,这就是输入重定向;
  • 输出方向就是数据从程序流向哪里。数据默认从程序流向显示屏,如果改变了它的方向,数据就流向其他地方,这就是输出重定向;

Linux中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件;
为了表示和区分已经打开的文件,Linux会给每一个文件分配一个ID,这个ID就是一个整数,被称为文件描述符;

输出重定向是指命令的结果不再输出到显示屏上,而是输出到其他地方,一般是文件中,这样做的最大好处就是,把命令的结果保存起来,当我们需要的时候可以随时查询;

2. 输入 输出重定向

2.1.输入重定向 command1 < file1

就是你登陆linux服务器 你想将某个文件,事先准备好的,里面有内容的,导入到系统里面去,最常见的,将sql文件导入到数据库 就是输入重定向

2.2 输出重定向 command1 > file1

举个最简单的列子,就是你在控制台输出的日志,你想放到文件里面去,就是输出重定向

2.3.追加就是 >>

就是基于原先重定向的基础之上追加,而不是覆盖原来的

2.4.简单命令说明

命令	说明
command > file	将输出重定向到 file。
command < file	将输入重定向到 file。
command >> file	将输出以追加的方式重定向到 file。
n > file	将文件描述符为 n 的文件重定向到 file。
n >> file	将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m	将输出文件 m 和 n 合并。
n <& m	将输入文件 m 和 n 合并。
<< tag	将开始标记 tag 和结束标记 tag 之间的内容作为输入。

2.5. 深入命令说明 stdin stdout stderr

文件描述符	 缩写	          描述
0	        STDIN	         标准输入
1	        STDOUT	        标准输出
2	        STDERR	        标准错误

  • 只重定向错误 $ command 2>file

  • 基础上追加 $ command 2>>file

  • 只重定向标准输出 $ command 1>file

  • 基础上追加 $ command 1>>file
    如果希望将 stdout (输出)和 stderr(错误) 合并后重定向到 file

  • 错误和输出一起 $ command > file 2>&1
    或者 $ command &> file

bash shell提供了符号&>,使用这个符号的话,bash shell会自动赋予错误消息更高的优先级。

  • 基础上追加 $ command >> file 2>&1
    如果希望对 stdin(输入) 和 stdout(输出) 都重定向,可以这样写:
  • 输入和输出一起 $ command < file1 >file2

2.6 /dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:

$ command > /dev/null 2>&1

注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

这里的 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alan0517

感谢您的鼓励与支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值