bash的I/O 重定向和管道

一、标准输入和输出

     1.程序:指令加数据 或者说:数据结构加算法

2.读入数据:Input

输出数据:Output

3.文件描述符 fd

在Linux中一切皆文件,因此我们要通过文件来对设备进行访问,对于用户来说,访问文件就是通过文件名来进行的,用户看到的是一个文件名,但对于内核来讲是一个数字,这个数字叫文件描述符,内核就是通过文件描述符来访问文件

4.Linux给程序提供三种I/O设备

标准输入(STDIN):0    键盘  (默认来自键盘输入)

标准输出(STDOUT);1   显示器(默认来自终端窗口

标准错误(STDERR):2  显示器 (默认来自终端窗口

二、I/O重定向:改变默认位置

1.输出重定向

格式:COMMAND > NEW_POS  COMMAND >> NEW_POS

> :覆盖重定向,目标文件汇总的原有内容会被清除

>> : 追加重定向,新内容会追加至目标文件尾部

(1)重定向内容到指定终端

(2)覆盖重定向至文件中

(3)追加重定向到文件中

2.错误输出重定向

2> :覆盖重定向错误输出流

2>> :追加重定向错误输出数据流


3.标准输出和错误输出各自定向至不同位置

COMMAND > /path/to/somfile 2> /path/to/err.out

4.合并标准输出和错误输出为同一个数据流进行重定向

&> :覆盖重定向

&>> :追加覆盖重定向   

       或:

        COMMAND > /path/to/file.out 2>&1 (顺序很重要)

        COMMAND >> /path/to/file.out 2>>&1


     5.# set -C 禁止将内容覆盖已有文件但可以追加

             如果需要强制覆盖,则使用:>|

      # set +C 允许覆盖


     6.():合并多个程序的STDOUT

        (cal2007;cal2008) > all.txt

时间: 2024-08-29 23:45:05

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

Linux学习 —bash的I/O重定向和管道

        程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行操作的一系列语句和指令 也就是说程序=指令+数据,或者数据结构+算法 程序必须能够读入输入然后经过加工来产生结果:程序获取的数据可以是变量.数组.列表.文件等等,程序产生出来的结果可以是变量.数组.列表.文件等等 也就是说,程序都有读入数据和输出数据的要求 当程序不指从哪里输入,输出到哪里,就是用默认的途径进行数据的交换,一般缺省的输入我们称之为标准输入,缺省的输出我们称为

linux重定向和管道的使用

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

bash快捷键及输入输出重定向

bash特性之快捷键:     Ctrl+a: 跳转至命令首部     Ctrl+e: 跳转至命令尾部         Ctrl+l: 清屏     Ctrl+c: 中止或取消         Ctrl+u: 删除命令行首至光标所在处的所有字符     Ctrl+k: 删除光标所在处至命令尾部的所有字符     bash特性之输入输出重定向及管道     程序都有输入输出的需求     标准输入:keyboard 0     标准输出:monitor 1     错误输出:monitor 2  

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 ├

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基础入门--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

linux重定向及管道

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

3_Shell语言———输入输出重定向和管道概述

一.输入重定向和输出重定向 通常计算机的I/O(输入/输出)设备为键盘和显示器,因此当我们执行cat命令而不加任何参数时,命令会等待用户通过键盘输入数据:而当我们为cat命令增加了参数/etc/rc.d/rc.sysinit后,cat命令的输入源变成了文件/etc/rc.d/rc.sysinit.这个过程就是输入重定向.如果cat的结果不显示在屏幕中,而是输出到某个文件中,其过程就是输出重定向. 二.管道 管道事实上是一种重定向的过程.管道的一方是数据的输入端,一方是接收端.bash也支持管道,