hexyl - 컬러풀한 명령줄 Hex Viewer 치트시트
hexyl은 Rust로 작성된 현대적 터미널 hex viewer입니다. 바이트를 카테고리별로 색상 코딩합니다 — NULL, ASCII 출력 가능, ASCII 공백, 기타 ASCII, non-ASCII — 따라서 구조가 한눈에 튀어나오고, 정렬된 문자 패널을 옆에 표시합니다. 파일 헤더, 매직 바이트, 바이너리 구조를 빠르게 훑어보기 위해 xxd 또는 hexdump보다 훨씬 더 읽을 수 있으며, 오프셋 및 길이 제어로 스크립팅 가능하게 유지됩니다.
설치
| 플랫폼 | 명령어 |
|---|
| Cargo (모든 플랫폼) | cargo install hexyl |
| macOS (Homebrew) | brew install hexyl |
| Arch Linux | sudo pacman -S hexyl |
| Debian/Ubuntu | sudo apt install hexyl |
| Fedora | sudo dnf install hexyl |
| Windows (Scoop) | scoop install hexyl |
| Nix | nix-env -iA nixpkgs.hexyl |
기본 사용법
| 명령어 | 설명 |
|---|
hexyl file.bin | 색상과 문자 패널이 있는 Hex dump |
hexyl -n 64 file.bin | 처음 64 바이트만 표시 |
| `head -c 256 file | hexyl` |
hexyl --help | 전체 옵션 목록 |
hexyl --version | 버전 |
범위 제어
| 옵션 | 설명 |
|---|
-n, --length N | 최대 N 바이트 읽기 |
-c, --bytes N | 바이트 길이의 별칭 |
-s, --skip N | 읽기 전에 N 바이트 건너뛰기 (탐색) |
-r, --range A:B | 바이트 범위 A부터 B까지 읽기 |
--block-size N | -n/-s의 블록 크기 설정 (예: 512) |
오프셋 및 개수는 단위 및 기수를 허용합니다: 0x1F, 512, 1KiB, 2MiB.
디스플레이 옵션
| 옵션 | 설명 |
|---|
| `—color always | auto |
| `—border ascii | unicode |
--panels N | 나란히 배치할 hex 패널 수 (auto 너비 맞추기) |
--no-characters | 오른쪽 문자 패널 숨기기 |
--no-position | 오프셋 열 숨기기 |
--group-size N | 그룹당 바이트 (1, 2, 4, 8) |
| `—base 2 | 8 |
-p, --plain | 색상 없음, 테두리 없음, 위치 없음 (xxd 같음) |
색상 읽기
| 색상 카테고리 | 의미 |
|---|
흐린 0 | NULL 바이트 (0x00) |
| 녹색 | ASCII 출력 가능 문자 |
| 노랑/청록 | ASCII 공백 |
| 기타 음영 | 기타 ASCII 제어 바이트 |
| 밝음 | Non-ASCII (0x80–0xFF) |
이 색상 지정으로 매직 넘버, 패딩, 텍스트 vs 바이너리 영역을 즉시 볼 수 있습니다.
일반적인 워크플로우
# 파일의 매직 바이트 / 헤더 확인
hexyl -n 16 mystery.file
# 알려진 오프셋에서 특정 구조 검사
hexyl -s 0x200 -n 0x40 firmware.bin
# 두 파일의 헤더를 빠르게 비교
hexyl -n 32 a.bin; echo '---'; hexyl -n 32 b.bin
# diff 또는 스크립트를 위한 xxd 스타일 평문 출력
hexyl --plain -n 64 file.bin
# 스트림의 슬라이스 보기
curl -s https://example.com/file | hexyl -n 128
hexyl vs 클래식 도구
| 기능 | hexyl | xxd | hexdump |
|---|
| 바이트 카테고리별 색상 | 예 | 아니오 | 아니오 |
| 문자 패널 | 예 | 예 | 형식 포함 |
| 범위/seek 플래그 | 예 | 제한적 | 제한적 |
| 다중 패널 레이아웃 | 예 | 아니오 | 아니오 |
| 평문/스크립팅 모드 | 예 (-p) | 예 | 예 |
리소스