重定向和管道——让Linux如虎添翼

2024-03-23 23:48

本文主要是介绍重定向和管道——让Linux如虎添翼,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux操作系统设计了重定向和管道,让“组合”的威力硕大无比,这是Windows无法比拟的,废话少说,下面看看几个例子。

首先利用vi编辑器写个简单的C程序吧,就叫avg.c吧,如下图所示。


程序逻辑很简单,就是输入sum和n然后输出sum/n的值。

下面编译、运行一把,如下图所示。


接下来见识一下重定向的威力,可以将标准输出重定向到一个文件中,如下图所示。图中用./avg.out >>avg.txt命令将标准输出重定向到avg.txt文件中,终端不再输出提示信息,直接输入80,10,再cat avg.txt,可以看到标准输出已经重定向到avg.txt文件中。再次输入./avg.out >>avg.txt命令,输入80,20,标准输出再次追加到文件中。


如果希望标准输出以覆盖的显示重定向到avg1.txt文件中,输入命令./avg.out >avg.txt即可,注意只有一个“>”,如下图所示。


那么可不可以重定向到标准输入流呢?答案是肯定的。首先新建一个文件input.txt,里面存放待输入程序的数据80,10,如下图所示。


接下来,通过命令./avg.out <input.txt即可将文件重定向到标准输入流,如下图所示。


还可以将错误流重定向到文件,通过命令./avg.out 1>>a.txt 2>>b.txt,将标准输出流重定向到a.txt文件。错误流重定向到b.txt,如下图所示。


接下来该见识一下管道的威力了,据此,在写一个简单的C程序input.c,如图下图所示。


这回,通过管道,把input.out和avg.out连接起来,一个程序完成输入数据并求和及其统计输入个数,一个求平均值,据此,通过管道,完成了诸如输入公司每个员工的工资,求公司员工的平均工资,输入学生各科成绩,求学生的平均成绩之类的功能。输入./input.out | ./avg.out命令即可完成功能,如下图所示。


那么,将管道和重定向集合起来会怎么样呢?威力会更大!如下图所示。


正如你所料的,这回你可以把数据保存在文件了,然后通过一条命令./input.out <input.txt | ./avg.out >>output.txt即可将两个可执行文件连接起来,最后将运行结果重定向到output.txt文件中。

至此,Linux的重定向和管道的用法就差不多了,我们可以看到,通过重定向和管道机制,可以将几个功能简单的小程序组合起来,完成更加强大的功能,Linux就是靠这种机制,使自己如虎添翼,无懈可击!

这篇关于重定向和管道——让Linux如虎添翼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839891

相关文章

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-