不可不知的Mac OS X專用命令行工具(持續更新中)

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 工具可以簡單的抓取命令的輸出,而不必向上滾動翻閱終端窗口。可以用於和他人分享命令行的標準和錯誤輸出。 pbcopypbpaste 也可以用於自動化或加速執行一些事情。例如把一些郵件的主題存爲任務列表,就可以先從 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.appcmd + shift + 3cmd + 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 選項即可去除開機啓動。用這個方法可以一次去除 AdobeMicrosoft 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 命令可以用於在腳本中播放警告或提示。例如你可以設置 AutomatorHazel 腳本處理文件,並在任務完成時用 say 命令語音提示。

最好玩(不過也負罪感十足)的用法是:通過 SSH 連接到朋友或同事的計算機,然後用 say 命令給他們一個大大大驚喜……

可以在系統設置 (System Preferences) 的字典和語音 (Dictation & Speech) 選項中調整系統的語音選項甚至是語音的語言。

diskutil

diskutilOS 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章