Linux IO重定向和管道
计算机组成部分:
由io 、 控制器、计算器、存储器组成
IO: input output
计算机里面通过终端窗口实现输入和输出,键盘鼠标屏幕这些只是手段,真正完成输入输出的是终端窗口
标准输入、出、错误
在linux中,每打开一个文件,系统会分配一个唯一的数字(文件描述符 --fd)用来代表目前打开的文件,其中有三个数字预留给打开的文件使用(0 1 2 )
- 标准输入 -- stdin --- 0 --- 对应/dev/stdin设备
- 标准输出 -- stdout --- 1 --- 对应/dev/stdout设备
- 标准错误 -- stderr --- 2 --- 对应/dev/stderr设备
输入出错误需要一个设备来实现:
查看默认的输入输出错误的窗口设备 --- ll /dev/std*
默认当前的窗口就是完成实现默认的输入、输出和错误的设备
重定向: redirect
描述: 重新改变linux的输入输出等
输出重定向
输出的信息不在当前窗口完成,而是在指定的设备进行完成。
使用tty命令可以查看当前窗口的终端名称
例如: echo 1346 1> /dev/pts/0 -- 将要输出结果在指定的窗口进行显示
输出重定向的标准写法: 1>
(可以省略成 >
)
- 1表示的就是输出 --- 标准输出重定向
- 输出的提示信息算 标准错误输出
将标准输出和标准错误都重定向
重定向到不同的文件:xx 1> f1 2>f2 --- 对的重定向到f1,错的重定向到f2
重定向到同一个文件: xx > xx 2>&1 --- 把标准输出往xx里面写,把错的重定向到1里面 2>&1
2>&1:2表示错误,1表示正确,&符号的作用是表示1是描述符不是文件名1
整体意思就是把错误的输出重定向到1(正确输出的文件)里面去
注意:前后次序有要求。需要先放对的 再放错的
错误示范:xx 2>&1 > xx.txt
这样写不对,因为首先执行的就是把错误重定向到1里面.然而这个时候1自己都不知道该重定向到哪儿,所以就输出到了屏幕,没有实现1和2的重定向.
将标准输出和标准错误都重定向到同一文件的简写方法: &> 或者 >&
cat命令既支持输入重定向,也支持输出重定向。
例如把输入的内容直接生成到文件中 cat > a.txt
输入内容每回车一次就重定向一次
输入重定向
用法1:
比如一个命令原来默认是通过当前终端来进行标准输入的,可以通过一个文件,把文件中的内容输入给它
.
用法2:
实现多行重定向<< 单词
,提前把多行内容写完,然后再执行重定向
例如: cat > xx << EOF --- 遇到EOF结束
管道:
左侧的标准输出作为右侧的标准输入 --- stdin | stdout
比如实现1+..100: seq -s+ 100 | bc(-s:指定分隔符)
tr命令:
作用: 字符转换和删除
转换:
tr '123' 'abc' -- 把132转换成abc -- 一一对应 1--a 2--b
tr命令需要有输入才能进行转换 不能这样: tr 'xx' 'yy' filename
删除:
删除: tr -d '需要删除的内容'
例如:
实现windos格式向linux格式转换:
tr -d '\r' < 1.txt > 11.txt
windows的文本文件多了个回车符号 所以 tr -d '\r' 文件名
(\r:回车 \n:换行 -d:删除指定字符)
tr命令执行删除操作的时候 需要有输入
实例: 查看分区的时候取出分区利用率:
1.将多个连续的空格压缩成一个空格 df | tr -s ' ' (-s:把相同连续的字符合成一个)
2.使用awk 指定空格作为分隔符就取出来了
Linux IO重定向和管道的更多相关文章
- 四、IO重定向和管道以及基本文本处理工具
一.三种IO设备 程序:数据+指令 或 数据结构+算法程序必须能够读入输入然后经过加工来产生结果,其接受的输入可以是变量.数组.列表.文件等等,生产出来的结果可以使变量.数组.列表.文件等等.即:程序 ...
- IO重定向与管道
一.三种IO设备 程序:数据+指令 或 数据结构+算法 程序必须能够读入输入然后经过加工来产生结果,其接受的输入可以是变量.数组.列表.文件等等,生产出来的结果可以使变量.数组.列表.文件等等.即: ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- Linux中重定向及管道
1重定向1.1 重定向符号 > 输出重定向到一个文件或设备 覆盖原来的文件 >! 输出重定向到一个文件或设备 强制覆盖原来的 ...
- Linux数据流重定向与管道
数据流重定向简单来说就是把原本应该输出到某处(比如说屏幕)的数据,重定向其输出目的地,到其他的地方(比如文件). linux中的输入与输出: 标准输入(stdin):默认从键盘输入 标准输出(stdo ...
- Linux的重定向与管道
(1).输出重定向 定义:将命令的标准输出结果保存到指定的文件中,而不是直接显示在显示器上. 输出重定向使用>和>>操作符. 语法:cmd > filename,表示将标准输出 ...
- 【Linux】重定向与管道
重定向 redirection 每个命令有输入源和输出目的地,默认行为,是标准输入和标准输出.大多数情况,标准输入是键盘,标准输出是屏幕.可以为单独的操作修改输入和输出,这就是重定向.重定向可以使某个 ...
- linux - 输入输出重定向 及 管道
> 正确结果重定向 2> 错误结果重定向 &> 正确和错误全部重定向 >> 追加,其它同> 标准输出实际上就是显示器,比如我们使用cat命令打开一个文件,文 ...
- linux学习14 Linux运维高级系统应用-glob通配及IO重定向
一.回顾 1.bash基础特性:命令补全,路径补全,命令引用 2.文件或目录的复制,移动及删除操作 3.变量:变量类型 存储格式,数据表示范围,参与运算 二.bash的基础特性 1.globbing: ...
随机推荐
- 【FAQ】干货满满,接入HMS Core应用内支付服务过程中一些常见问题总结(2)来啦
HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档 上次,我们分享和总 ...
- 字符串/16进制/ASCII码的转换
1 /// <字符串转16进制格式,不够自动前面补零> 2 /// 假设文本框里面填写的是:01 02 03 04 05 06 3 /// Str获取的是01 02 03 04 05 06 ...
- 2021.08.16 P1260 工程规划(差分约束)
2021.08.16 P1260 工程规划(差分约束) 重点: 1.跑最短路是为了满足更多约束条件. P1260 工程规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 造 ...
- js 改变页面元素的内容
改变页面标签里的内容 (方法) innerText innerHTML (常用) 代码示例 <div></div> <p> 我是文字 <span>1 ...
- python 安装各种库的镜像
让python pip使用国内镜像#国内源:#清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:https://mirrors.aliyun.com/py ...
- 『现学现忘』Git基础 — 13、Git的基础操作
目录 1.Git最基础的使用方式 (1)初始化本地版本库 (2)查看文件的状态 (3)把文件添加到暂存区 (4)把暂存区的内容提交到本地版本库 2.总结本文用到的Git命令 1.Git最基础的使用方式 ...
- PHP 运行 mkdir() Permission Denied 的原因
使用lamp,在上传文件时,PHP执行 mkdir($path) , 出现没有权限的错误. 解决: 本次使用的时yii框架,所以首先确保 是apache的用户对web目录有权限,然后再给此用户加 r ...
- Spring 源码(8)Spring BeanPostProcessor的注册、国际化及事件发布机制
上一篇文章https://www.cnblogs.com/redwinter/p/16198942.html介绍了Spring的注解的解析过程以及Spring Boot自动装配的原理,大概回顾下:Sp ...
- 【hexo博客搭建】本地搭建hexo博客(上)
前言 本篇文章会从本地(Windows 10)搭建-主题更换-部署阿里云详细步骤,如果在搭建过程中,遇到问题,可以通过博客页脚下的QQ联系我,或者在下面评论留言 一.本地搭建 1.安装前置 1.1安装 ...
- 【题解】2021CSP-J2T3网络连接
目录 题目链接 题目分析 是否重复 读入提取数 非法情况判断 参考代码 题目链接 题目分析 map不会冲突!!不一定要like代码中那样加-号! 模拟,算不上大, 首先,我们想想整个流程: 现在,我们 ...