5个有用的Unix命令,我真希望早点发现他们


发布者 ourjs  发布时间 1378961665000
关键字 技术前沿 
我使用unix系统已经有一段时间了,但我忽略了一些非常重要的命令,真希望我能早几年发现他们:

1. man ascii

这可以打印以2、16、10进制打印出ascii表格。
我真不敢相信我一个月前才知道有这个命令,我一直都是从Google上面搜索,这个命令真方便。


C program '\X' escapes are noted.

Oct Dec Hex Char Oct Dec Hex Char
─────────────────────────────────────
000 0 00 NUL '\0' 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F


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
For more information, see the cal man page.


3. xxd

这是另外一条我不敢相信我一直都不知道的命令,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;


我使用它来比较两个二进制文件是否一样。

4. ssh

ssh 是我第一次接解unix就熟悉的命令,但比起登录远程录,它还有更多的用法
ssh和它的辅助工具可以用来:

在不同的电脑上复制文件(使用 scp)
X-forwarding – 连接到远程机,即使远程上面没有X Server
Port forwarding – 端口转发,将一个连接从一个本地端口转向到另一个不同的远程端口
SOCKS proxy – 通过SOCKS 代理,允许你转发任何连接从而穿越防火墙。
敲一次密码登录入远程,然后通过ssh 密钥代理, 从远程登录到其它机器不需要再敲密码,这点非常另人惊喜。


5. mdfind

这是一条只有mac可以使用,它可以在几秒钟内搜索互你想要的文件路径。


> mdfind -name homebrew

/usr/local/Library/Homebrew
/Users/job/Library/Logs/Homebrew