初学Linux之标准I/O和管道

标准输入和输出

程序是由指令+数据组成
程序的数据流有三种:

输入数据流:<–标准输入(stdin),一般默认是键盘
输出数据流:–>标准输出(stdout),一般默认到终端窗口
错误输出流:–>标准错误(stderr),一般默认到终端窗口

标准输入:0
标准输出:1
错误输出:2

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

输出重定向将标准输出(stdout)和标准错误(stderr)重定向到指定位置

格式: 命令 操作符号 文件名

支持的操作符号:
> :把标准输出(stdout)重定向到文件,会覆盖原文件内容
>> :把标准输出(stdout)重定向到文件,会在原有内容基础上,追加内容

说明:上面是讲ll显示的结果输出重定向到文件file中,使用>时,file文件被覆盖了,使用>>时,原文件file和重定向的内容都显示了,是追加内容

2> :把标准错误(stderr)重定向到文件,会覆盖原内容
2>>:把标准错误(stderr)重定向到文件,会在原内容基础上,追加内容

说明:将命令执行的错误结果显示在file文件中,使用2>时,覆盖了原文件file输出的,使用2>>时,原文 件内容和标准错误都显示了,是追加内容

&>:把所有的输出重定向到文件,不管对错都输出到指定位置,覆盖输出
&>>:把所有的输出重定向到文件,不管对错都输出到指定位置,追加输出

说明:使用&>或者&>>时,执行ll时,是标准输出,lls是标准错误,但是不管是哪个的输出都重定向到file 文件中,2>&1和&>,&>>效果一样,2>&1是老版本使用,要在最后使用,才有效果。

command >/path/toshmefile 2>&1
command>>/path/to/somefile 2>&1
理解:A和B,将A输出到B上,如果对了,就正常输出到B上,如果错误了,内容还是输出在B上

set -C:禁止将内容覆盖已有的文件,但是可以追加强制覆盖 :
set +C:允许覆盖

合并多个程序的标准输出
(command ;command)>file

说明:将ll和echo shell的标准输出一起重定向到file文件中,此法只能用于标准输出,
标准错误不能使用

tr:转换和删除字符

tr [option] .. SET1 [SET2]==>[]非必选

选项:
-c:取字符的补集==>取代所有不属于第一字符集的字符
-d:删除所有属于第一个字符集的字符
-s:把连续重复的字符以单独一个字符表示
-t:将第一个字符集对应字符转换为第二字符集对应的字

管道使用符号|来连接命令
command1 |command2 |command3…
1.将命令1的标准输出发送给命令2,作为命令2的标准输入,命令2的标准输出发给command3,作为command3 的标准输入….
2.标准错误默认不能通过管道转发,但是可以利用2>&1或者|&实现
3.最后一个命令会在当前shell 进程的子shell 进程中执行
4.可以组合多种工具

tee命令:

command1 |tee filename | command2
把command1的标准输出保存在文件中,然后管道输入给command2

特点:

1.保存不同阶段的输出
2. 复杂管道的故障排除
3.同时查看和记录输出

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94770

(0)
范儿范儿
上一篇 2018-04-03 09:23
下一篇 2018-04-03 11:48

相关推荐

  • Tomcat介绍及相关实验(一)

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

    2018-07-24
  • N31第一周作业

    本周(6.18–6.24)第1周 1、描述计算机的组成及其功能。 计算机组成:硬件系统和软件系统 硬件系统:CPU:运算器和寄存器(运算器负责算术、逻辑等运算、控制器是系统的控制中心) 存储器:主要为内存,功能是存储程序和各种数据信息。 Input:下指令、提供数据到计算机,常用的输入设备有鼠标、键盘、扫描仪等 Output:输出加工的结果,常用…

    Linux笔记 2018-06-25
  • 如何制作LINUX服务脚本

    如何制作一个Linux启动服务          Linux在启动的时候都会跑很多系统自带的服务脚本,来控制系统服务的开启和关闭。这些服务是系统自带的,我们可以查看这些服务及其对应的脚本(ls /etc/init.d/)。这些服务有独立服务,也有依赖服务,依赖服务有被依赖服务和依赖别的服务。今天我们就来看看怎么来制作一个系统独立服务,方便我们以后需要自己手动…

    2018-05-10
  • aide

    aide 实现查看文件是否篡改 查看是否被攻击 aide 的主配置文件 /etc/aide.conf aide的日志 /var/log/aide aide的数据库 /var/lib/aide (用于存放比对信息数据) 在 /etc/aide.conf 里 定义你自己的要检查的什么属性 在 后面调用就行 比如 /date/ rules !/date/f1 监控…

    Linux笔记 2018-05-27
  • CentOS 6 开机流程

    CentOS 6 开机流程——linux由kernel和rootfs组成。kernel负责进程管理、内存管理、网络管理、驱动程序、文件系统、安全等;rootfs由程序和glibc组成,完善操作系统的功能。同时linux内核的特点是模块化,通过对模块装载卸载可以对内核功能自定义。linux内核镜像文件:/boot/vmlinuz-2.6.32-696.el6.…

    Linux笔记 2018-05-13
  • 特殊权限SGID和sticky配合使用实现文件夹和文件权限的结构化管理

    举例说明特殊权限SGID和sticky配合使用能实现文件夹和文件权限的结构化管理

    2018-04-08