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

IO重定向:

输出重定向:>

特性:覆盖输出

输出重定向:>>

特性:追加输出

# set -C

禁止覆盖输出重定向至已存在的文件;

此时可使用强制覆盖输出:>|

# set +C

关闭上述特性

错误输出流重定向:2>, 2>>  只会将错误的信息输出到指定的地方

合并正常输出流和错误输出流:

(1) &>, &>>

(2) COMMAND > /path/to/somefile 2>&1

COMMAND >> /path/to/somefile 2>&1

[[email protected] tmp]# ech "next" > a.txt 
-bash: ech: command not found
[[email protected] tmp]# ech "next" > a.txt 2>&1
[[email protected] tmp]# ech "next" &> a.txt 
[[email protected] tmp]# ech "next" 2> a.txt

特殊设备:/dev/null,代表空

COMMAND > /dev/null:代表所有的输出信息都不会显示,直接到/dev/null里面去

使用演示:

[[email protected] tmp]# echo "hello" > a.txt
[[email protected] tmp]# cat a.txt 
hello
[[email protected] tmp]# echo "next" >> a.txt
[[email protected] tmp]# cat a.txt 
hello
next
[[email protected] tmp]# ech "next" > a.txt 
-bash: ech: command not found
[[email protected] tmp]# cat a.txt 
[[email protected] tmp]# ech "next" 2> a.txt 
[[email protected] tmp]# cat a.txt 
-bash: ech: command not found
[[email protected] tmp]# ech "next" &>> a.txt 
[[email protected] tmp]# cat a.txt 
-bash: ech: command not found
-bash: ech: command not found
[[email protected] tmp]# ech "next" > /dev/null 
-bash: ech: command not found
[[email protected] tmp]# ech "next" &> /dev/null

输入重定向:

输入重定向:<

特性:覆盖输入

输入重定向:<<

特性:追加输入

使用演示:

1、
[[email protected] tmp]# cat << EOF >a.txt
> I
> wish
> nothing
> but 
> the 
> best
> for
> you
> !
> EOF
[[email protected] tmp]# cat a.txt 
I
wish
nothing
but 
the 
best
for
you
!
2、
[[email protected] tmp]# cat > a.txt << EOF
> l
> o
> v
> e
> EOF
[[email protected] tmp]# cat a.txt 
l
o
v
e

tr命令:

tr [OPTION]... SET1 [SET2]

把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

用法1:

tr SET1 SET2 < /PATH/FROM/SOMEFILE

用法2:

tr -d SET1 < /PATH/FROM/SOMEFILE

注意:不修改原文件,只显示出来

[[email protected] tmp]# tr -d o < a.txt 
l

v
e
[[email protected] tmp]# cat a.txt 
l
o
v
e
[[email protected] tmp]# tr "a-z" "A-Z" < a.txt 
L
O
V
E

管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流

COMMAND1 | COMMAND2 | COMMAND3 | ...

把/etc/passwd文件的前6行的信息转换为大写字符后输出;
[[email protected] tmp]# head -n 6 /etc/passwd | tr ‘a-z‘ ‘A-Z‘
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC

tee命令:将前一个命令的执行结果通过管道覆盖到一个文件中

[[email protected] tmp]# cat a.txt | tee b.txt
l
o
v
e
[[email protected] tmp]# cat b.txt 
l
o
v
e

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

时间: 2024-08-05 18:27:21

Linux上的IO重定向及管道-&> &>> 2> 2>> 2>&1 2>>&1 | tee tr的相关文章

Linux基础入门--IO重定向及管道

IO重定向及管道 一直都提到,程序:指令+数据 其实程序也有IO,数据的来源有多个地方:文件.外部 可用于输入的设备:文件(linux一切皆文件) 键盘设备.文件系统上的常规文件加载内容.网卡等: 可用于输出的设备:文件(linux一切皆文件) 显示器.文件系统上的常规文件输出保存.网卡等: 程序的数据流有三种: 输入的数据流:<-- 标准输入(stdin),是键盘: 输出的数据流:--> 标准输出(stdout),显示器: 错误输出流:  --> 错误输出(stderr),显示器: f

Linux基础之IO重定向及管道详解(涉及tr、tee命令)

我在刚开始接触IO重定向时,经历了由懂到不懂然后了然的过程,当然现在的我也不可能说对于IO重定向就彻底懂了,只是在解决一些问题或实现某些结果时不会因为IO重定向的问题而迷惑了.     什么叫IO重定向? 为了解释这个问题,我们要先明白什么叫IO,什么叫做程序的数据流. 什么叫IO? 在Linux或计算机领域IO指的是信息的输入和输出. 在Linux中可用于输入的设备:文件(Linux中一切皆文件) 具体包括:键盘设备.文件系统上的常规文件.网卡等. 在Linux中用于输出的设备:文件 具体包括

linux下的IO重定向与管道相关的知识简析

一.bash重定向部分简单翻译 1.1.bash手册关于重定向短短的注解(因为过于经典,所以摘录出来) 我的翻译要开始毁经典啦... 参考:https://blog.csdn.net/spch2008/article/details/51433353/ https://www.cnblogs.com/lqminn/archive/2013/05/30/3108283.htmlhttps://bash.cyberciti.biz/guide/Here_stringshttps://bbs.csdn

Linux中IO重定向和管道

IO重定向和管道 根据冯诺依曼原理的知识,计算机运行有数据流的输入和输出,称之为IO. Linux中一切皆文件思想,表现为具体的文件. 在linux中打开的文件都有一个fd(File Descriptor):文件描述符 程序:指令+数据 读入数据:Input 输出数据:Output Linux给程序提供三种I/O设备: 1. 标准输入(STDIN): -0 默认为接受键盘输入2. 标准输出(STDOUT):-1 默认为输出到终端窗口3. 标准错误(STDERR):-2 默认为输出到终端窗口注:标

bash的基本特性之文件名通配 及IO重定向,管道详解

本篇博文依然涉及到bash的基本特性 文件名通配,并讲解IO重定向以及管道的使用 管道配合tr命令的应用 bash的基础特性之一:文件名通配 globbing:文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意长度的任意字符 pa*,*pa*,*pa,*p*a* ?:匹配任意单个字符 pa?,??pa,p?a,p?a? []:匹配指定范围内的任意单个字符 有几种特殊字符: [a-z],[A-Z],[0-9],[a-z0-9] [[:upper:]]:所有大写字母 [[:low

linux基础篇-11,IO重定向和管道

################################################ >:覆盖输出 >追加输出 set -c :禁止覆盖 set +c:关闭禁用覆盖 ################################################ 2>:重定向错误覆盖 2>:重定向错误追加输出 ################################################ &>:错误正确都重定向到一个文件 [[email 

IO重定向及管道操作

运算器.控制器: CPU 存储器:RAM 输入/输出设备 程序:指令和数据 控制器:指令 运算器 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:CPU内部的一个暂时存储器 I/O INPUT设备 OUTPUT设备 如果程序没有指定设备,就从默认输入设备获取,输出时则输出到默认输出设备 系统设定: 默认输出设备:标准输出:STDOUT ,1 默认输入设备:标准输入:STDIN , 0 标准错误输出:STDERR , 2 标准输入:键盘 标准输出和错误输出:显示器 I

IO重定向及管道

程序:指令+数据 程序:IO 可用于输入的设备:文件 键盘设备.文件系统上的常规文件.网卡等: 可用于输出的设备:文件 显示器.文件系统上的常规文件.网卡等: 程序的数据流有三种: 输入的数据流:<-- 标准输入(stdin),键盘: 输出的数据流:--> 标准输出(stdout),显示器: 错误输出流:  --> 错误输出(stderr),显示器: fd: file descriptor,文件描述符 标准输入:0 标准输出:1 错误输出:2 IO重定向: 输出重定向:> 特性:覆

标准IO重定向和管道

标准I/O重定向和管道 1 标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd:file descriptor(文件描述符) Linux给程序提供三种I/O设备 标准输入(STDIN) -0 默认接受来自终端窗口的输入 标准输出(STDOUT) -1 默认输出到终端窗口 标准错误(STDERR) -2 默认输出到终端窗口 范例:文件描述符 2 I/O重定向redirect I/O重定向:将默认的输入,输出或错误对应的设备改变,指向新的目标 2.