linux学习之重定向

这篇博客介绍了Linux操作系统中的重定向概念,包括>、>>、1>、1>>、2>、2>>和2>&1等用法。作者强调了文件描述符1、2的含义,标准输入、输出和错误的差异,并通过示例解释了如何通过重定向将标准输出和错误输出分别处理。此外,还探讨了重定向在日常操作中的应用,如改变默认定向,将输出重定向到特定位置或清空文件。

杂谈

*不同windows,初学Linux操作系统半个月,真是见了不少不层在win上没见过的,稀奇古怪的概念。
这些概念初次了解有些让人摸不着头脑,但当深入理解后,又觉得十分有意思。
这个由世界上最聪明的计算机人们共同打造出来的系统确实充满魅力,让人想去了解。

当然这个了解的过程绝对没有想象中那般顺利

如果没有网络上的那些可以免费阅读的文档,那些正在学习遇到问题的人们理解与解决起来会有多困难。

我也是免费文章的万千受益者之一,对每一篇文档的作者都心存感谢。但有一点不得不提的,并不是是随便抓一篇文章去看都适用于自己。也许一个概念,需要翻阅好几篇文档,最后才能整个明白。不要紧张,并不是你的理解能力有很大问题,而是这个作者的思维模式不太适用于你。

就好像当初在学习python的面向对象init构造函数时,也是好几个小时看了很多篇文章快吐了也没整明白。好在运气不错,最后被人家一句话点醒:构造函数就是好像是创造一个人,这个人他被创造出来,至少要有手有脚,痛了他也会哭。

接受了太多的馈赠,我也开始想试着去写点东西那些需要帮助的人们。也许我的东西没有穿插那么多专业的术语,看上去逼格不高,但我的初衷也不在于此,我只是想提供一种思维方式给大家,多少帮助到一部分需要帮助的人。

正文 Linux概念之重定向 > 、 >> 、 1> 、 1>> 、2> 、2>> 、2>&1

关于>与>>我已经用过很多次了
最初的理解是 > :将文本覆盖写入到文件中 >> : 将文本追加写入到文件中 如果指定的文件不存在,那么会自动创建。

笔记本没在身边,实验楼凑合用下。调用 ls -l 返回当前d下所有的文件

在这里插入图片描述

关于> :打印hello覆盖写入到one_test文件中,即使预先没有创建该文件 在这里插入图片描述
关于>> :打印say something追加写入到one_test文件中

在这里插入图片描述

非常好理解,初学的时候老师也是这么讲的。但也仅限于此,没再多说,但直到看到了 1> 、 1>> 、2> 、2>>

*问题1:尖括号前面的数字是什么
在linux下,一切皆为文件。不管软件,还是硬件,在linux操作系统下,都以一个文件的方式存在。
而所有被进程访问的文件,内核都会分配一个文件描述符标识。
每个进程下都有一个文件描述符表,记录该进程正在访问的文件文件描述符。
换言之描述符就是是文件的映射。而这个1,2就是文件描述符,顺带提一下0
在这里插入图片描述
0 stdin standard_input 标准输入 : shell用过该文件,来获取键盘上的输入,按一个A获取一个A
1 stdout standard_output 标准输出 : 计算机处理过后的信息,shell定向到1,反馈在终端
2 stderr standard_error 标准错误 : 与1大致相同,不同的地方在于1反馈的是处理信息,而2反馈的是错误信息
这三个文件标识符在shell启动的那一刻开始,就已经被分配,再往后打开的文件,其标识符一定大于2

问题2:这有什么用
当我们在运行一段代码时,假如这段代码出现了一部分的出现了一点问题,我们希望能够把正确的部分输出在指定的位置,比如终端,或者某个指定的文件内。而错误的部分被分离出来,比如终端或者某个文件。

示例:创建一个测试的python文件,前半部分可以正常运行反馈,后半部分类型无法转换报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将标准输出正常输出在终端,而标准错误输出到指定文件error内,不在终端显示在这里插入图片描述
将标准输出写入data文件,标准错误追加写入到error文件内

在这里插入图片描述
如果不指定描述符会发生什么情况:标准输出定向到指定文件,标准错误依旧显示
在这里插入图片描述
如果将所有输出写入同一个文件内(两种方法)

  1. 指定相同文件夹,标准输出可以视情况而定,是覆盖写还是追加写,而标准错误一定是覆盖写
    在这里插入图片描述
  2. 推荐:2>&1,与上面结果相同
  3. 在这里插入图片描述

问题3:这对我们日常的操作有什么帮助
**改变默认的定向,可以将shell反馈重新定向到我们指定的位置。**比如正确输出写入某个文件,报错写入另一个文件。如果希望shell运行后的结果不显示,可以定向到/etc/null下,这个文件不会保存任何数据,永远处于一个空的状态。同时还可以利用它来清空一个文件。

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采集-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值