使用*nix系统已经有一段时间了。但还是有一些命令是被我一直忽略的,真希望我能早几年发现这些命令。
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
要查看更多信息,请参考ascii 手册页面。
2. cal
在很多系统上要显示日历一般要通过几个步骤。其实你可以使用 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
|
这是另外一个让我难以置信是最近才知道的命令。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;
我也用这个命令来通过比较两个文件的十六进制拷贝来比较两个二进制文件。要查看更多信息,请参考xxd 手册页面。
4. ssh
ssh是我孰知的***个稍复杂的unix工具,但是也是在不久前我才意识到除了使用它来登录到远端机器以外,它有更多其他用途。
ssh和它附带的工具可以用来:
- 在计算机之间传递文件(使用scp)
- X-forwarding – 连接到远端的机器,并且开启一个GUI应用,看起来它们就像在本地开启的一样,即使远端的机器并没有提供X服务。
- 端口转发 – 将到本地端口的连接转发到远端机器的端口,或者将到远端机器端口的连接转发到本地端口
- SOCKS 代理 – 允许你将一个支持SOCKET代理的应用上的所有连接转发到远端机器。这对于如何更安全使用公共wifi浏览网络和绕过严格的防火墙是很有用的。
- 在本地机器输入一次密码,然后就可以通过ssh的key代理来使用安全身份登陆其余的远端机器,而不需要重复输入你的密码了。
要查看更多信息,请参考ssh 手册页面。
5. mdfind
这个mac上特有的命令,当然其他的*nix也会有相类似的命令。它和find命令功能相同,但是它是使用Spotlight索引的。它可以让你在数秒内查询你的整个文件系统。你可以使用它来即时展示满足条件的新增文件的更新情况。我经常使用它来查询应用在隐蔽的位置存储的重要文件。
- > mdfind -name homebrew
- /usr/local/Library/Homebrew
- /Users/job/Library/Logs/Homebrew
要查看更多信息,请参考mdfind 手册页面。
本文由 伯乐在线 - 轩脉刃 翻译自 Job Vranish。