I/O重定向以及管道

I/O重定向

通常对于程序来讲,输入输出可以使键盘、鼠标、显示器等;当然有时候输入的数据是程序自身内部所具有的。同样,输出的数据也有显示器或文件,因此我们到底从哪里输入数据,产生的数据又存放在哪里。

程序:指令+数据

读入数据:Input

输出数据:Output

标准输入:键盘

标准输出:显示器

程序的数据流有三种:

输入的数据流:<-- 标准输入(stdin),键盘

输出的数据流:--> 标准输出(stdout),显示器

错误输出流:--> 标准输出(stdout),显示器

fd(File descriptor):即文件描述符,内核利用fd来访问文件

标准输入:键盘,0

标准输出:显示器,1

标准错误输出:显示器,2

输出重定向:COMMAND > NEW_POS 或 COMMAND >> NWE_POS

>:覆盖重定向,会将目标文件内容覆盖

>>:追加重定向,将输出的内容追加至目标文件尾部

set -C:禁止输出重定向覆盖文件内容

强制覆盖,可使用>|

set +C:允许输出重定向覆盖文件内容

错误输出重定向:COMMAND 2> NEW_POST 或 COMMAND 2>> NEW_POS

2>:覆盖错误输出重定向,覆盖指定的文件内容

2>>:追加覆盖,将错误输出内容追加至文件尾部

合并标准输出和错误输出

(1)&>:覆盖标准输出和错误输出,覆盖指定文件内容

&>>:追加输出

(2)2>&1:

输入重定向:<    COMMAND < INPUT_FILE

把另一个文件的内容当做程序的输入

两个特殊文件:

    /dev/null:数据黑洞,可将所有无关紧要要的输出信息输出至此设备当中,一般在编写脚本时用的比较多

    /dev/zero:吐零机,可无限输出000数据,一般用于生成文件 或覆盖文件

tr命令:删除或转换字符

tr [OPTIONS...] SET1 [SET2]

-c:取字符集的补集

-d:删除SET1定义的字符

-s:把连续的字符显示一次

-t:第一个字符集对应字符转化为第二字符集对应的字符

Here Document:<<

cat << EOF

cat << EOF > aa.txt

管道:|

将一个命令的输出当做下一条命令的输入,实现命令链接

COMMAND1 | COMMAND2 | COMMAND3 |...

将/etc/passwd文件内容转换为大写并输出至aa.txt文件中

tee命令:将标准的输入和标准输出和文件

COMMAND | tee /PATH/TO/SOMEFILE

将输入的文档输出至标准输出并保存至aa.txt文件中

时间: 2024-12-06 21:20:12

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

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

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

10-IO重定向、管道及文本处理工具

bash的快捷键 Ctrl+l : 清屏 相当于clear命令: Ctrl+a:跳转至命令开始处: Ctrl+e:跳转至命令结尾处: ctrl+c :取消命令的执行 ctrl+u:删除命令行首至光标所在处的所有内容: Ctrl+k:删除光标所在处至命令行尾部的所有内容: 4 .bash的的I/O重定向及管道 程序: 指令+数据 读入数据:Input 输出数据:output 打开的文件都有一个fd: file descriptor (文件描述符) 标准输入:keyboard ,0 标准输出:mon

重定向、管道和用户管理练习题

一.重定向.管道的用法练习 1.将/etc/issue文件的内容转换为大写保存到/tmp/issue.out文件中 [[email protected] ~]# tr [a-z] [A-Z] < /etc/issue > /tmp/issue.out  [[email protected] ~]# cat /tmp/issue.out  \S KERNEL \R ON AN \M 或者 [[email protected] ~]# tr '[:lower:]' '[:upper:]' <

linux的输入输出重定向和管道

1. 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux为了跟踪打开文件,而分配的一个数字,(人是根据文件名追踪文件,系统则是根据文件描述符),这个数字有点类似c语言操作文件时候的指针,通过指针就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出st

linux重定向和管道的使用

bash的I/O重定向及管道 程序是由程序+指令组成:或者是数据结构+算法 程序数据来自哪里,处理的结果又存放于哪里? 程序必须能够读入输出然后经过加工来产生结果:程序获取的数据可以使数据也可以hi变量.数据.列表文件等等,程序生产出来的结果可以是变量.数据.列表.文件等.也就是说,程序都有读入数据和输入数据的需求. 读入数据:Input 输出数据:Output 通常对于程序来说,输入输出数据可以是键盘.鼠标.显示器等:当然有时候输入的数据是程序自身内部所具有的,但我们认为这些数据应该是通过外部

linux重定向及管道

1.bash的的I/O重定向及管道        程序:指令+数据            读入数据:Input            输出数据:Output        打开的文件都有一个fd: file descriptor (文件描述符) 标准输入:keyborad, 0        标准输出:monitor, 1        标准错误输出:monitor, 2 I/O重定向:改变标准位置 输出重定向:COMMAND > NEW_POS, COMMAND >> NEW_POS 

Linux目录结构、bash的基础特性、I/O重定向及管道

Linux目录结构 LSB(Linux StandardsBase)是一套核心标准,它保证了LINUX发行版同LINUX应用程序之间的良好结合规定了一系列标准,其中包括文件系统层级结构标准(FHS Filesystem Hierarchy Standard) Linux系统根目录下有众多子目录,这些目录都参照了FHS协定 / ├── bin ├── boot ├── dev ├── etc ├── home ├── lib ├── lib64 ├── lost+found ├── media ├

Linux基础概念-----Linux I/O重定向 ,管道

标准输入:键盘 标准输出:显示器 错误输出:显示器 FD:文件描述符:让程序可以文件交互,并且便于内核识别文件,打开的每一个文件都有一个描述符 程序在和文件交互式,通过文件描述符来进行交互,而非文件名,文件名是方便用户分别文件. Linux一切皆文件,所以标准输入,标准输出都有各自的文件描述符 标准输入描述符:0 标准输出描述符:1 标准错误输出描述符:2 将其默认数据流改为其他设备:IO重定向 输出重定向 > 覆盖重定向 >> 追加重定向 /dev/null  黑洞 只针对当前Shel

Linux 重定向以及管道讲解

1.I/O重定向:input输入,output输出,我们先来看一下那些是输入那些是输出: 输入的数据流:<----标准输入(stdin)    键盘: 输出的数据流: ---->标准输出(stdout) 显示器: 错误的输出流: ---->错误输出 (stderr)显示器: 2.在shell里面标准输入和标准输出以及错误输出都分别有一个代号. 标准输入:0 标准输出:1 错误输出:2 3.重定向 从标准输入读入,标准输出输出,异常报告到标准错误. 以 > 改变标准输出 Comman

Linux中重定向、管道和grep命令总结

今天我们来讲下Linux中的重定向.管道和grep命令.由于重定向和管道知识点比较少,但是又比较重要所以和grep命令一起讲. 在将重定向我们先讲下系统的标准输入和输出.在Linux中标准输入(STDIN 0)对应设备:键盘:标准输出(STDOUT 1)和标准错误输出(STDERR 2)对应设备:显示器.重定向就是将标准输入输出重新定位到指定位置或者设备中(比如:文件). I/O重定向 set –C 禁止对已存在的文件进行覆盖重定向 强制覆盖>| set +C 关闭上述功能 输出重定向: >: