管道及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 标准输入输出、错误输出、重定向标准输出
再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...
随机推荐
- C++ Singleton (单例) 模式最优实现
参考:http://blog.yangyubo.com/2009/06/04/best-cpp-singleton-pattern/ 索引 静态化并不是单例 (Singleton) 模式 饿汉模式 懒 ...
- c# xml操作(一)
c# xml操作(一) 此博文包含图片 (-- ::)转载▼ 标签: 杂谈 分类: c# 同样是增,删,改,查四种操作.现在我们就详细介绍一下增和删两种操作.看下面的一个xml示例: <?xml ...
- SVN客户端和服务器端下载地址
https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn ...
- 「JavaScript」JS四种跨域方式详解
原文地址https://segmentfault.com/a/1190000003642057 超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript ...
- 读书笔记---HTML5实战 MARCO CASARIO(后六章)
画布叠加:用CSS的z-index和position; 第八章 HTML5通信API ①XMLHTTPREQUEST是JS中用于服务器交互的API; ②用HTML5的POSTMESSAGE API实现 ...
- spring创建bean及数据注入
通过spring的IoC可以实现由配置文件来创建类的对象,可以降低类鱼类之间的耦合, 通常我们都是在代码中控制对象的生成和属性注入,而使用IoC后,就可以将设计好的类交给IoC容器,让容器去控制对象的 ...
- linux安装tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
这两天我们的开发机重启了好几次,发现每次重启后我的tomcat总是没有启动.检查java路径,配置正确,后来拿普通账号启动tomcat时报如下的错: Neither the JAVA_HOME nor ...
- Java8-6-Predicate接口详解
转自https://segmentfault.com/a/1190000012256677 Predicate函数式接口的主要作用就是提供一个test方法,接受一个参数返回一个布尔类型,Predica ...
- 【BZOJ 4652】【NOI 2016】循环之美
题目连接: 传送 题解: 真是一道好题…… 一: 一个分数$\frac{x}{y}$完全循环当其第一次出现时,当且仅当y与k互质,x与y互质,且y不等于1. 整数情况下y一定为1,即也满足以上判断. ...
- 【bzoj2432】【NOI2011】兔农
题目描述 农夫栋栋近年收入不景气,正在他发愁如何能多赚点钱时,他听到隔壁的小 朋友在讨论兔子繁殖的问题. 问题是这样的:第一个月初有一对刚出生的小兔子,经过两个月长大后,这 对兔子从第三个月开始,每个 ...