管道及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

原文地址:https://www.cnblogs.com/thelovelybugfly/p/10742668.html

时间: 2024-10-26 21:10:13

管道及I/O重定向的相关文章

管道和I/O重定向

I/O即输入输出,在linux中标准的输入输出设备为键盘和显示器,当我们执行一条命令时,默认的输出结果会显示在屏幕上,如果我们不想让它显示在屏幕上时,就需要使用输出重定向来让它显示在其他设备或保存在某个文件中. 重定向即修改默认的输入输出设备为其他设备或文件: 命令执行过程的数据传输情况 当我们执行一个命令的时候,会由文件读取数据,经过处理后,再将结果输出到屏幕:Standard Output和Standard Output Error分别代表标准输出和标准错误输出: 在linux系统中,所有的

Linux命令(九)管道和I/O重定向&gt;、&gt;&gt;、2&gt;、2&gt;&gt;、&amp;&gt;、&lt;、&lt;&lt;、tee

重定向:> < >> << 运算器.控制器: CPU存储器:RAM输入设备/输出设备 程序:指令和数据 控制器:指令运算器:存储器: 地址总线:内存寻址数据总线:传输数据控制总结:控制指令 寄存器:CPU暂时存储器 I/O: 硬盘, 程序 INPUT设备: OUTPUT设备 系统设定    默认输出设备:标准输出,STDOUT, 1    默认输入设备:标准输入, STDIN, 0    标准错误输出:STDERR, 2    标准输入:键盘标准输出和错误输出:显示器

linux综合顺练(涉及管道,正则,重定向、用户及组管理、权限管理等相关知识点)

一.概述   本博文是对前边总结的知识点的一个综合利用,涉及的知识点比较广泛,涉及的大概有"bash特性之管道","bash特性之重定向","grep命令与正则表达式的利用","linux下用户与组管理","linux下权限管理"等.下面给出上边提到知识点之前的博客链接: bash的重定向和管道相关知识点:http://blog.51cto.com/9657273/2172717 文件基础管理类命令汇总:h

Linux中的管道与重定向

前言: 这篇博文主要参考了鸟哥的<鸟哥的Linux私房菜>和杨鹏(NetSnake)的<Linux服务器架设>这两本书,以及在网络上查阅的资料.此博文作为我阅读<鸟哥的Linux私房菜>和<Linux服务器架设>这本书的读书笔记.那么接下来就让我们依次了解它们. 概述: 熟悉操作系统的朋友,常常会听到.用到管道和重定向这两个词,那么究竟什么是管道,什么是重定向?他们对我有用吗?可以说,管道和重定向是操作系统的精髓之一,在操作系统的进程.程序和管理等各方面,都

Linux管道及重定向

Linux管道及重定向 对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制.在shell中,我们通常使用符合'|'来表示管道,符号'>'和'<'表示重定向.那么管道和重定向的真实含义(定义)又是什么呢? 管道 管道的定义 管道就是一个进程与另一个进程之间通信的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入.它是半双工运作的,想要同时双向传输需要使用两个管道.管道又可以分为匿名管道和命名管道,而shell中使用到的是匿名管道,所以本文仅描述

Shell中while循环的done 后接一个重定向&lt;

转自:http://hi.baidu.com/%CE%D2%D2%AA_%D1%A7_%CF%B0/blog/item/b3b5e723bb2ed1265243c1e4.html 读文件的方法: 第一步: 将文件的内容通过管道(|)或重定向(<)的方式传给while 第二步: while中调用read将文件内容一行一行的读出来,并付值给read后跟随的变量.变量中就保存了当前行中的内容. 例如读取文件/sites/linuxpig.com.txt 1)管道的方式:      cat /sites

无名管道跟dup,dup的使用

参考资料: http://www.tldp.org/LDP/lpg/node11.html http://blog.csdn.net/yeyuangen/article/details/6852682 http://blog.sina.com.cn/s/blog_65c5c5990100mx6d.html 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别. 下面是一个

Unix/Linux进程间通信(二):匿名管道、有名管道 pipe()、mkfifo()

1. 管道概述及相关API应用 1.1 管道相关的关键概念 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中. 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出.

11_Shell语言———管道详解

管道的基本用法为: COMMAND1 | COMMAND2 | COMMAND3 | ... COMMAND1 的输出结果会作为输入参数传递给COMMAND2, COMMAND2加以处理后会传递给COMMAND3, 依此类推.管道的使用便是Linux哲学思想中"组合小程序完成复杂任务"的体现方式. 如果管道的最后一个命令是在当前shell的子shell中执行,那么该执行结果不能保存为一个变量,这样会导致当前shell无法获取执行结果,这是由shell中"本地变量只对当前she