使用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;
我也用這個命令來通過比較兩個文件的十六進制拷貝來比較兩個二進制文件。要查看更多信息,請參考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
這就是經常被忽略的Unix的5個命令,希望大家能有所了解,實際操作的過程中可以用的到,謝謝大家的閱讀。