查看和编辑由无法读取的文本和符号组成的系统文件

查看和编辑由无法读取的文本和符号组成的系统文件

我的印象是,Unix 系统中的基本上所有文件都是可编辑的,至少是可查看的。

当我遇到如下文件时我该采取什么步骤nano

在 Nano 中查看的二进制greeter-dconf-defaults 文件的屏幕截图

如果它是一个正在运行的文件,我如何确定它到底是什么类型的文件,以及我需要找出它的代码以及文件导入/导出/依赖的内容?

答案1

从技术上讲,文件系统或内存中的所有文件都是可编辑的,只需使用正确的方法即可。您遇到了一个二进制数据文件,特别是与dconf数据库根据文件名行中的名称以及文件本身的nano关键字判断设置。因此,您应该使用GUI 工具或命令行工具。GVariantdconf-editordconf

如果它是一个正在运行的文件,我如何确定它实际上是什么类型的文件,以及我需要找出它的代码以及文件导入/导出/依赖的内容。

通常您可以使用file命令来找出特定的文件类型。

$ file /etc/passwd
/etc/passwd: ASCII text

无论文件是否可执行,您都可以使用ls -l filenamestat来确定是否为所有者、组和其他用户设置了可执行位。请参阅相关帖子很好地解释了文件权限。还有 访问控制列表,用于创建比基本 Unix 权限允许的更多奇特的权限。

至于使用什么软件,这取决于每个文件,并且同一文件类型有多种类型的软件。二进制文件通常可以通过 hexdump 或 od 命令以十六进制格式查看,并可以使用十六进制编辑器进行编辑,这些编辑器通常用于逆向工程和安全应用。


我的印象是,Unix 系统中的基本上所有文件都是可编辑的,至少是可查看的。

好吧,关于“Unix/Linux 中的一切都是文件”这句话,我们必须澄清一些事实。有些文件可以存在于文件系统中,这就是大多数人所知道的文件。实际上,文件(即在某个地方组织在一起的特定数据块)可以存在于内存或文件系统中,也就是说,可以存在匿名文件。 套接字 未命名管道是文件,它们只是没有名称,只有内核跟踪的句柄。它们都可以编辑吗?可以,同样,使用正确的方法。管道有一个进程写入,而另一个进程读取,因此写入者可以编辑管道。内存中映射的文件如果您的程序可以访问该特定内存块,则可以对其进行编辑。因此,一切都是文件,您只需要了解该文件在哪个上下文中应用。

相关内容