Unix/Linux 命令海洋中,除了 ls、grep、find 等高頻主力,仍潛藏著幾個功能強大卻鮮少被提及的工具。本文精選 5 個「隱藏神器」,涵蓋 ASCII 碼表、日曆、十六進制編輯、SSH 進階隧道、Spotlight 索引搜尋,每個都能在特定場景大幅提升效率。
man ascii —— 即時查閱完整 ASCII 碼表man ascii
輸出包含八進制、十六進制、十進制、字符、描述五欄對照表:
Oct Dec Hex Char Description
000 0 00 NUL Null character
001 1 01 SOH Start of Heading
002 2 02 STX Start of Text
...
040 32 20 SP Space
041 33 21 ! Exclamation mark
...
176 126 7E ~ Tilde
177 127 7F DEL Delete
實戰場景:編寫協議解析器、串口調試、字符編碼轉換時,無需瀏覽器搜尋,終端即時可得。
cal —— 极简終端日曆cal # 當月
cal 2024 # 全年
cal 12 2024 # 指定月份
cal -3 # 上月、本月、下月三欄
cal -j # 顯示儒略日 (年初至今天數)
ncal -w # 顯示週數 (ISO 8601)
輸出範例:
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
優勢:無圖形介面依賴、SSH 會話中即時可用、可管道輸出給腳本處理。
xxd —— 十六進制檢視與編輯瑞士刀# 基本傾印 (16 bytes/行,左側位移,右側 ASCII)
xxd somefile.bin
# 指定每行位元組數
xxd -c 32 somefile.bin
# 僅顯示位移與十六進制 (無 ASCII 欄)
xxd -p somefile.bin
# 生成 C 陣列 (嵌入式固件開發必備)
xxd -i firmware.bin > firmware.h
# 輸出:
# unsigned char firmware_bin[] = { 0x6d, 0x61, 0x64, ... };
# unsigned int firmware_bin_len = 14;
# 1. 轉為可編輯文本
xxd somefile.bin > somefile.hex
# 2. 用 Vim 編輯十六進制欄 (左側位移不可改)
vim somefile.hex
# 3. 還原為二進制
xxd -r somefile.hex > somefile_patched.bin
diff <(xxd file1.bin) <(xxd file2.bin)
# 或
xxd file1.bin > 1.hex && xxd file2.bin > 2.hex && diff -u 1.hex 2.hex
ssh —— 遠不止遠程登入的多功能隧道工具SSH 客戶端內建 5 大進階功能,掌握後可替代多種專用工具:
| 功能 | 命令範例 | 應用場景 |
|---|---|---|
| 檔案傳輸 (SCP/SFTP) | scp file user@host:/pathsftp user@host | 加密傳輸、斷點續傳 (sftp) |
| X11 Forwarding | ssh -X user@hostssh -Y user@host (trusted) | 遠程運行圖形程式 (Firefox、Wireshark、IDE) 顯示在本地 |
| 端口轉發 (隧道) | ssh -L 8080:localhost:80 user@host (本地→遠程)ssh -R 8080:localhost:80 user@host (遠程→本地)ssh -D 1080 user@host (SOCKS5 代理) | 繞過防火牆訪問內網服務、安全訪問公共 WiFi、開發調試內網 API |
| SSH Agent Forwarding | ssh -A user@host配合 ssh-add 載入金鑰 | 跳板機場景:本地金鑰授權遠程機器,無需複製私鑰 |
| 多路復用 | ControlMaster autoControlPath ~/.ssh/cm-%r@%h:%p | 單一 TCP 連線複用多個 Session,大幅加速批次操作 |
# 本地建立 SOCKS5 代理監聽 1080
ssh -D 1080 -f -C -q -N user@vps-host
# 瀏覽器/ProxyChains 設定 SOCKS5 127.0.0.1:1080
# 所有流量經 VPS 加密轉發,防竊聽、繞過區域封鎖
mdfind (macOS) / locate/recoll (Linux) —— 索引級全文檢索mdfind 利用 Spotlight 元數據索引,毫秒級搜尋全盤:
mdfind "kMDItemFSName == '*.pdf'" # 檔名模式
mdfind "kMDItemTextContent == 'quarterly'" # 全文內容
mdfind -live "kMDItemFSName == 'report'" # 即時監控新增符合檔案
mdfind -onlyin ~/Projects "TODO" # 限定目錄
Linux 對應方案:
locate (mlocate/plocate) —— 檔名資料庫,updatedb 定期更新recoll —— 全文索引支援 PDF、郵件、Office 文檔,Web 介面查詢tracker (GNOME) —— 系統級索引服務man ascii —— 編碼對照零延遲cal / ncal —— 終端日曆隨叫隨到xxd —— 二進制檢視、修補、C 陣列生成一條龍ssh 進階隧道 —— 替代 VPN、代理、X11 轉發、檔案傳輸mdfind/recoll —— 索引級搜尋告別 find / -name 的漫長等待這 5 個命令雖不常被教學提及,卻能在關鍵時刻化身效率倍增器,建議逐一實操內化為肌肉記憶。