首页 > 系统相关 >Linux下的I-O重定向与管道

Linux下的I-O重定向与管道

时间:2023-11-28 23:26:08浏览次数:42  
标签:输出 重定向 字符 标准 管道 文件 Linux 输入

Linux下的I/O重定向与管道

一、I/O设备

Linux中,对系统进行操作时,就需要I/O设备与系统产生交互,同时会产生三种数据,标准输入(0)、标准输出(1)、标准错误(2)。其中标准输入(stdin)默认接受来自键盘的输入,标准输出(stdout)和标准错误(stderr)默认向终端窗口输出,改变默认输出和出入的位置,就是I/O重定向。

二、输出重定向到文件

  • >:把标准输出重定向到文件中
  • 2>:把标准错误重定向到文件中
  • &>:把所有输出重定向到文件中,或:COMMAND > /path/to/file.out 2> &1(注意命令顺序)

“>”会使原来的文件中所有的内容被覆盖,使用“set -C”可以禁止覆盖已有的文件,如果想强制覆盖,可以使用“>|”选项。使用“set +C”可以解锁禁止覆盖。

  • >>:在原有的内容上追加重定向的标准输出内容
  • 2>:重定向标准错误输出流覆盖原文件
  • 2>>:重定向标准错误输出流追加至原文件
  • &>>:标准输出和错误输出追加到文件中,或:COMMAND >> /path/to/file.out 2>> &1 (注意命令顺序)

把同一个命令的标准输出和错误输出分别定向到不同的文件:

COMMAND > /path/to/file.out 2> /path/to/error.out

当需要合并多个程序的输出时,使用括号“()”

三、tr命令的使用

tr用于从标准输入中转换和删除字符,格式为:tr [OPTION]… SET1 [SET2],其中SET1用于查询匹配字符,SET2用于替换和删除字符

常用的选项有:

  • -c –complerment:取字符集的补集
  • -d –delete:删除所有属于SET1字符集的字符
  • -s –squeeze-repeats:把连续重复的的字符以单独一个字符表示
  • -t –turncate-set1:将第一个字符集对应的字符转化为第二个字符集对应的字符

四、重定向到输入

重定向输入

  • tr 'a-z' 'A-Z' < /etc/issue  把/etc/issue中的小写字符转换为大写字符
  • tr -d abc < /etc/fstab 删除/etc/fstab中的abc
  • cat > file.txt 把键盘输入的内容写到文件中,按“ctrl+d”结束输入
  • cat > filea < fileb 把fileb中的内容覆盖到filea中

五、管道

管道可以把一个进程的标准输出流与另一个进程的标准输入流连接起来。bash中用“|”在两个命令之间创建管道。

例如:

  • less:逐页查看输入
    • ls -l /etc |less
  • mail:通过电子邮件发送输入
    • echo "test email"
    • 把test email中的内容以邮件的形式发送给用户stu28
      • mail -s "text" stu28
  • lpr:把输入发送给打印机
    • $ echo "test print" | lpr -P printer_name

六、tee命令

  1. 功能说明:

    读取标准输入的数据,并将其内容输出成文件。

  2. 语法:

    tee [OPTION]… [FILE]…

  3. 补充说明:

    tee命令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成为文件。

  4. 常用参数:

    • -a –append:附加到已有文件的后面,而不是覆盖原文件。
    • -i –ignore-interrupts:忽略中断信号
    • –help:在线帮助
    • –version:显示版本信息。
  5. 把命令1的STUDOUT保存在文件中,然后管道输入给命令2

    命令1 | tee 文件名 | 命令2

  6. 使用:

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

标签:输出,重定向,字符,标准,管道,文件,Linux,输入
From: https://www.cnblogs.com/cyndbk/p/17863386.html

相关文章

  • 学习linux“存储管理”收获与心得
    学习Linux的存储管理是一个非常重要的课题,它涉及到如何有效地管理和利用计算机系统中的存储资源。在学习过程中,我收获了以下几点心得体会:   首先,了解文件系统的概念和原理是非常重要的。文件系统是操作系统用来组织和管理存储设备上的文件和目录的一种机制。在Linux中,常用......
  • Linux的安装
    1.Linux简介Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操......
  • 初始Linux
    1.1云计算简介从广义上说,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以......
  • I/O重定向与管道
    1.I/O”I/O”代表输入/输出程序输出的两种类型:程序要实现的功能的结果、程序的执行状态(错误)程序的运行结果会被输送到标准输出文件(stdout),程序的执行状态会被输送到标准错误文件(stderr),程序从标准输入(stdin)设备得到输入。重定向的作用在于更改程序的输出、输入。 2.标准输出......
  • linux进程管理
    什么是进程?进程是正在系统中运行的程序的实例。每个进程都有唯一的进程标识符(PID),用于在系统中标识和跟踪该进程。进程优先级nice和renice命令nice命令用于启动进程并设置其优先级。值越小,优先级越高。nice-n10commandrenice命令用于修改正在运行进程的优先级。renice10......
  • 深入理解 Linux 中的 I/O 重定向与管道
    在Linux系统中,I/O重定向与管道是非常有用的功能,可以帮助我们更好地管理命令行下的输入和输出。本文将介绍I/O重定向和管道的基本概念以及在实际应用中的用法。1.I/O重定向I/O重定向是一种将命令的输入或输出重定向到指定位置的技术。在命令行中,我们可以使用以下符号来实......
  • linux存储管理
    文件系统与磁盘管理1.文件系统Linux支持多种文件系统,如ext4、XFS、Btrfs等。文件系统是数据在磁盘上的组织方式,它负责管理文件的存储、检索和修改。2.磁盘分区fdisk和parted是常用的工具,用于创建、删除和管理硬盘分区。例如,使用fdisk/dev/sdX可以对指定硬盘进行分区操......
  • I/O重定向与管道
    1.标准输入重定向(<)通过<符号,我们可以将文件内容作为命令的输入,而不是从键盘输入。command<input_file2.标准输出重定向(>)使用>符号,我们可以将命令的输出保存到文件中,而不是显示在终端上。command>output_file3.标准错误输出重定向(2>)有时错误信息可能比较多,我们可以将......
  • linux常用命令
    1、Isls命令是列出目录内容的意思(ListDirecttoryContents)。运行它就是列出文件夹的内容,可能是文件也可能是文件夹。ls-l命令以详情模式(longlistingfashion)列出文件夹的内容。ls-a命令会列出文件夹里的所有内容,包括以"."开头的隐藏文件。注意:在Linux中,文件以“.”开头......
  • Linux文件管理的相关命令
    文件目录与路径mkdir创建一个文件夹.mkdir-p一次性创建多个文件夹,在自己的当前所在目录,用指令qwd查看.qwd自己的当前所在目录.qwd-p查看自己的绝对路径.目录与文件操作ls-a查看隐藏目录和文件.在自己的所在的目录下.ll(ls-a)查看目录和文件属性.cd切换目录.rmdir......