在 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. centos7安装python3.12

    centos7 安装升级 python3.12 centos7 默认的 gcc 和 g++ 版本都很低,在有 --enable-optimizations 选项时会编译报错,因此要在 scl 环境下编 ...

  2. Java Z 垃圾收集器如何彻底改变内存管理

    大家好,我是 V 哥,今天的内容来聊一聊 ZGC,Java Z Garbage Collector(ZGC)是一个低延迟垃圾收集器,旨在优化内存管理,主要用于大内存应用场景.它通过以下几个关键创新,彻 ...

  3. WPS Excel中配置下拉多选(VBA)

    网上找到两种方案,一种利用数据选择其他单元格,也就是在其他单元格建数据.需求是模板,不合适 这里我用的VBA,踩了挺多坑,详细说下 首先更新WPS为最新版,确保可用VBA和JSA 确定使用VBA还是J ...

  4. CCF网站提供的资源

    1. 电子刊物,如<CCF通讯> 实时更新:http://www.ccf.org.cn/dl/publications/ 过往期刊:http://history.ccf.org.cn/si ...

  5. 低功耗4G模组Air780E快速入门:使用文件系统存储温湿度数据

    ​ 伙伴们,今天我们来学习合宙低功耗4G模组Air780E快速入门之使用文件系统存储温湿度数据. 一.编写脚本 1.1 准备资料 780E开发板购买链接 780E开发板设计资料 LuatOS-Air7 ...

  6. ExtJS & Asp.NET

    企业应用中,要快速开发Web应用,前端使用ExtJS还行,包含许多常用的控件,图标,配色方案... 帖上部分载图: 完全可订制的登录界面: 可调整的布局: 可综合使用的模态对话框: 树结构及动态加载: ...

  7. 2023NOIP A层联测28 T4 小猫吃火龙果

    2023NOIP A层联测28 T4 小猫吃火龙果 分块题,跟赛时的一个倍增部分分做法很像. 思路 如果没有动态操作,可以设 \(dp[i][T][k]\) 为:在 \(i\) 时为 \(T(T\in ...

  8. json编码格式化美化

    有时候你想存储一个json到文件中,然后让别人调用或者读取或者作为临时存储,诸如此类. 但是php json_encode后数据是压缩的没有格式化,导致读起来有点费劲. 所以你可以这样(php 5.4 ...

  9. 答题判题程序题目集 1~3 的总结性 Blog

    前言 1.1 题目集概述 答题判题程序 - 1: 字符串解析:题目内容和答题内容都是按照特定格式给出的字符串,程序需要能正确地拆分和解析这些字符串,然后进行匹配. 对象和类的使用:为了更好地管理题目和 ...

  10. flask框架开启定时任务简单案例flask_apscheduler

    #所需模块flask_apscheduler #encodig=utf-8 from flask import Flask, request from flask_apscheduler import ...