OS X 平臺的 8 個實用終端工具
OS X 終端對外開放了許多很強大的UNIX實用工具和腳本。如果你是從Linux轉過來的,你會發現許多熟悉的命令正是按照你想的那樣執行。但是高級用戶通常不知道OS X自帶了許多在其他操作系統中沒有的基于文本的實用工具。
更新:感謝讀著的反饋,我已經在后續的文章里寫了更多的命令介紹:(800多個)
1.open
open
打開文件,目錄和應用。很興奮,對不對?但是作為命令行中的雙擊,它確實隨手可用。例如,輸入如下:
$ open /Applications/Safari.app/
…這樣就打開Safari了,就好像你在Finder中雙擊了它的圖標。1
如果你對一個文件使用open
,它將嘗試加載該文件以及與其相關的圖形界面應用。對一個圖片使用open screenshot.png
會在預覽中打開該圖片。你可以設置-a
標識來選擇用哪個應用打開,或者-e
在TextEdit中打開文件直接編輯。
對目錄使用open
會在直接將你帶到該目錄所在的Finder窗口。使用open
進去到當前的目錄非常地有用。
請記住Finder和終端之間的一體化是雙向的—如果你把Finder中的文件拖拽到終端中,在命令行中會粘貼出文件的完整路徑。
2.pbcopy 和 pbpaste
這兩個命令能讓你從命令行中復制和粘貼文本。當然了,你也可以使用鼠標—但是pbcopy
和pbpaste
真正的力量在于他們是UNIX命令,也就是說這兩個命令得益于管道、重定向,并能在腳本中與其他命令一起使用。輸入如下:
$ ls ~ | pbcopy
…這樣會把home目錄中的所有文件復制到剪切板中。你可以很容易地得到文件的內容:
$ pbcopy < blogpost.txt
…或者做一些更瘋狂的事。這個hacked-up腳本會抓取到最新的谷歌涂鴉鏈接,并把它復制到剪切板中。
$ 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
還可以用于自動或加速某些類型的任務。例如,如果你想要保存郵件主題到任務列表中,那么你可以從郵件應用中復制主題并運行:
$ pbpaste >> tasklist.txt
3.mdfind
許多Linux高級用戶曾嘗試使用locate
來搜索Mac上的文件,然后很快發現它不起作用。還有個古老的UNIX命令find,但是OS X帶有自己的殺手級搜索工具:Spotlight。那么為什么不在命令行中利用它的能力呢?
那正是mdfind所做的。任何Spotlight能找到的,mdfind
也能找到。包括搜索文件內容和元數據。
mdfind
帶來了一些便利,這使得它比那些老的命令更杰出。例如,使用-onlyin
標識可以限制只搜索單個目錄:
$ mdfind -onlyin ~/Documents essay
mdfind
數據庫應該在后臺更新,但是你也可以使用mdutil
(還有Spotlight)分析解決問題。如果Spotlight沒有正常工作,mdutil -E
將刪除索引,并重頭開始創建。你也可以使用mdutil -i
完全關閉索引。
4.screencapture
使用screencapture
可以獲得多種不同類型的截圖。它類似于Grab.app和快捷鍵cmd
+shift
+3
和cmd
+shift
+4
,可是它更加的靈活。下面是幾種你可以使用screencapture
的不同方式:
捕獲屏幕內容,包括光標,并把得到的圖片(命名為’image.png’)添加到一個新的郵件信息中:
$ screencapture -C -M image.png
用鼠標選擇一個窗口,然后捕獲它的內容不帶窗口的影子,并把圖像復制到剪切板上:
$ screencapture -c -W
延遲10秒后捕獲屏幕,并在預覽中打開新的圖像:
$ screencapture -T 10 -P image.png
用鼠標選擇屏幕的一部分,捕獲它的內容,然后保存為pdf:
$ screencapture -s -t pdf image.pdf
要查看更多選項,輸入screencapture —help
5.launchctl
launchctl
讓你與OS X初始化腳本launchd
交互,用啟動守護進程和啟動代理,你可以控制開機時的啟動服務。你甚至可以設置腳本定期執行或者每隔一段時間后在后臺運行,類似于Linux中的計劃任務。
例如,如果你想Apache服務器在你打開電腦時自動啟動,只要簡單的輸入如下:
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
運行launchctl list
會展示出當前加載的啟動腳本。sudo launch unload [path/to/script]
將會停止并卸載正在運行的腳本,添加-w
標識將從啟動序列中永久刪除這些腳本。我想要在Adobe軟件和Microsoft軟件創建的所有自動升級“助手”上運行一次。
Launchd腳本存儲在下面的位置:
~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons /System/Library/LaunchAgents /System/Library/LaunchDaemons
如果要看看什么寫入到了啟動代理或守護程序,這有一個很不錯的博客,是Paul Annesley寫的,能夠帶你了解文件格式。如果你想要學習如何寫你自己的launchd
腳本,蘋果在他們的開發者網站上提供了幫助文檔。如果你想完全避免使用命令行,還有一個非常棒的Lingon軟件。
6.say
這是一件非常有趣的事:say
把文本轉換成語音,它使用OS X給VoiceOver使用的TTS引擎。沒有任何選項,say
僅僅是地讀出你輸入的內容:2
$ say "Never trust a computer you can't lift."
你也可以使用say
用-f
標識讀出文本的內容,你還可以用-o
標識存儲產生的音頻剪輯:
$ say -f mynovel.txt -o myaudiobook.aiff
say
命令可以用于代替控制臺日志和警告聲音。例如,你可以設置Automator腳本或Hazel腳本進行批文件處理,然后用say
提示任務已完成。
但是say
最有意思的應用相當地邪惡:如果你用ssh
來訪問朋友或同事的Mac,你可以默默地登錄他們的機器并通過命令行干擾他們。給他們一個Siri的驚喜。
通過改變系統偏好設置中的聽寫與語音的默認設置,你可以改變say
的聲音和語言!
7.diskutil
diskutil
是OS X上的磁盤工具的命令行界面。它所作的事情和磁盤工具的一樣,但是它還有一些額外的功能—例如用零或隨機數填充一個磁盤。只要輸入diskutil list
就可以查看磁盤的路徑名,還有連接在你電腦上的移動設備,然后用命令指定你想要操作的卷。一定要小心:diskutil
如果使用不正確的話會永久抹掉磁盤上的數據。
8.brew
當然了—這不是技術上一個原本的命令。但是作為OS X用戶應該會使用HomeBrew。網上把它叫作“The missing package manager for OS X”,確實如此。如果你曾在Linux中使用過apt-get
,那么使用Homebrew時你會感到很容易上手。3
brew
使你能很容易接觸到上千個開源社區免費的實用工具和插件。例如,brew install imagemagick
將會幫你配置好ImageMagick,一個非常強大的實用工具,從播放gif動畫到幾十種不同類型圖片之間的轉換它都能完成。brew install node
將為你安裝NodeJS,它是時下非常流行的開發和運行服務器端JavaScript應用的工具。
你也可以這樣使用Homebrew:brew install archey
將會為你安裝Archey,一個很酷且輕量級的腳本,它可以在一個彩色的蘋果logo旁邊顯示出你Mac的規格。
Homebrew可供選擇的范圍很多—因為它很容易創建慣用語,新包可以一直被添加進來。
但是關于Homebrew最棒的是哪一部分呢?它把所有文件放在一個單獨的目錄:/usr/local/
。也就是說你可以安裝最新版本的系統軟件,例如python
和mysql
,而且不會影響已內置的這些軟件。如果你想要擺脫Homebrew,刪除也很容易。
編輯—5月15日:一些朋友建議我不應該盲目地刪除/usr/local
的內容。要謹慎一些。如果要安全地移除Homebrew,可以使用uninstall script。
為了更好地使用Terminal.app,這里有一份所有適用于OS X 10.9 Mavericks的控制臺命令A-Z列表。
-
回想一下OS X app不是真正的可執行文件,實際上是以.app為后綴的特殊的目錄(bundles)。
open
是從控制臺啟動這些程序的唯一方式。它也可以啟動其他實際上是bundles的“文件”,例如Pages文檔。 ? - https://www.油Tube.com/watch?v=G0FtgZNOD44 ?
- 、實際上,Homebrew更類似于FreeBSD的Ports,比Linux的apt更貼切。它使用一個混合的源文件/二進制文件:如果沒有二進制文件給一個指定的包用,它會只下載源文件的壓縮包,然后編譯—這在今天的多核Mac上不成問題。 ? </ol> </div> 原文鏈接: mitchchn 翻譯: 伯樂在線 - shinancao
譯文鏈接: http://blog.jobbole.com/72238/