实验楼Linux学习笔记(十一)之数据流重定向

初窥Linux 之 数据流重定向 一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息。这些信息默认是打印在屏幕上的。 那么什么时数据流重定向呢?从字面上理解就是改变数据流的流向,使之流 阅读详情


实验楼Linux学习笔记(十一)之数据流重定向



1.简单的重定向

文件描述符

设备文件

说明

0

/dev/stdin

标准输入

1

/dev/stdout

标准输出

2

/dev/stderr

标准错误

 

文件描述符

      在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。

 

Cat命令

       默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出

#将cat的连续输出(heredoc方式)重定向到一个文件
$ mkdir Documents
$ cat > Documents/test.c <<EOF
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
EOF

#将一个文件作为命令的输入,标准输出作为命令的输出
$ cat Documents/test.c
将echo命令通过管道传过来的数据作为cat命令的输入,将标准输出作为命令的输出
$ echo 'hi' | cat
将echo命令的输出从默认的标准输出重定向到一个普通文件
$ echo 'hello shiyanlou' > redirect
$ cat redirect



       管道默认是连接前一个命令的输出到下一个命令的输入,而重定向通常是需要一个文件来建立两个命令的连接

 

2.标准错误重定向

# 使用cat 命令同时读取两个文件,其中一个存在,另一个不存在 
$ cat Documents/test.c hello.c
# 除了正确输出了前一个文件的内容,还在末尾出现了一条错误信息
# 下面我们将输出重定向到一个文件,根据我们前面的经验,这里将在看不到任何输出了 ,但是结果仍然是输出错误信息
$ cat Documents/test.c hello.c > somefile
#这段程序没有错误信息输出
#应该在输出重定向文件描述符前加上&,否则shell会当做重定向到一个文件名为1的文件中
# 将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面 
$ cat Documents/test.c hello.c >somefile 2>&1
# 或者只用bash提供的特殊的重定向符号"&"将标准错误和标准输出同时重定向到文件 $ cat Documents/test.c hello.c &>somefilehell
$cat somefile

3.tee命令同时重定向到多个文件

$ echo 'hello shiyanlou' | tee hello

4.exec命令实现“永久”重定向

# 先开启一个子 Shell 
$ zsh
# 使用exec替换当前进程的重定向,将标准输出重定向到一个文件
$ exec 1>somefile
# 后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子shell,或取消exec的重定向
$ ls
$ exit
$ cat somefile
5.创建输出文件描述符
默认在 Shell 中可以有9个打开的文件描述符
$ zsh
$ exec 3>somefile
# 先进入目录,再查看,否则可能不能得到正确的结果,然后再回到上一次的目录
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令>与&之间不应该有空格,如果有空格则会出错
$ echo "this is test" >&3
$ cat somefile
$ exit

6.闭文件描述符

$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -

7.完全屏蔽命令的输出

       在类 UNIX 系统中,/dev/null,或称空设备,是一个特殊的设备文件,它通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成。读取它则会立即得到一个EOF。

#利用/dev/null屏蔽命令的输出,得不到任何输出结果
$ cat Documents/test.c nefile 1>/dev/null 2>&1

8.使用 xargs分割参数列表

       xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

#将/etc/passwd文件按:分割取第一个字段排序后,使用echo命令生成一个列表。
$ cut -d: -f1 < /etc/passwd | sort | xargs echo

10.在命令行将图片转换为 ascii字符查看的工具 aview/asciiview(黑白)

11.在命令行将图片转换为 ascii字符查看的工具 cacaview(彩色)

 

linux数据流重定向,管道以及搭配grep等命令 数据流重定向 基础概念: 华丽分割 stdin(输入) stdout(正确输出) stderr(错误输出) 对应数据值 0 1 2 可以将原本打到屏幕上的数据输出到指定的地方,比如可以将根目录下的文件放到当前目录下 ll -a / > ./rootfile > 和 >>区别在于前者 阅读详情

相关推荐

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2134

【Linux 基础入门】(十一)数据流重定向

文章目录1 介绍2 数据流重定向2.1 简单的重定向2.2 标准错误重定向2.3 使用 tee 命令同时重定向到多个文件2.4 永久重定向2.5 创建输出文件描述符2.6 关闭文件描述符2.7 完全屏蔽命令的输出 1 介绍 内容 你可能对重定向这个概念感到些许陌生,但你应该多次见过 > 或 >> 操作,他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导

桑凯旋的博客 637

从零开始了解数据采集(五)——工业通信协议:数据采集的“语言”桥梁

数据采集常用的通信协议有哪一些?看完这篇你就了解了~

李恒的博客 4057

linux命令cat EOF详解

参考了以下两篇博文 https://blog.youkuaiyun.com/hanruikai/article/details/8027875 http://blog.youkuaiyun.com/apache0554/article/details/45508631 一,关于cat << EOF语句的意思 在linux shell脚本中cat << EOF的语句,起到什么作用? ...

沙门空海 8万+

✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

构建一个带 GPU 支持的深度学习开发镜像;使用 PyTorch 2.5.1(CUDA 12.4)环境;发布并托管 Docker 镜像至 Docker Hub;验证 GPU 环境正常运行!🎉 这将极大提升你的项目部署效率,尤其是在多人协作或跨平台部署场景中。

用大模型重构生活:猫奴程序员的AI智能日常记录 1576

汽车级智能栅极驱动器深度解析 | 连载03:功能框图与工作模式详解

在前两期连载中,我们分析了DRV871x-Q1的产品架构、引脚配置和电气特性。本期我们将深入探讨DRV871x-Q1的功能框图和工作模式,这是理解芯片内部工作机制的关键。通过分析功能框图,我们能够清晰地了解各功能模块之间的关系和信号流向;通过工作模式分析,我们能够掌握芯片在不同应用场景下的配置方法。这些知识对于系统设计和故障排查都至关重要。

VehSwHwDeveloper的博客 1098

linux cat命令的<<EOF

初初开始学习linux的命令,只对linux一些简单命令有一些了解! 首先我看到网上有一些创建一个文件采用的命令是(mkdir创建文件夹):cat >test1.txt <<EOF 其实一直不知道他加个EOF是什么意思?后来网上找资料看了一下其实<<EOF就是告诉shell脚本现在开始执行命令,当遇到EOF的时候结束命令。 当输入这个命令之后就可以输...

weixin_30446613的博客 527

鸿蒙OpenHarmony技术:【Docker编译环境】

OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。基于HPM的Docker环境:适用于使用HPM工具进行发行版编译的场景。点击或者复制转到。表1Docker镜像介绍系统类型运行平台Docker镜像仓库标签标准系统(独立Docker环境)3.2小型系统(独立Docker环境)3.2轻量系统(独立Docker环境)3.2。

m0_62167422的博客 1444

cat >test<<EOF,more

cat  >test (cat  >>test同上,cat后好像也可以没空格) 创建test文件,并且可以直接在控制台输入文件内容, 直到输入EOF,结束输入 很方便的东西。 more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(

风无言 1010

Visionpro 使用CogPMAlignTool工具提取匹配轮廓点

【代码】Visionpro 使用CogPMAlignTool工具提取匹配轮廓点。

weixin_43947315的博客 2091

关于Fluent模拟中的动态接触角UDF实现,详细设计

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1145

cat >>test0<<EOF

今天看 diff和patch使用指南 这篇文章的时候,发现没怎么明白 cat >>test0 正常的我们在虚拟终端中只输入cat,不加任何选项参数的时候,是输入一行,则打印一行到标准输出: 而cat >>test0 相当于将cat的输出从标准输出重定向到test0文件。至于后面的test0

行走的天马 1605

Weka学习笔记01:初探Weka世界

下载、安装和启动Weka、Weka数据格式

howard2005的专栏 1469

【Linux】数据流重定向

什么是数据流重定向?这得要由命令的执行结果谈起。一般来说,如果你要执行一个命令,通常它会是这样的:我们执行一个命令的时候,这个命令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上。在上图当中,standard output 与standard error output分别代表【标准输出(STDOUT)】与【标准错误输出(STDERR)】,这两个玩意儿默认都是输出到屏幕上面来的那么什么是标准输出与标准错误输出?

2301_80224556的博客 1372

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

linux学习笔记(实验楼) 实验12 数据流重定向

  一、实验介绍 1.1 实验内容 你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过&gt;或&gt;&gt;操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。 1.2 实验知识点 ...

qq_39117008的博客 1044

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

8.linux 重定向详解,标准输入输出,输入重定向,输出重定向

文章目录前言一.初识二、输入重定向总结 前言 上一节的笔记,讲解了文本内容如何查看。接下来会重点简介文本内容处理处理。 一.初识 1.标准输入输出设备 Linux 中标准的输入设备默认指的是键盘,标准的输出设备默认指的是显示器。 2. 文件描述符 数据流又可分为 标准输入流 、标准输出流和标准标准错误流。 这三种流向对应着相关的文件描述符, 默认描述符范围是:0-2。 [root@zaishu ~]# ls -l //这个就是标准输出,如果需要重定向 则指定其描述符为1 total 4620

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux数据流重定向

文章记录了Linux下数据流重定向的一些基本用法。

m0_52339560的博客 956

linux 输出重定向_linux学习笔记(实验楼) 实验12 数据流重定向

一、实验介绍1.1 实验内容你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。1.2 实验知识点重定向怎么用文件描述符(...

weixin_39645041的博客 494

Linux 数据流重定向完全指南:掌控输入输出的艺术

本文全面介绍了Linux数据流重定向技术,涵盖标准输入(stdin)、标准输出(stdout)和标准错误(stderr)三大数据流的基本概念与操作。通过详细解析各种重定向操作符(如>、>>、2>、2>&1等),演示了如何灵活控制命令的输入输出流向,包括:保存命令结果到文件、分离正常输出与错误日志、从文件读取输入、使用here文档生成多行内容,以及利用/dev/null丢弃无用输出等实用技巧。文章结合典型应用场景(如日志记录、脚本调试、批量处理等),为读者提供了Linux

bkspiderx的博客 1547

数据流和重定向

(2) tee 文件 :读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到文件中,又想在屏幕上看到内容)(1)echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:“echo [字符串] [$变量]”。(1)管道符|:用于两个命令或者多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入。\T :#显示时间为12小时格式 \A :#显示时间为24小时格式:HH:MM。\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

小度的博客 794

Linux中的数据流重定向

本文目录 数据流重定向 本文目录(仅做浏览用,简书中的MarkDown暂时不支持页面内跳转) 数据流重定向 在之前的操作中,常会看到&gt;或&gt;&gt;操作,它们分别是将标准输出导入到一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件,自然也是没有任何...

CurryCoder的个人博客 775

从零开始掌握Linux数据流:管道与重定向完全指南

本文重点介绍了 Linux 重定向和管道技术,从基本知识到技术原理进行了讲解和说明,希望帮助读者对重定向和管道技术有个更加全面的认知。

慢跑的蜗牛! 1024

linux系统中有哪几种重定向,Linux系统如何重定向数据流?

所谓的数据流就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序,Linux系统重定向数据流就是把数据读取后输出的结果导入到其他文件中。那么Linux系统如何重定向数据流呢?数据流重定向下面简单的回顾一下前面经常用到的两个重定向操作:$ echo ‘hello shiyanlou’ 》 redirect$ echo ‘www.shiyanlou.com’ 》》 redirect$ c...

weixin_39811166的博客 690
上一篇: 实验楼Linux学习笔记(十)之文本处理命令
下一篇: Maven3.0环境变量设置与安装时的报错处理方法
橘子局
博客等级 码龄14年 70粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值