Linux的标准I/O和管道

标准输入输出与管道 

1、标准输入和输出

程序:指令+数据

指令:计算、加减乘除

数据:输入数据、输出数据

2、在Linux中每一个打开的文件都会分配一个当前进程中唯一的文件描述符,用来标识文件的状态

fd:file descripor

3、Linux提供给程序的有三种I/O设备

1、标准输入(stdin)      -0 默认接受来自键盘的输入

2、标准输出 (stdou)    -1 默认输出到终端窗口

3、标准错误   (stderr)  -2 默认输出到终端窗口

4、I/O 重定向:改变默认的输入、输出的位置,重新定位到其他的地方

1、将stdin    stdout   stderr重新定位到文件中

>  stdout  的重新定位

2>    stderr 的重新定位

&>    将所有的输出重新定位

使用了 >  stdout  的重新定位 ,执行结果,将不会输出到,终端上,被重定向到11.txt中,如果该文件不存在,则会被创建

一个错误的命令,使用的是 2 ,默认输出到终端,可以使用  2>重定向到22.txt 文件中,终端就不会打印错误的信息

如果一个命令中既有标准输出、又有标准错误输出,则使用   &> 定位

注意使用    >

2>

&>

这是都是覆盖文件,如果想要追加这则使用

>>

2> >

&> >

2、将标准输入、与标准错误重新全部定位到文件中,除了使用    &>>,还可以如下使用方式,但是注意顺序很重要

4、tr 命令的使用

用途: 转换和删除字符

语法:tr [ - options ....]   set1  set2

-d --delete:删除所有属于第一字符集的字符

-s --squeeze-repeats:把连续重复的字符以单独一个字符表示

-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符

-c –C --complement:取字符集的补集

5、从文件中导入输入流

1、使用<来重定向标准输入

2、某些命令能够接受从文件中导入的STDIN

3、如cat 、tr等

4、可以多行一起发送给STDIN  ,使用 << EOF终止词

6、管道

1、 管道(使用符号“|”表示)用来连接命令

2、语法:cammand1 | cammand2 | cammand3

3、将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

4、STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现

7、重定向到多个目标(tee)

用法: cammand1 | tee file | cammand2

作用:可以将上一个命令标准输出流定位到文件中,又可以将其传中下一个命令作为其标准的输入流

原文地址:http://blog.51cto.com/12302981/2154730

时间: 2024-10-13 23:14:09

Linux的标准I/O和管道的相关文章

初学Linux之标准I/O和管道

标准输入和输出 程序是由指令+数据组成 程序的数据流有三种: 输入数据流:<–标准输入(stdin),一般默认是键盘 输出数据流:–>标准输出(stdout),一般默认到终端窗口 错误输出流:–>标准错误(stderr),一般默认到终端窗口 标准输入:0 标准输出:1 错误输出:2 I/O重定向:改变默认位置 输出重定向:将标准输出(stdout)和标准错误(stderr)重定向到指定位置 格式: 命令 操作符号 文件名 支持的操作符号: > :把标准输出(stdout)重定向到文

Linux——标准I/O以及管道

标准I/O以及管道 目录 一.什么是I/O 二.什么是管道 三.三种I/O设备 四.把I/O输出错误重定向入文件 五.tr 六.从文件中导入STDIN 七.使用管道链接命令 八.tee 一.什么是I/O I/O(input/output),即输入/输出端口. 每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息.CPU与外部设备.存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器        接口.存储器通常在CPU的同步控制下工作,接口电路比

标准I/O与管道;用户、组和权限;文件处理工具及正则表达式总结

四.标准I/O与管道标准输入和输出程序:指令+数据读入数据:Input输出数据:Output?打开的文件都有一个fd: file descriptor (文件描述符)?Linux给程序提供三种I/O设备?标准输入(STDIN)-0 默认接受来自键盘的输入?标准输出(STDOUT)-1 默认输出到终端窗口?标准错误(STDERR)-2 默认输出到终端窗口?I/O重定向:改变默认位置把输出和错误重新定向到文件?STDOUT和STDERR可以被重定向到文件命令 操作符号 文件名支持的操作符号包括: 把

标准I/O与管道

标准I/O与管道 标准输入和输出 读入数据:Input 输出数据:Output Linux给程序提供三种I/O设备 标准输入(STDIN)-0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标准错误(STDERR)-2 默认输出到终端窗口 I/O重定向:改变默认位置 把输出和错误重新定向到文件 STDOUT和STDERR可以被重定向到文件 命令 ~ 操作符号 ~ 文件名 支持的操作符号包括: 把STDOUT重定向到文件> 2> 把STDERR重定向到文件 &

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存 参考:<linux编程从入门到精通>,<Linux C程序设计大全>,<unix环境高级编程> 参考:C和指针学习 说明:本文非常的长,也是为了便于查找和比较,所以放在一起了 Linux 传统的进程间通信有很多,如各类管道.消息队列.内存共享.信号量等等.但它们都无法介于内核态与用户态使用,原因如表 通信方法 无法介于内核态与用户态的原因 管道(不包括命名管道) 局限于父子进程间的通信. 消息队列 在

Linux上的IO重定向及管道-&&gt; &&gt;&gt; 2&gt; 2&gt;&gt; 2&gt;&1 2&gt;&gt;&1 | tee tr

IO重定向: 输出重定向:> 特性:覆盖输出 输出重定向:>> 特性:追加输出 # set -C 禁止覆盖输出重定向至已存在的文件: 此时可使用强制覆盖输出:>| # set +C 关闭上述特性 错误输出流重定向:2>, 2>>  只会将错误的信息输出到指定的地方 合并正常输出流和错误输出流: (1) &>, &>> (2) COMMAND > /path/to/somefile 2>&1 COMMAND &g

标准 I/O 和管道

标准I/O和管道 > 重定向操作符 >,>> 还能创建新文件 > 覆盖 >> 追加 set -C 禁止将内容覆盖已有文件,但可追加(相当于一个开关) >| file 强制覆盖 set +C 允许覆盖 1> 标准输出重定向到一个文件里面 2> 标准错误重定向到一个文件里面 &> 标准输出和标准错误重定向到一个文件里面 2>&1 把标准错误变换成标准输出输入到文件里 原文地址:https://blog.51cto.com/

Linux学习第五节课-标准I/O和管道

Linux学习第五节课 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 三十一.标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: file descriptor (文

4、Bash基础及配置、标准I/O、管道及shell编程基础;

1.Bash基础及配置 站在用户的角度来讲,SHELL的类型: 登录式shell 正常通过某终端登录 su - USERNAME su -l USERNAME 非登录式shell su USERNAME 图形终端下打开的虚拟终端 自动执行的shell脚本 bash的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh , /etc/bashrc 个人配置: ~/.bash_profile, ~/.bashrc profile类的文件 1.设定环境变量 2.运