如何编辑 /usr/bin 中的文件?

如何编辑 /usr/bin 中的文件?

如果我错了请纠正我,但 Ubuntu 中存储命令的目录之一是/usr/bin。我尝试使用 查看其中一个 ELF 64 位 LSB 可执行文件 (synergy),nano但我看到的只是随机符号/字母的混合。我可以查看这些文件吗?如果可以,我该怎么做?

答案1

大多数文件(如果不是全部)/usr/bin来自二进制可执行文件。现在,二进制文件是一种非文本文件的计算机文件;它可能包含任何类型的数据,以二进制形式编码,用于计算机存储和处理目的(更多信息:二进制文件)。

因此,如果二进制文件不是文本文件,则您不能使用nano(或其他文本编辑器)来编辑它(当然,您可以,但肯定您不知道自己在做什么)。

在 Ubuntu(以及一般的 Linux 类操作系统)中,有一些应用程序称为十六进制编辑器, 喜欢温室气体它可以用于以十六进制或 ascii 两种方式查看和编辑文件:

在此处输入图片描述

此外,您可以vim在十六进制编辑器中通过键入内容进行转换:%!xxd:%!xxd -r返回到正常模式)。

答案2

/usr/bin非 shell 脚本下的文件通常是“真正的”可执行文件,即它们包含由 CPU 直接执行的机器代码(与加载器和动态链接器用于完成其工作的某些标头/结构混合在一起)

用十六进制编辑器打开它们,但通常你无法用它做很多事情;如果你了解 ELF 格式,那么检查可执行文件属性的经典工具是objdumpobjdump -x filename将打印大量有关 ELF 标头的信息,而选项-d将生成给定可执行文件的所有可执行段的反汇编。但同样,要么你真的是专家并且你正在做非常具体的事情,要么这真的没用。可执行文件旨在由计算机运行,而不是由人阅读。

更有趣的是,如果你是一名程序员,你想要获取已安装程序的源代码(即实际由人编写的代码,然后编译为二进制可执行文件),然后对其进行检查、应用补丁、修改它,...如果你的 sources.list 配置正确并且源包可用(通常从“main”到“universe”的 repos 中提供的所有包都是这种情况),则可以使用以下命令获取源代码apt-get source name_of_the_package

相关内容