Wednesday, August 29, 2007
Vim Vi 헥사 뷰어, 헥사 에디터 모드 명령어; Hex Viewer Hex Editor, xxd
Vim / Vi 에디터에서 현재 편집 중인 파일을 헥사 모드로 즉 16진 모드로 볼 수 있는 명령어가 있습니다. xxd 라는 명령입니다. 이것으로 텍스트파일은 물론이고, "이진파일" 즉 "바이너리" 파일도 헥사 모드로 볼 수 있습니다. 편집도 어느 정도 가능하긴 하지만 불완전합니다.
(1) 현재 파일을 헥사 모드로 전환 명령:
(2) 헥사 모드를 원래의 모드로 되돌리기 명령:
* 파일을 불러온 후 (1)번 명령을 실행하여 헥사 모드로 전환한 후, 헥사뷰어로서 보거나 또는 헥사에디터로서 편집하고
* (2)번 명령으로 원래대로 돌린 후, 수정 사항이 있을 경우 :w 명령으로 파일을 하드에 저장하면 됩니다.
아래 화면은 텍스트 파일을 Vim에디터에서 xxd 명령으로 본 것입니다. 이진파일도 마찬가지입니다.
Vim에디터에서 파일을 헥사 모드로 변환하여 본 장면
(아래 화면 클릭 후, 우측 화살표 키로, 옆으로 스크롤 가능)
편집할 때에는 중앙의 "5573 696e 6720 4865" 이런 16진수 숫자들을 편집해야 합니다. 맨 우측의 문자 구역을 편집하면 안됩니다.
주의! 헥사 모드 상태로 파일을 저장하면 위의 화면처럼 헥사 모드 그대로 저장되어 버립니다. 즉 이진파일이 텍스트 파일이 되어 버립니다. 이때는 ":%!xxd -r" (따옴표 제외) 명령으로 원래의 이진파일로 돌릴 수 있습니다.
Vim이나 Vi 버전에 따라 헥사 편집이 잘 안되고 파일이 깨지는 경우가 있습니다. 중요한 파일을 헥사 편집할 때에는 원본이 아닌 복사본으로 편집해야만 합니다.
헥사 뷰어는 Perl로 간단히 만들어 쓸 수도 있습니다: ▶▶ Perl 펄] 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, File Dump
▶▶ 리눅스] Hex Editor (헥사 에디터) / 이진 파일 편집기 - Binary Editor
(1) 현재 파일을 헥사 모드로 전환 명령:
:%!xxd
(2) 헥사 모드를 원래의 모드로 되돌리기 명령:
:%!xxd -r
* 파일을 불러온 후 (1)번 명령을 실행하여 헥사 모드로 전환한 후, 헥사뷰어로서 보거나 또는 헥사에디터로서 편집하고
* (2)번 명령으로 원래대로 돌린 후, 수정 사항이 있을 경우 :w 명령으로 파일을 하드에 저장하면 됩니다.
아래 화면은 텍스트 파일을 Vim에디터에서 xxd 명령으로 본 것입니다. 이진파일도 마찬가지입니다.
Vim에디터에서 파일을 헥사 모드로 변환하여 본 장면
(아래 화면 클릭 후, 우측 화살표 키로, 옆으로 스크롤 가능)
0000000: 5573 696e 6720 4865 6c70 0d0a 5468 6573 Using Help..Thes
0000010: 6520 4865 6c70 2066 696c 6573 2061 7265 e Help files are
0000020: 206f 7267 616e 697a 6564 2070 7269 6d61 organized prima
0000030: 7269 6c79 2062 6173 6564 206f 6e20 7468 rily based on th
0000040: 6520 6d65 6e75 2073 7472 7563 7475 7265 e menu structure
0000050: 2069 6e20 556c 7472 6145 6469 7420 2f20 in UltraEdit /
0000060: 5545 5374 7564 696f 2e20 2054 6f20 7468 UEStudio. To th
0000070: 6520 6c65 6674 2079 6f75 2073 686f 756c e left you shoul
0000080: 6420 7365 6520 7468 6520 666f 6c6c 6f77 d see the follow
0000090: 696e 6720 6d61 6a6f 7220 6865 6164 696e ing major headin
00000a0: 6773 3a0d 0a0d 0a0d 0a0d 0a47 6574 7469 gs:........Getti
00000b0: 6e67 2053 7461 7274 6564 0d0a 0d0a 4d65 ng Started....Me
00000c0: 6e75 732f 546f 6f6c 6261 7273 0d0a 0d0a nus/Toolbars....
00000d0: 4d65 6e75 2053 756d 6d61 7279 0d0a 0d0a Menu Summary....
00000e0: 2a20 436f 6d70 696c 6572 2043 6f6e 6669 * Compiler Confi
00000f0: 6775 7261 7469 6f6e 0d0a 0d0a 2a20 4356 guration....* CV
0000100: 5320 5375 7070 6f72 740d 0a0d 0a46 4151 S Support....FAQ
0000110: 0d0a 0d0a 4c69 6365 6e73 6520 4167 7265 ....License Agre
0000120: 656d 656e 740d 0a0d 0a53 616c 6573 2061 ement....Sales a
0000130: 6e64 2053 7570 706f 7274 0d0a 0d0a 0d0a nd Support......
0000140: 0d0a 5468 6520 4765 7474 696e 6720 5374 ..The Getting St
0000150: 6172 7465 6420 7365 6374 696f 6e20 286f arted section (o
0000160: 6620 7768 6963 6820 7468 6973 2069 7320 f which this is
0000170: 7468 6520 6669 7273 7420 646f 6375 6d65 the first docume
0000180: 6e74 2920 636f 6e74 6169 6e73 2075 7365 nt) contains use
0000190: 6675 6c20 696e 666f 726d 6174 696f 6e20 ful information
00001a0: 746f 2067 6574 2079 6f75 2075 7020 616e to get you up an
00001b0: 6420 7275 6e6e 696e 6720 7175 6963 6b6c d running quickl
00001c0: 7920 616e 6420 6564 6974 696e 6720 7465 y and editing te
00001d0: 7874 2069 6e20 556c 7472 6145 6469 742e xt in UltraEdit.
00001e0: 0d0a 0d0a 0d0a 0d0a 5468 6520 4d65 6e75 ........The Menu
00001f0: 2053 756d 6d61 7279 2073 6563 7469 6f6e Summary section
0000200: 206d 6179 2062 6520 6578 7061 6e64 6564 may be expanded
0000210: 2062 7920 646f 7562 6c65 2d63 6c69 636b by double-click
0000220: 696e 6720 616e 6420 636f 6e73 6973 7473 ing and consists
0000230: 206f 6620 696e 666f 726d 6174 696f 6e20 of information
0000240: 7265 6761 7264 696e 6720 7468 6520 636f regarding the co
0000250: 6d6d 616e 6473 2070 7265 7365 6e74 6564 mmands presented
0000260: 2069 6e20 7468 6520 6d65 6e75 7320 696e in the menus in
0000270: 2055 6c74 7261 4564 6974 2e20 2045 6163 UltraEdit. Eac
0000280: 6820 6d65 6e75 2068 6561 6469 6e67 2028 h menu heading (
0000290: 4669 6c65 204d 656e 752c 2045 6469 7420 File Menu, Edit
00002a0: 4d65 6e75 2c20 6574 632e 2920 6d61 7920 Menu, etc.) may
00002b0: 6265 2065 7870 616e 6465 6420 6279 2064 be expanded by d
00002c0: 6f75 626c 652d 636c 6963 6b69 6e67 2061 ouble-clicking a
44 lines filtered 1,1 Top
0000010: 6520 4865 6c70 2066 696c 6573 2061 7265 e Help files are
0000020: 206f 7267 616e 697a 6564 2070 7269 6d61 organized prima
0000030: 7269 6c79 2062 6173 6564 206f 6e20 7468 rily based on th
0000040: 6520 6d65 6e75 2073 7472 7563 7475 7265 e menu structure
0000050: 2069 6e20 556c 7472 6145 6469 7420 2f20 in UltraEdit /
0000060: 5545 5374 7564 696f 2e20 2054 6f20 7468 UEStudio. To th
0000070: 6520 6c65 6674 2079 6f75 2073 686f 756c e left you shoul
0000080: 6420 7365 6520 7468 6520 666f 6c6c 6f77 d see the follow
0000090: 696e 6720 6d61 6a6f 7220 6865 6164 696e ing major headin
00000a0: 6773 3a0d 0a0d 0a0d 0a0d 0a47 6574 7469 gs:........Getti
00000b0: 6e67 2053 7461 7274 6564 0d0a 0d0a 4d65 ng Started....Me
00000c0: 6e75 732f 546f 6f6c 6261 7273 0d0a 0d0a nus/Toolbars....
00000d0: 4d65 6e75 2053 756d 6d61 7279 0d0a 0d0a Menu Summary....
00000e0: 2a20 436f 6d70 696c 6572 2043 6f6e 6669 * Compiler Confi
00000f0: 6775 7261 7469 6f6e 0d0a 0d0a 2a20 4356 guration....* CV
0000100: 5320 5375 7070 6f72 740d 0a0d 0a46 4151 S Support....FAQ
0000110: 0d0a 0d0a 4c69 6365 6e73 6520 4167 7265 ....License Agre
0000120: 656d 656e 740d 0a0d 0a53 616c 6573 2061 ement....Sales a
0000130: 6e64 2053 7570 706f 7274 0d0a 0d0a 0d0a nd Support......
0000140: 0d0a 5468 6520 4765 7474 696e 6720 5374 ..The Getting St
0000150: 6172 7465 6420 7365 6374 696f 6e20 286f arted section (o
0000160: 6620 7768 6963 6820 7468 6973 2069 7320 f which this is
0000170: 7468 6520 6669 7273 7420 646f 6375 6d65 the first docume
0000180: 6e74 2920 636f 6e74 6169 6e73 2075 7365 nt) contains use
0000190: 6675 6c20 696e 666f 726d 6174 696f 6e20 ful information
00001a0: 746f 2067 6574 2079 6f75 2075 7020 616e to get you up an
00001b0: 6420 7275 6e6e 696e 6720 7175 6963 6b6c d running quickl
00001c0: 7920 616e 6420 6564 6974 696e 6720 7465 y and editing te
00001d0: 7874 2069 6e20 556c 7472 6145 6469 742e xt in UltraEdit.
00001e0: 0d0a 0d0a 0d0a 0d0a 5468 6520 4d65 6e75 ........The Menu
00001f0: 2053 756d 6d61 7279 2073 6563 7469 6f6e Summary section
0000200: 206d 6179 2062 6520 6578 7061 6e64 6564 may be expanded
0000210: 2062 7920 646f 7562 6c65 2d63 6c69 636b by double-click
0000220: 696e 6720 616e 6420 636f 6e73 6973 7473 ing and consists
0000230: 206f 6620 696e 666f 726d 6174 696f 6e20 of information
0000240: 7265 6761 7264 696e 6720 7468 6520 636f regarding the co
0000250: 6d6d 616e 6473 2070 7265 7365 6e74 6564 mmands presented
0000260: 2069 6e20 7468 6520 6d65 6e75 7320 696e in the menus in
0000270: 2055 6c74 7261 4564 6974 2e20 2045 6163 UltraEdit. Eac
0000280: 6820 6d65 6e75 2068 6561 6469 6e67 2028 h menu heading (
0000290: 4669 6c65 204d 656e 752c 2045 6469 7420 File Menu, Edit
00002a0: 4d65 6e75 2c20 6574 632e 2920 6d61 7920 Menu, etc.) may
00002b0: 6265 2065 7870 616e 6465 6420 6279 2064 be expanded by d
00002c0: 6f75 626c 652d 636c 6963 6b69 6e67 2061 ouble-clicking a
44 lines filtered 1,1 Top
편집할 때에는 중앙의 "5573 696e 6720 4865" 이런 16진수 숫자들을 편집해야 합니다. 맨 우측의 문자 구역을 편집하면 안됩니다.
주의! 헥사 모드 상태로 파일을 저장하면 위의 화면처럼 헥사 모드 그대로 저장되어 버립니다. 즉 이진파일이 텍스트 파일이 되어 버립니다. 이때는 ":%!xxd -r" (따옴표 제외) 명령으로 원래의 이진파일로 돌릴 수 있습니다.
Vim이나 Vi 버전에 따라 헥사 편집이 잘 안되고 파일이 깨지는 경우가 있습니다. 중요한 파일을 헥사 편집할 때에는 원본이 아닌 복사본으로 편집해야만 합니다.
헥사 뷰어는 Perl로 간단히 만들어 쓸 수도 있습니다: ▶▶ Perl 펄] 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, File Dump
▶▶ 리눅스] Hex Editor (헥사 에디터) / 이진 파일 편집기 - Binary Editor
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home