在 Windows 下我们可以使用 WinHex,而在 macOS 平台上,有什么不错的十六进制查看器、编辑器呢?

准备
首先,我们创建一个文件用于测试。

echo 'welcome' > file1
正文
HexDump
很多类 Unix 系统都包含这个工具。正如其名,功能就是导出文件的原始十六进制信息。

$ hexdump file1
0000000 6577 636c 6d6f 0a65
0000008
以上输出就是 welcome 的 ASCII 十六进制信息,如果文件很长,那将会很难与文本信息对应起来。

我们可以使用 -C 选项来同时打印文本。

$ hexdump -C file1
00000000 77 65 6c 63 6f 6d 65 0a |welcome.|
00000008
如上,w 的十六进制 ASCII 码为 77,e 为 65。

od
另一个十分常用的工具是 od。该工具提供 -x 参数用于输出十六进制的文件原始数据。

$ od -x file1
0000000 6577 636c 6d6f 0a65
0000010
同样,为了让输出更加易读,可使用 -c 参数输出文本。

$ od -xc file1
0000000 6577 636c 6d6f 0a65
w e l c o m e \n
0000010
xxd
xxd 是一个稍特殊的工具,它还提供了一个 -r 选项,可将十六进制信息转换回原始文件,可用于编辑 Hex 内容。

$ xxd file1
0000000: 7765 6c63 6f6d 650a welcome.
假设我们有 file2 文件,内容如下:

$ cat file2
000000: 7765 6c63 6f6d 650a
那么我们可以使用 -r 选项来将其转换为原文件内容:

$ xxd -r file2
welcome
hexyl
sharkdp/hexyl 是一款使用 Rust 编写的 Hex 查看器,支持高亮不同种类的字节。

它并不常见,是我最近在 GitHub 上发现的一个小工具,前些天上到 Trending 狂揽 1k+ Stars。

$ hexyl file1
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 77 65 6c 63 6f 6d 65 0a ┊ │welcome_┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
它还支持使用 -n <N> 选项来限制仅读取文件的前 <N> 个字节。

$ hexyl -n 2 file1
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 77 65 ┊ │we ┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
Vim
Vim 可谓是编辑器界的「重量级武器」了。上文我们介绍的都是 Hex 查看器,不仅如此,Vim 还提供了直接的编辑功能。

使用 Vim 打开文件后,输入 :% ! xxd 命令,界面将变成类似如下格式:

00000000: 7765 6c63 6f6d 650a welcome.
接着你可以随意编辑文本了,就像使用 xxd 转换后进行编辑修改一样。

完成后,输入 :%!xxd -r 命令并保存即可。

参考资料
http://www.theunixschool.com/2011/06/3-dif...
https://stackoverflow.com/questions/827326...

macOS 终端可用的 Hex 查看与编辑器的更多相关文章

  1. macOS 终端常用命令

    macOS 常用命令 基本命令 1.列出文件 ls 参数 目录名 例:看看驱动目录下有什么:ls /System/Library/Extensions 参数 -w 显示中文,-l 详细信息,-a 包括 ...

  2. [MacOS] 终端使用ssh时,中文乱码问题处理

    终端显示中文问题处理: vim ~/.inputrc 加入以下代码 set meta-flag on set convert-meta off set input-meta on set output ...

  3. MacOs终端忽略大小写

    使用MacOs的终端时,唯一让人感觉不爽的就是Tab补全是区分大小的,所以查了资料就把这个问题搞定了.在用户目录下创建 .inputrc 文件,内容为以下三行代码,保存后重启终端再次输入文件名Tab补 ...

  4. Eclipse debug模式下使用16进制(Hex)查看变量值

    转载自:http://blog.csdn.net/jinhill/article/details/5767035 因为工作中需要查看byte[]原始编码,eclipse中debug模式下默认查看byt ...

  5. 解决Ubuntu系统中文乱码显示问题,终端打开文件及查看目录

    解决Ubuntu系统中文乱码显示问题 [日期:2014-02-20] 来源:Linux社区  作者:njchenyi [字体:大 中 小]   我是先安装了Ubuntu 12.04 Server,然后 ...

  6. VS2010 查看代码编辑器中的变量

    查看变量的使用情况 1.选中代码中的变量 2.右键 Find Usages

  7. macOS终端开启TAB键自动补全功能(不区分大小写)

    1.在当前用户根目录(~)下,修改~/.inputrc这个文件(如果文件不存在,则新建该文件),文件内容如下: set show-all-if-ambiguous on set completion- ...

  8. Mac终端使用tree命令查看目录结构

    使用brew管理tree扩展 brew search tree brew install tree tree

  9. mac 终端 常用命令,MacOS 常用终端命令大全,mac 在当前目录打开终端

    MacOS 常用终端命令大全:目录操作dircmp——比较两个目录的内容——dircmp dir1 dir2文件操作pg分页格式化显示文件内容——pg filenameod——显示非文本文件的内容—— ...

  10. linux下查看和添加PATH环境变量

    linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PA ...

随机推荐

  1. Java日期时间API系列23-----Jdk8中java.time包中的新的日期时间API类,获取准确开始时间00:00:00,获取准确结束时间23:59:59等

    有时候,往往需要统计某个时间区间的销量等问题,这就需要准确的起始时间,获取准确开始时间00:00:00,获取准确结束时间23:59:59.下面增加了一一些方法,获取当天起始时间,昨天起始时间,当前月第 ...

  2. 墨天轮最受DBA欢迎的数据库技术文档-监控篇

    好久不见,<墨天轮最受欢迎的技术文档>系列文章回归啦!本期主题数据库监控篇,希望能够帮助到大家!此外,为感谢大家支持,原文文末也给大家带来了返场福利,欢迎大家进入原文参与~ 数据库监控是许 ...

  3. js中有哪些定时器 , 它们的用法和区别?

    js有setInterval() 间隔函数 和 setTimeout()延迟函数 2 种定时器 1. setInterval间隔函数 setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...

  4. 打包项目的时候出错 Multiple assets emit different content to the same filename index.html

    上一次的打包的时候 内存已存在 index.html 了所以冲突了 : 解决办法 :关机重启 : 或者改变当前的index.html 文件名称 :

  5. 大模型存储选型 & JuiceFS 在关键环节性能详解

    从去年开始,LLM大语言模型领域发展迅速.如 LLaMA.ChatGLM.Baichuan.Qwen 和 yi-model 等基础模型(Foundation Models)的数量显著增加.众多企业也开 ...

  6. python中的内置函数zip函数

    关于zip()函数,有几点要讲的. 首先,官方文档中,它是这样描述的: Make an iterator that aggregates elements from each of the itera ...

  7. 在 OpenFunction 中运行 Serverless 应用

    除了构建和运行 Serverless 函数之外,OpenFuntion 还支持构建和运行 Serverless 应用.因此,OpenFunction 用户可以不用局限在各语言的 functions-f ...

  8. KubeSphere v4 安装指南

    日前,KubeSphere v4 发布,相较于之前的版本,新版本在架构上有了颠覆性的变化.为了让社区的各位小伙伴能够丝滑的从旧版本过渡到新版本,我们特别推出本篇安装指南文章,以供参考. 关于 Kube ...

  9. List<Map<String,Object>> 属性获取

    public static void main(String[] args) { // 1.数据准备 List<Map<String,Object>> list = new A ...

  10. 周六晚11实习生上线数据观测突发问题(涉及MYSQL,Hive等)

    前提 有点恐怖,上次需求上线后,部分线上数据观测要留到11月初,上次是一个税收相关的需求,已有功能的线上数据观察已经完成,还剩下部分只有在十一月初才可以观察 简单提一嘴(非技术相关) 之前把hive ...