OS X
的終端下通用很多 Unix
的工具和腳本。如果從 Linux
遷移到 OS X
會發現很多熟悉的命令和腳本工具,其實並沒有任何區別。
但是 OS X
也提供了很多其他系統所沒有的特別的命令行工具。我們推薦 8
個這類的工具,希望有助於提高在 Mac
的命令行環境下的效率。
open
open
命令用於打開文件、目錄或執行程序。就等同於在命令行模式下,重複圖形界面“雙擊”的動作。例如這個命令與在 Finder
中雙擊 Safari
是一樣的:
`open /Applications/Safari.app/`
如果 open
一個文件,則會使用關聯的程序打開之。例如 open screenshot.png
會在 Preview
中查看圖片。
可以使用 -a
選項要求自行選擇打開的程序,或使用 -e
強制在 TextEdit
中編輯此文件。
open
一個目錄會在 Finder
窗口中打開此目錄。一個很有用的技巧是 open .
打開當前目錄。
Finder
和終端的交互是雙向的——把文件從 Finder
中拖入終端,就等同於把文件的完整路徑粘貼到命令行中。
pbcopy 和 pbpaste
這兩個工具可以打通命令行和剪貼板。當然用鼠標操作複製粘貼也可以——但這兩個工具的真正威力,發揮在將其用作 Unix 工具的時候。意思就是說:可以將這兩個工具用作管道、IO 重定向以及和其他命令的整合。例如:
ls ~ | pbcopy
可以將主目錄的文件列表複製到剪貼板。
也可以把任意文件的內容讀入剪貼板:
pbcopy < blogpost.txt
做點更瘋狂的嘗試:獲取最新 Google 紀念徽標(doodle)的 URL 並複製到剪貼板:
curl http://www.google.com/doodles#oodles/archive | grep -A5 'latest-doodle on' | grep 'img src' | sed s/.*'<img src="\/\/'/''/ | sed s/'" alt=".*'/''/ | pbcopy
使用管道語法配合 pbcopy
工具可以簡單的抓取命令的輸出,而不必向上滾動翻閱終端窗口。可以用於和他人分享命令行的標準和錯誤輸出。 pbcopy
和 pbpaste
也可以用於自動化或加速執行一些事情。例如把一些郵件的主題存爲任務列表,就可以先從 Mail.app
中複製主題,再運行:
pbpaste >> tasklist.txt
mdfind
許多 Linux
用戶都發現 Linux
下查找文件的方法在 OS X
上不好用。當然經典的 Unix find
命令總是可以,但既然 OS X
有殺手級搜索工具 Spotlight
,爲什麼不在命令行上也使用一下呢?
這就是 mdfind 命令了。 Spotlight
能做的查找, mdfind
也能做。包括搜索文件的內容和元數據(metadata
)。
mdfind
還提供更多的搜索選項。例如-onlyin
選項可以約束搜索範圍爲一個目錄:
mdfind -onlyin ~/Documents essay
mdfind
的索引數據庫在後臺自動更新,不過你也可以使用 mdutil
工具診斷數據庫的問題,診斷 mdfind
的問題也等同於診斷 Spotlight
。如果 Spotlight
的工作不正確,mdutil -E
命令可以強制重建索引數據庫。也可以用 mdutil -i
徹底關閉文件索引。
screencapture
screencapture
命令可以截圖。和 Grab.app
與 cmd + shift + 3
或 cmd + shift + 4
熱鍵相似,但更加的靈活。
抓取包含鼠標光標的全屏幕,並以 image.png
插入到新郵件的附件中:
screencapture -C -M image.png
用鼠標選擇抓取窗口(及陰影)並複製到剪貼板:
screencapture -c -W
延時 10 秒後抓屏,並在 Preview 中打開之:
screencapture -T 10 -P image.png
用鼠標截取一個矩形區域,抓取後存爲 pdf 文件:
screencapture -s -t pdf image.pdf
更多用法請參閱 screencapture --help
。
launchctl
launchctl
管理 OS X
的啓動腳本,控制啓動計算機時需要開啓的服務。也可以設置定時執行特定任務的腳本,就像 Linux cron
一樣。
例如,開機時自動啓動 Apache
服務器:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
運行 launchctl list
顯示當前的啓動腳本。 sudo launchctl unload [path/to/script]
停止正在運行的啓動腳本,再加上 -w
選項即可去除開機啓動。用這個方法可以一次去除 Adobe
或 Microsoft Office
所附帶的所有“自動更新”後臺程序。
Launchd
腳本存儲在以下位置:
~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons /System/Library/LaunchAgents /System/Library/LaunchDaemons
say
say
是一個文本轉語音(TTS
)的有趣的工具,引擎和 OS X
使用的一樣也是 VoiceOver
。如果不加其他選項,則會簡單的語音朗讀你給定的字符串:
say "Never trust a computer you can't lift." 用-f選項朗讀特定文本文件,-o選項將朗讀結果存爲音頻文件而不是播放:
say -f mynovel.txt -o myaudiobook.aiff
say
命令可以用於在腳本中播放警告或提示。例如你可以設置 Automator
或 Hazel
腳本處理文件,並在任務完成時用 say
命令語音提示。
最好玩(不過也負罪感十足)的用法是:通過 SSH
連接到朋友或同事的計算機,然後用 say
命令給他們一個大大大驚喜……
可以在系統設置 (System Preferences)
的字典和語音 (Dictation & Speech)
選項中調整系統的語音選項甚至是語音的語言。
diskutil
diskutil
是 OS X
磁盤工具應用的命令行版。既可以完成圖形界面應用的所有任務,也可以做一些全盤填 0、全盤填隨機數等額外的任務。先使用 diskutil list
查看所有磁盤的列表和所在路徑,然後對特定的磁盤執行命令。
警告:不正確使用 diskutil
可能意外的破壞磁盤數據。請小心。
brew
Homebrew
程序提供的 brew
,嚴格來講不是一個 OS X
的原生命令,但任何一個 OS X
的專業用戶都不會錯過它。“ OS X
缺少的包管理器”這個評價是恰如其分的。如果你曾經在 Linux
上使用過 apt-get
(或其他包管理器——譯者注),你就會發現 Homebrew
基本上是一樣的。
使用 brew
可以簡單的獲取數千種開源工具和函數庫。例如 brew install imagemagick
就可以安裝 ImageMagick
(幾乎可以處理任何圖像問題,轉換任何格式的圖像工具), brew install node
可以安裝 Node.js
(當前大熱的服務器端 JavaScript
編程工具)。
也可以通過 Homebrew
做有趣的事情: brew install archey
會安裝 Archey
(在啓動命令行時顯示蘋果 LOGO
和計算機硬件參數的小工具)。
Homebrew
能安裝的工具數量龐大,並且一直保持更新。Homebrew
最棒的一點是:所有的文件都被約束在 /usr/local/
一個位置之下。也就是說可以通過 Homebrew
安裝新版軟件的同時,保持系統內置的依賴庫或其他軟件不變。同時如果想徹底刪除 Homebrew
,也變得非常簡單。
(注:刪除 Homebrew
最好還是不要直接刪除 /usr/local/
。應當用這個卸載腳本點擊預覽。)
#!/bin/sh # Just copy and paste the lines below (all at once, it won't work line by line!) # MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY! function abort { echo "$1" exit 1 } set -e /usr/bin/which -s git || abort "brew install git first!" test -d /usr/local/.git || abort "brew update first!" cd `brew --prefix` git checkout master git ls-files -z | pbcopy rm -rf Cellar bin/brew prune pbpaste | xargs -0 rm rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions test -d Library/LinkedKegs && rm -r Library/LinkedKegs rmdir -p bin Library share/man/man1 2> /dev/null rm -rf .git rm -rf ~/Library/Caches/Homebrew rm -rf ~/Library/Logs/Homebrew rm -rf /Library/Caches/Homebrew
在 訪達 中預覽 webp 格式圖片
WebP
文件的快速查看插件
curl -L https://raw.github.com/emin/WebPQuickLook/master/install.sh | sh