首页 > 其他分享 >管道

管道

时间:2023-11-28 14:28:13浏览次数:25  
标签:输出 读取 写入 tee 管道 线程

管道

管道实际上也是一种重定向,重定向字符控制输出到文件,管道控制输出到其他程序。

管道的作用是把上一个进程的输出作为下一个进程的输入,利用管道可以把若干个命令连接在起。

 

管道有如下特征:

1)一个管道是一个字节流,从管道读取数据的进程可以读取任意大小的数据块,并且读取字节的顺序和写入的顺序是一致的
2)管道是单向的,一端写入一端读取,所以如一个线程作为读取端时要将写入端关闭,当读取管道所有数据后会看到文件结束,如果不关闭该线程写入端如果读取完数据它会一直阻塞到有数据被写入管道,因为作为读取端的线程不关闭写入,理论上也可以作为写入端向缓冲区写数据
3)管道的容量是有限的,存储能力为65536字节,管道填满后,向管道的写入操作会被阻塞直到从管道移除一些数据

 

管道符: “ | ”

 

将/etc/passwd中的用户按UID数值大小显示前三行:

 

统计当前/etc/passwd 中用户使用的Shell 类型:

取出第7列(Shell)| 排序(把相同项归类) 去重

 

tee管道

tee管道的功能类似于生活中的三通水管,一条输入满足两个需求。在执行 Linux 命令时一个进程标准输出通过管道作为下一个进程的标准输入,同时该输出通过tee 管道重定向到一个文件或终端。

注意:在使用管道时,前一个标准错误输出不会被tee读取

常用参数:

-a:追加到文件而不是覆盖文件
-i:忽略写入错误
-p:在每个输出块之前输出到标准错误
-u:不缓冲标准输出

 

把输出保存到文件中,又能在终端看到输出内容

 

标签:输出,读取,写入,tee,管道,线程
From: https://www.cnblogs.com/Lc-1/p/17861712.html

相关文章

  • Linux I/O重定向与管道
    在生产环境中,每天凌晨需要备份数据库,这时工作人员会编写一个简单的脚本创建计划任务,把脚本执行结果放到一个或几个文件中以便第二天查看,这个过程就叫重定向。在使用"psaux"命令时,为了快速找到所需要信息,经常使用grep命令进行过滤,此时就需要使用管道符。I/O重定向   I/O运......
  • I/O 重定向与管道
    1I/O重定向输出重定向:使用>将命令的输出重定向到文件。bashls-l>file_list.txt使用>>将命令的输出追加到文件末尾。bashecho"Newcontent">>file_list.txt输入重定向:使用<将文件内容作为命令的输入。bashcat<file_list.txt2管道......
  • I/O重定向与管道
    探索LinuxI/O重定向与管道在Linux操作系统中,I/O(输入/输出)重定向和管道是强大的工具,用于处理和操作命令行中的数据流。本文将深入探讨Linux下的I/O重定向和管道,了解它们的基本概念以及如何在日常工作中灵活运用。I/O重定向I/O重定向允许将命令的输入和输出从默认的位置......
  • Linux--I/O重定向与管道
    首先用一个例子来描述重定向的含义: 在生产环境中,每天凌晨需要备份娄据库,这时工作人员会编写一个简单的脚本创建计划任务,把脚本执行结果放到一个或几个文件中以便第二天查看,这个过程就叫重定向。在使用“psaux”命令时,为了快速找到所需信息,经常使用grep命令进行过滤,此时就需要......
  • Linux I/O重定向与管道的学习
    学习 Liunx 的 I/O 重定向与管道是理解 Liunx 系统的重要部分,以下是一些学习心得:1. 理解基本概念:在学习 I/O 重定向与管道之前,需要先理解 Liunx 的文件描述符、标准输入输出、文件系统等基本概念。- 文件描述符(File Descriptor):文件描述符是一个非负整数,用于标识打开......
  • Linux:进程管理和I/O重定向与管道
    1.进程管理一、进程管理1.进程简介首先我们要了解,什么是进程?进程是已启动的可执行程序的运行实例,进程有以下组成部分:•已分配内存的地址空间;•安全属性,包括所有权凭据和特权;•程序代码的一个或多个执行线程;•进程状态。程序:二进制文件,静态/usr/bin/passwd,/usr/sbin/us......
  • 进程管理;I/O重定向与管道
    一.进程定义进程的定义程序是静态的代码文件;进程是指程序运行时的形态进程是程序的一个副本(copy程序到内存,相当于副本)进程是有生命周期的(准备期、运行期、终止期)进程和线程进程:进程是资源调用的最小单位。所有事件由cpu处理,当一个事件cpu,其他事件就无法占用处于,等待用完才......
  • Linux进程间通信之管道
    一、进程间通信介绍1.1进程通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执......
  • 6.Linux I/O重定向与管道
    在Linux中,I/O重定向和管道是常用的技术,用于控制命令的输入和输出。这些技术可以帮助我们更有效地处理命令产生的数据,以及将数据从一个命令传递到另一个命令。1.**标准输入、输出和错误** ***标准输入(stdin)**:通常指的是键盘,文件描述符为0。 ***标准输出(stdout)**:通常指的......
  • Linux I/O重定向与管道
    1.IO重定向I/O重定向是一个过程,这个过程捕捉一个文件、命令、程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件、命令、程序或脚本。文件描述文件名类型硬件0stdin标准输入文件键盘1stdout标准输出文件显示器2stderr标准错误输出......