当前位置: 首页 > news >正文

readelf -d a.out | vim - 和 readelf -d a.out | vim 有什么区别?

readelf -d a.out | vim -readelf -d a.out | vim 有什么区别?

在 Linux 中,readelf -d a.out | vim -readelf -d a.out | vim 这两个命令虽然都尝试将 readelf 的输出传递给 vim,但它们之间存在一个关键差异:

命令解析

  1. readelf -d a.out | vim -
    • 管道符 |readelf 的标准输出(stdout)连接到 vim 的标准输入(stdin)。
    • vim 的参数 - 是一个特殊符号,表示 “从标准输入读取内容”。因此,vim 会打开一个新缓冲区,并将 readelf 的输出作为文件内容显示。
  2. readelf -d a.out | vim
    • 虽然管道同样将 readelf 的输出发送到 vim 的标准输入,但 vim 默认不会读取标准输入(除非明确指定 - 参数)。
    • 在这种情况下,vim 会忽略标准输入,直接启动一个空的编辑器窗口(相当于直接运行 vim)。readelf 的输出会被丢弃,或者在某些环境下导致 vim 启动异常。

实际效果对比

命令vim 是否读取输入行为
`readelf -d a.outvim -`
`readelf -d a.outvim`

为什么需要 - 参数?

vim 的设计决定了它默认从文件系统读取文件,而非标准输入。通过显式传递 - 参数,你告诉 vim:“使用标准输入作为文件内容”。这类似于以下命令:

readelf -d a.out > temp.txt && vim temp.txt  # 效果类似 readelf -d a.out | vim -

示例场景

假设 readelf -d a.out 输出共享库依赖信息:

Dynamic section at offset 0xe18 contains 26 entries:Tag        Type                         Name/Value0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]0x000000000000000c (INIT)               0x400400...
  • 使用 | vim - 会在 vim 中显示上述内容,可进行编辑或保存。
  • 使用 | vim 则会打开空的 vim,看不到任何输出,或者vim报错。

总结

如果你想在 vim 中查看或编辑 readelf 的输出,必须使用 | vim -。省略 - 参数会导致标准输入被忽略,这是 vim 的默认行为。

http://www.dtcms.com/a/293869.html

相关文章:

  • PyTorch武侠演义 第一卷:初入江湖 第5章:玉如意的秘密
  • gig-gitignore工具实战开发(一):项目愿景与蓝图规划
  • C Primer Plus 第6版 编程练习——第10章(上)
  • 漫画机器学习播客对话图文版
  • TGD第二篇:破局——去除导数计算中的无穷小极限
  • CodeBuddy IDE实战:用AI全栈能力快速搭建课程表网页
  • 【机器学习深度学习】比较 LLaMA-Factory、vLLM 和 LMDeploy 的量化导出:为何 LLaMA-Factory 不是首选?
  • 2025暑期—06神经网络-常见网络3
  • UWA DAY 2025 游戏开发者大会|全议程
  • Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
  • Python进阶知识之pandas库(一)基础数据类型
  • 论文略读:REMEDY: RECIPE MERGING DYNAMICS IN LARGE VISION-LANGUAGE MODELS
  • 深入解析预训练语言模型在文本生成中的革命性应用:技术全景与未来挑战
  • 【Elasticsearch】跨集群检索(Cross-Cluster Search)
  • 18.设备虚拟化
  • Java 堆(优先级队列)
  • Linux基本指令:掌握系统操作的钥匙
  • Unity3D性能优化全攻略
  • 原创-基于 PHP 和 MySQL 的证书管理系统 第三版
  • OpenLayers 快速入门(四)View 对象
  • springboot苍穹外卖实战:十二、添加购物车+查看购物车+清空购物车
  • React学习——美团小案例——Day3
  • 一种集合式方法:实现高效且有效的大语言模型零样本排序
  • PHP:经典与现代交织的编程语言,持续赋能Web开发
  • 浙大Fast Lab:融合3D激光雷达与强化学习的「端到端导航」,让无人机“飞”在点云上!
  • javaSE(List集合ArrayList实现类与LinkedList实现类)day15
  • OSPF(多区域)
  • Android14 锁屏密码修改为至少6位
  • 开源深度学习新宠:Burn框架助您无忧高效建模
  • USB4.0:开启高速数据传输的新时代