很多使用unix系统的用户或许很多时候看了以后通常都会有同感,unix平板电脑系统已经问世了有一段时间了。但还是有一些命令是被我一直忽略的,真希望我能早几年发现这些命令。这些命令点单方便区经常容易忽略,,希望本片可以给一些同样忽略的用户一个善意的提醒。
1. man ascii
这个命令会打印出八进制、十六进制和十进制的ASCII码表。难以置信我是一个月之前才知道这个命令的。我总是使用google来查询ASCII码表。这个命令其实更方便。
复制内容到剪贴板
ASCII(7) BSD Miscellaneous Information Manual ASCII(7)
NAME
ascii — octal, hexadecimal and decimal ASCII character sets
DESCRIPTION
The octal set:
000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel
010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si
020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb
030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us
2. cal
在很多系统上要显示日历一般要通过几个步骤。其实你可以使用 cal 命令。
复制内容到剪贴板
> cal
August 2013
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
3. xxd 当我们需要把二进制转成c语言中使用的16进制字符数组时,命令xxd是很有用的。
复制内容到剪贴板
> xxd somefile.bin
0000000: 83ff 0010 8d01 0408 d301 0408 a540 0408 ………….@..
0000010: d701 0408 d901 0408 db01 0408 0000 0000 …………….
0000020: 0000 0000 0000 0000 0000 0000 1199 0508 …………….
0000030: df01 0408 0000 0000 e199 0508 1d9a 0508 …………….
0000040: e501 0408 2912 0508 e901 0408 eb01 0408 ….)………..
0000050: ed01 0408 ef01 0408 39e0 0408 55e0 0408 ……..9…U…
0000060: 71e0 0408 8de0 0408 a9e0 0408 39f7 0408 q………..9…
0000070: 6df7 0408 a5f7 0408 ddf7 0408 15f8 0408 m……………
0000080: 49f8 0408 81f8 0408 7de5 0408 0b02 0408 I…….}…….
0000090: 4ded 0408 a9ed 0408 1102 0408 c5e0 0408 M……………
00000a0: 1502 0408 1702 0408 1902 0408 1b02 0408 …………….
00000b0: e50a 0508 1d0b 0508 590b 0508 2302 0408 ……..Y…#…
00000c0: 2502 0408 253d 0508 2941 0508 7106 0508 %…%=..)A..q…
00000d0: 8106 0508 690e 0508 990e 0508 c90e 0508 ….i………..
00000e0: 19e1 0408 3702 0408 3902 0408 3b02 0408 ….7…9…;…
这是另外一个让我难以置信是最近才知道的命令。xxd可以生成所给与文件的十六进制拷贝,也可以将编辑好的十六进制拷贝还原成二进制格式。它也可以将十六进制拷贝输出成C的数组,很方便:
复制内容到剪贴板
> xxd -i data.bin
unsigned char data_bin[] = {
0x6d, 0x61, 0x64, 0x65, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6c, 0x6f, 0x6f,
0x6b, 0x0a
};
unsigned int data_bin_len = 14;
我也用这个命令来通过比较两个文件的十六进制拷贝来比较两个二进制文件。