管道及I/O重定向
管道及IO 重定向 > < >> <<
计算机组成:
运算器,控制器:CPU
存储器:RAM
输入/输出设备 I/O
程序: 指令和数据
控制器:指令
运算器:
存储器:
地址总线: 内存寻址
数据总线: 传输数据
控制总线: 控制指令
寄存器: CPU暂时存储器
系统设定:
默认输出设备: 标准输出 STDOUT 1
标准输入设备: 标准输入 STDIN 0
标准错误输出: STDERR 2
标准输入: 键盘
标准输出和错误输出: 显示器
I/O 重定向 :改变输入输出的默认来源
Linux:输出重定向 :
> : 输出重定向,覆盖输出
>> : 输出重定向,追加输出
set -C : 禁止对已经存在的文件使用覆盖重定向输出,若想强制覆盖,则用 >|
set +C : 关闭上诉功能
2> : 重定向错误输出 ,覆盖
2>> : 重定向错误输出,追加
标准输出和错误输出属于两个不同的数据流。
&> redirect 重定向所有正确和错误输出
Linux 输入重定向:
< : 输入重定向
tr : 大写字符转换
tr 'a-z' 'A-Z' < /etc/test 表示将/etc/test 下的字符作为输入,重定向给tr。
即将/etc/test 下的所有小写转换为大写
<< : Here Document 在此处生成文档
cat << END
the first line
the second line
END
将上面的两行作为文档输出 输入END 标志结束,END 为标志符号,也可以用其他表示,一般我们用END,或EOF
管道: 前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3
echo "hello,word" | tr 'a-z' 'A-Z'
tee 命令: 从标准输入读取数据,并发送至标准输出和文件
echo "Hello ,Word " | tee /tmp/hello.out
案例应用:
1 统计/usr/bin/目录下的文件个数
# ls /usr/bin | wc -l
2 取出当前系统上所有用户的shell,要求每个shell 只显示一次, 且顺序显示
# cut -d : -f7 /etc/passwd | sort -u
3 如何显示、/var/log 目录下的每个文件类型
# ls -l /var/log -- > file /var/log/*
# 或者直接用
# cd /var/log -- > file `ls /var/log` (bash的命令替换的形式)
4 取出/etc/inittab 文件的第六行
# head -6 /etc/inittab | tail -1
5 取出/etc/passwd 文件中的倒数第九个用户的用户名和shell,显示到屏幕上并并且保存至 /tmp/users 文件中
# tail -9 /etc/passwd | head -1 | cut -d: -f 1,7| tee /tmp/users
6 显示/etc/目录下所有以pa开头的文件,并统计 个数
# ls -d /etc/pa* |wc -l
7 不使用文本编辑器,将alias cls = clear 一行内容添加到当前用户的 .bashrc 文件中
# echo "alias cls = clear " >> ~/.bashrc
管道及I/O重定向的更多相关文章
- linux管道(|)与重定向(<>)的异同
共同点:管道和重定向都改变程序的标准输入或者标准输出 区别: 管道(|)两边都是程序(命令),而重定向(<>)只有左边是程序(命令).即是,管道通过两个子进程来改变两边命令的输入或输出,重 ...
- Linux管道及I/O重定向
I/O: 系统设定 默认输入设备:标准输入,STDIN,0 默认输出设备:标准输出,STDOUT,1 标准错误输出:STDERR,2 属于不同的数据流 标准输入:键盘 标准输出和错误输出:显示器 I/ ...
- 管道及 I/O 重定向
I/O重定向 I/O Redirection 标准输入.标准输出.标准错误输出重定向及综合案例输入重定向及结合案例 标准输入.标准输出.标准错误 file descriptors (FD,文件描述符 ...
- Linux管道及重定向
Linux管道及重定向 对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制.在shell中,我们通常使用符合'|'来表示管道,符号'>'和'<'表示重 ...
- 重定向-管道技术-xargs命令详解
重定向 什么是重定向? 将原本要输出在屏幕的内容,重新定向输出到指定的文件或设备中. 为什么要使用重定向? 1.备份的时候需要知道备份的结果. 2.屏幕上输出信息比较重要的时候需要保存下来. 3.定时 ...
- Unix/Linux进程间通信(二):匿名管道、有名管道 pipe()、mkfifo()
1. 管道概述及相关API应用 1.1 管道相关的关键概念 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管 ...
- Linux环境进程间通信(一):管道及命名管道
linux下进程间通信的几种主要手段: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允 ...
- Linux中的pipe(管道)与named pipe(FIFO 命名管道)
catalogue . pipe匿名管道 . named pipe(FIFO)有名管道 1. pipe匿名管道 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常 ...
- Linux 标准输入输出、错误输出、重定向标准输出
再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...
随机推荐
- MySql Query Cache 优化
query cache原理 当mysql接收到一条select类型的query时,mysql会对这条query进行hash计算而得到一个hash值,然后通过该hash值到query cache中去匹配 ...
- java thread yield 的设计目的是什么?
如题,java thread yield 的设计目的是什么?有什么实际应用场景吗? Ps:它的作用是理解的,和 join 等的区别也理解.就是个人感觉这个设计有点鸡肋(可能是个人读书太少...) It ...
- java之集合Collection详解之3
package cn.itcast_03; public class Student { // 成员变量 private String name; private int age; // 构造方法 p ...
- scrapy分布式爬虫scrapy_redis一篇
分布式爬虫原理 首先我们来看一下scrapy的单机架构: 可以看到,scrapy单机模式,通过一个scrapy引擎通过一个调度器,将Requests队列中的request请求发给下载器,进行页 ...
- 一个简单的例子实现自己的AOP
AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,与OOP(Object Oriented Programming)面向对象编程对等,都是一种编程思想. 从OO ...
- election.go
package)) ].GetResponseRange().Kvs[] ) ].Value),] } wch := client.Watch(cctx, string ...
- 第十三章——卷积神经网络(CNN)
卷积神经网络(Convolutional neural networks,CNNs)来源于对大脑视觉皮层的研究,并于1980s开始应用于图像识别.现如今CNN已经在复杂的视觉任务中取得了巨大成功,比如 ...
- BZOJ_4765_普通计算姬_分块+dfs序+树状数组
BZOJ_4765_普通计算姬_分块 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些 .普通计算机能 ...
- BZOJ_3675_[Apio2014]序列分割_斜率优化
BZOJ_3675_[Apio2014]序列分割_斜率优化 Description 小H最近迷上了一个分隔序列的游戏.在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列.为了 ...
- python九九
学了有一段时间了,才发现自己连九九乘法表都写不出,好好笑,哈哈. 代码实现: for i in range(1,10): for j in range(1,i+1): print('%dx%d=%-2 ...