1. 程式人生 > >Mac OS X 命令列使用者應當知道的八個終端工具

Mac OS X 命令列使用者應當知道的八個終端工具

OS X  的Terminal 終端開闢了強大的UNIX實用工具和指令碼的世界。如果你是從Linux轉移過來的使用者,你會在OS X 終端上發現很多熟悉的命令。但是即使是高階使用者也經常會忽略掉其實OS X終端也會有一系列在其他的作業系統中沒有的終端工具。當你學習了以下這些只適用於Mac的課程會讓你更高效的使用Mac命令行同時消除UNIX系統和你的Mac系統之間的差別。

1.open

open:開啟檔案,目錄和程式。這是令人興奮的,對嗎?其實它真正的作用是用於命令列模擬滑鼠雙擊操作。假如當你輸入:

$ open /Applications/Safari.app/

該命令時會像你在Finder中雙擊Safari圖示一樣啟動Safari瀏覽器。

如果你用open命令指向一個檔案,它會啟動相關的GUI應用程式載入該檔案。open screenshot.png命令會在預覽中開啟該圖片。當然你可以在命令中加入 -a 標識來選擇你想要用來載入該檔案的應用程式,或者使用 -e 標識直接在文字編輯器中開啟編輯。

對於一個目錄執行open命令會直接在Finder視窗中開啟該目錄。該方法特別適用於在命令列中執行open . 來開啟當前目錄。

請記住Finder和Terminal終端之間的整合是相互的,當你把Finder中的一個檔案拖入到Terminal終端視窗時,它的絕對路徑就會被貼上在命令列中。

2.pbcopy 和 pbpaste

這兩個命令可以讓你複製和貼上命令列中的文字內容。當然你可以直接使用滑鼠完成上述操作。但是pbcopy和pbpaste真正的魔力是它們是UNIX命令,這使它們可以受益於管道(piping),重定向並且在指令碼中可以與其他命令一起使用。例如當輸入:

$ ls ~ | pbcopy

該命令時會將你的home目錄中的檔案列表拷貝到OS X 系統的剪下板中。你可以通過如下命令輕易的獲取文件的內容:

$ pbcopy < blogpost.txt

或者過一些更瘋狂的事。下面這條指令碼會抓取最新的Google doodle 的連結並且將它拷貝到你的剪下板中。

$ 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使用者會在Mac上使用locate命令搜尋檔案,但是他們很快發現這個方法不可行。在UNIX中有一個古老的find命令,但是在OS X中它有它自己的殺手級搜尋工具:Spotlight。所以我們為啥不在命令列中借用它的力量呢?

這就是實際當中mdfind所做的事。任何Spotlight能搜尋到的內容,mdfind同樣也能搜尋到。這當然也包括搜尋檔案內部及元資料。

mdfind因為它的一些便捷性使它在它的這個大哥哥中脫穎而出。例如,-onlyin 標識可以將搜尋限制在一個指定的目錄中:

$ mdfind -onlyin ~/Documents essay

mdfind資料庫需要在後臺經常更新資料,但你可以使用mdutil命令來排除故障(同樣適用於Spotlight)。如果Spolight沒有正確的工作,使用mdutil -E將會清楚資料庫中的索引然後通過抓取重建索引。你同樣也可以通過執行mdutil -i off 來完全完畢索引。

4.screencapture

screencapture 可以讓你拍攝多種螢幕快照。它類似於抓圖程式或者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中的corn工具。

例如,當你想要在你啟動你的Mac時自動啟動Apache伺服器時,你可以輸入:

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

通過執行launchctl list會列出所有當前狀態下載入了的啟動指令碼。sudo launchctl unload [path/to/script] 命令會停止並且解除安裝執行中的指令碼,該命令增加 -w 標識時會將該指令碼永久的從你的啟動佇列中清除。我喜歡用這個命令來終止執行所有類似於Adobe程式及微軟Office的自動更新“助手”。

啟動指令碼儲存在以下幾個位置中:

~/Library/LaunchAgents    

/Library/LaunchAgents          

/Library/LaunchDaemons

/System/Library/LaunchAgents

/System/Library/LaunchDaemons

對於想要了解啟動程序與啟動代理的詳細機制,推薦你去瀏覽Paul Annesley 的部落格,該部落格將從檔案格式帶你瞭解該內容。同時如果你想要學習如何編寫你自己的啟動指令碼,Apple在他們開發者網站上提供了許多很有幫助的文件供參考。如果你希望完全避免命令列的操作,同樣有一個非常棒的叫Lingon的程式可以幫助你。

6.say

這是一個很有趣的命令:say 將文字轉化為語音,它使用了OS X中VoiceOver使用的文字語音轉換系統。無需任何選項,say命令會將你輸入的任何文字內容轉化為語音輸出:

$ say “Never trust a computer you can’t lift.”

你可以使用帶-f 標識的say命令來朗讀一個文字文件中的內容,同時使用-o 標識來儲存輸出的音訊內容:

$ say -f mynovel.txt -o myaudiobook.aiff

say 命令可以用於指令碼的控制檯日誌和報警聲音。例如,你可以設定批處理或者Hazel指令碼處理檔案,在處理完成後使用say命令發出提醒。

但是對於say命令最好玩的用法是比較陰險的:如果對於你的朋友或者同事的Mac你有ssh登陸許可權,你可以通過命令列悄無聲息的登陸他們的電腦。然後給他們一個Siri-ous驚喜。

你可以在系統偏好設定中的聽寫與語音面板中設定say命令的語音(和語言)。

7.diskutil

diskutil 是OS X中磁碟管理工具的命令列介面。它可以完成任何它的圖形介面兄弟能完成的任務,同時它也包含一些額外的能力—例如在一個磁碟中寫滿零或者隨機資料。簡單的輸入diskutil list會列出所有磁碟的路徑名和連結到你電腦上的可移除的媒體介質,然後再指向你想要操作的卷的命令。請注意:如果不正確的使用diskutil命令會永久的清楚磁碟上的資料。

8.brew

好吧,這個嚴格上說不是一個本地命令。但是沒有一個OS X高階使用者會離得開Homebrew。它的官網將它定義為“OSX 不可或缺的套件管理器”,它說的很正確。如果你在Linux系統上使用過apt-get命令,你會在Homebrew中有找到組織的感覺。

brew 讓你輕鬆的從開源社群獲取成千上萬的開放的實用工具和軟體庫。例如,brew install imagemagick 命令會為你安裝ImageMagick工具,它使一個功能強大的工具包,它可以從事任何從GIF動畫到幾十種不同型別的圖片轉換任務。brew install node 命令會為你安裝NodeJS,它是一個最新的熱門的在伺服器端開發和執行JavaScript程式的工具。

你同樣也可以用Homebrew來獲得樂趣:brew install archey 命令會為你安裝  Archey,它是一個很酷的指令碼,用來在一個多彩的Apple Logo顯示你的Mac的配置。Homebrew的可選內容很廣泛,同時它很容易建立新規則,一直都會有新的包被新增進來。

archey
ARCHEY —我的命令列工具中把所有的配置都顯示出來。

但是Homebrew最大的優勢是什麼?它將它所有的檔案都儲存在一個獨立的目錄中:/usr/local/ 。這意味著你可以無需干涉系統內建的軟體而安裝系統軟體的最新版本,比如python和mysql。而且當你解除安裝Homebrew 安裝包時,它很方便就可以被移除。

5.15修改:有人對我建議不能盲目的刪除/usr/local/目錄中的內容。這是一個非常重要的預防措施。為了安全的移除Homebrew,請使用解除安裝指令碼

本文轉自:http://www.cnblogs.com/daguo/p/3760001.html

相關推薦

Mac OS X 命令使用者應當知道終端工具

OS X  的Terminal 終端開闢了強大的UNIX實用工具和指令碼的世界。如果你是從Linux轉移過來的使用者,你會在OS X 終端上發現很多熟悉的命令。但是即使是高階使用者也經常會忽略掉其實OS X終端也會有一系列在其他的作業系統中沒有的終端工具。當你學習了以下

MAC OS X 命令終端的顏色顯示

目標 開啟 terminal 會發現 ls 和 grep 後的結果是沒有色彩的,這時候可以這麼幹: 用 vim 開啟檔案 ~/.bash_profile,然後把下邊的環境變數放進去: # Tell ls to be colourful export C

Golang (Go語言) Mac OS X下環境搭建 環境變量配置 開發工具配置 Sublime Text 2 【轉】

trick blog mac os https 系統 document cnblogs strong os x 一、安裝Golang的SDK   在官網 http://golang.org/ 直接下載安裝包安裝即可。下載pkg格式的最新安裝包,直接雙擊運行,一路按照提示操作

如何在Mac OS X上用命令快速的調整圖片大小

如果你使用的是Mac,經常需要調整一批照片的大小,實際上有一個內建工具,可以讓你無需開啟任何影象編輯工具就能搞定。這就是所謂的“SIPS”,是命令列的影象處理工具。它非常容易使用,但你需要知道如何在終端上發揮它的優勢。 簡單地說你想要處理的圖片拷貝到一個目錄中的,在終端cd到該目錄,並執行以下命令

MacMac OS X 安裝GNU命令工具

macos的很多使用者都是做it相關的人,類unix系統帶來了很多方面,尤其是經常和linux打交道的人。 但是作為經常使用linux 命令列的人發現macos中的命令列工具很多都是bsd工具,跟linux下得使用方式開始差距挺大的,那麼怎麼安裝GNU命令

Mac OS X命令編譯錯誤: ld: library not found for -lcrt1.10.6.o

在 Mac OS X 的 10.8.3 的版本中,使用命令列執行 configure 時,生成下面的錯誤: WenBi-MacBook:tcpdump-4.4.0 wenbi$ ./configure checking build system type... x86

mac OS X終端使用tree命令目錄

1. 問題描述   相信很多使用過Linux的使用者都用過tree命令,它可以像windows的檔案管理器一樣清楚明瞭的顯示目錄結構。不過有是有並不是系統本身就自帶的,如果需要的話,Ubuntu下可執行下列命令安裝。      sudo apt-get i

一文搞定 Mac OS X下使用iTerm2+zsh+oh-my-zsh配置Powerline風格的命令

本不想寫這篇文章的,因為在Linux下已經配置過很多次,想著mac應該找篇文章一次就搞定了,結果還是踩坑,看了很多文章,不是某一點沒不清楚,就是截圖有問題或者命令有問題,官網又難得找等等…花了3個多小時才搞定,所以,還是來總結一篇文章就能夠搞定的教程。 為什麼要

命令獲取 mac os x 系統資訊

如果你在Mac 中 處於不能訪問 圖形介面的情況下,例如 只能在通過 SSH 訪問,而此時你需要獲取一些系統資訊, 使用 OS X 內建的 Terminal,你同樣可以獲取到你需要的系統資訊。 sw_vers sw_vers命令:獲取當前Mac 作業系統 版本號和編譯版本號

mac os x下使用命令安裝軟體

os x本質是一個unix 類unix的linux作業系統都有提供命令列工具快速安裝一些軟體, 如centos下使用yum ubuntu下使用apt-get os x上使用brew,安裝brew的方法很簡單,可以參考 http://brew.sh  先執行一下 ruby

Mac OS X終端的常用操作命令(UNIX指令)

mov 刪除 一級目錄 去哪兒 文件夾 刪除文件 結束 命名 什麽 用了十多年windows,終於換了個高配Mac,俗話說 無論前端還是後端最終還是走向了linux,無論是換了多少臺PC最終都會走向Mac。不學習命令行用什麽Mac? 幹就完了~ pwd 顯示現在的

使用常見的網路命令檢視當前網路狀態——Mac OS X

轉自https://blog.csdn.net/zkh90644/article/details/50539948 以下是正文內容: 作業系統擁有一套通用的實用程式來查明本地主機的有線或者無線鏈路狀態和IP的連線情況。如果本機有IP連線,那麼就意味著有線或者無線是正常工作的。在Mac OS

[SQL]MySQL基本命令(Mac OS X)

1.登陸與退出: /usr/local/MySQL/bin/mysql -u root -p 輸入密碼後回車即可登陸,也可以在p後直接寫密碼,但是存在安全性問題,登陸後發出如下警告: 2.資料庫操作: 1.建立create: create database da

Mac OS X:顯示/設定解析度的命令(源程式)

注:把變更現實解析度的程式碼完成了。 變更的時候,因為10.6不再提供諸如10.5之前的設定最佳解析度的系統功能,所以需要自己編寫。 設定和顯示顯示解析度-原始碼 下面是一個設定和顯示當前系統 顯示

如何在Mac OS X中開啟或關閉顯示隱藏檔案命令

開啟終端,輸入: defaults write com.apple.finder AppleShowAllFiles -booltrue此命令顯示隱藏檔案 defaults write com.app

Mac OS X 下 su 命令提示 sorry 的解決方法

大家都知道在 Linux 下,執行 su 命令後輸入密碼即可切換到 root 使用者執行各類操作 但是 Mac 下,這樣行不通,只會返回你一句 Sorry! 解決方法很簡單,首先開啟終端 依次輸入

mac os x配置adb全域性命令的方法

把mac系統從 ox s 10.8.5升級到 ox s10.9.2,再輸入adb install 命令的時候提示 -bash: adb: command not found,之前使用的是 sudo ln -s /home/xx/sdk/platform-tools/adb

Mac OS X Terminal command入門與命令彙總

很多朋友對osx下的命令列操作撓頭,估計多數是在windows時代開始接觸計算機的。有dos基礎的應該是看看就明白,而玩過Linux的應該是輕車熟路了。這個貼子希望能給見到命令列就頭大的兄弟一些幫助,所涉及到的命令基本限於安裝kext,修改plist,更換核心 所碰到的操作

Mac OS X終端系統命令丟失提示 command not found 解決方法

  事件的起因是我在 ~/.bash_profile 裡添加了 ~/.composer/vendor/bin 這個東西導致,或許是 OS X 10.11 的 bug?   先說說 Mac OS

mac os x常用命令

剛用mac不久,每次在mac ,linux, windows三個作業系統的切換中,容易忘記某些命令,所以把mac中常用的中端命令整理一下,方便隨時檢視。 1.簡單常用類: cd(不加引數)  進root cd(folder)  進入資料夾 cd ..