怕了吧,我用命令列玩Google

怕了吧,我用命令列玩Google

GoogleCL就是指Google Command Line,這是一個可以讓你直接用命令列和Google服務溝通的工具。不論是Google文件、日曆、Picasa相簿或是YouTube影片,只要一行命令就可以直接上傳,而且還能執行一些額外的工作,例如編輯、刪除和條列等。

GoogleCL官方網站:http://code.google.com/p/googlecl

系統需求

  • Python 2.5或2.6

  • gdata 1.2.4以上

安裝方式

由於GoogleCL可以跨平台使用,每種平台安裝方式都不太相同,分別說明如下(以下教學以Unix-based系統為主):

Mac OS X

要在Mac OS X上安裝GoogleCL,請執行以下步驟:

  1. 安裝 MacPorts(下載位置:http://www.macports.org/install.php);

  2. 打開終端機,輸入 sudo port -v selfupdate,讓MacPorts更新程式列表;

  3. 安裝GoogleCL,請在終端機中輸入 sudo port install googlecl

GoogleCL需要Python和Gdata,不過如果你的電腦上沒有安裝這兩個程式的話,MacPorts會自動幫你安裝。

Linux(以Ubuntu為例)

想在Ubuntu上安裝GoogleCL,請執行以下步驟:

  1. 打開終端機,然後輸入 sudo apt-get install python-gdata

  2. 下載GoogleCL deb版本(下載網址:http://tinyurl.com/3x9xk57);

  3. 在終端機中移動到deb檔案所在的資料夾;

  4. 輸入 sudo dpkg -i googlecl*.deb

Windows

如果你要在Windows上安裝GoogleCL,請執行以下步驟:

  1. 下載並安裝Python(下載網址:http://python.org/download/);

  2. 下載 GData-python-client並解壓縮(下載網址:http://code.google.com/p/gdata-python-client/);

  3. 選擇「開始功能表」->「執行」,然後輸入 cmd

  4. 在純文字介面中,切換到GData的資料夾;

  5. 接著輸入 [python安裝位置]\python setup.py install,Gdata就會自動安裝;

  6. 下載GoogleCL(下載位置:http://tinyurl.com/236826h);

  7. 再一次切換到GoogleCL的資料夾;

  8. 請輸入 [python安裝位置]\python setup.py install,GoogleCL就會自動安裝。

Note:一般來說,在Windows底下Python 2.6的預設安裝目錄是:C:\python26\

用法

安裝好GoogleCL後,我們就可以開始用Google Command Line的強大功能了,在Unix-based中基本的命令結構如下:

 google [服務] [工作] --[參數] [檔案]

其中服務是指你要使用的Google服務,而工作則是這個服務可執行的基本功能,例如上傳、刪除等。參數則是用來指定檔案名稱、標籤或是要使用的編輯器等參考資料,而檔案就是指你要處理的檔案了。這部分我們會在各個服務的介紹中再次說明。

Tips:如果你是用Windows系統,請使用 C:\Python26\python C:\Python26\Scripts\google 取代Unix-based系統中的 google 指令。另外現在GoogleCL仍然不能處理正體中文的檔名,因此檔名請用英文。

GoogleCL服務之一:Google Docs

GoogleCL中的Google Docs服務大概是最強大的功能了,你可以透過GoogleCL上傳、下載、刪除甚至編輯Google Docs,不過即使我們下了 --format 參數,下載文件時也只能以txt檔下載。而透過GoogleCL的部分也因為目前僅支援終端機中的純文字編輯器,如:vim或emacs等,所以也只有純文字的編輯能力。

不過還是有變通的方法,例如我就是利用reStructuredText(或簡稱ReST)這個輕量標籤語言來撰寫純文字檔,並使用Google Docs當作雲端儲存,ReST在需要的時候可以方便的轉換成html、pdf或odt檔,如果有需要也可以轉成Word檔來用,非常方便。

 基本指令:Google docs [工作] --[參數] [檔案]

怕了吧,我用命令列玩Google

▲GoogleCL裡最好用的就是可以直接以純文字編輯器來編輯Google Docs上的檔案,打開終端機後,輸入 google docs edit --"文件名稱" --editor "vim" 就可以使用vim編輯該份文件,如果你的Google Docs上沒有相同檔案,則會開啟一份新文件。第一次使用GoogleCL時會請你建立使用者設定檔,請輸入Google帳號即可。

Tips:除了終端機內的純文字編輯器如vim和emacs之外,目前GoogleCL不支援任何GUI文字編輯器,如Notepad++等會無法存檔。不過現在版本的GoogleCL使用vim編輯時會有一點小問題,第一次開新檔時,請不要用 :w 存檔,而是用 :wq 存檔並退出,否則GoogleCL會無法儲存,第二次開啟相同的檔時,就可以使用 :w 來存檔了。至於emacs則是完全沒有問題。

怕了吧,我用命令列玩Google

▲接著GoogleCL就會自動連到Google Accounts的存取允許頁面,如果你有多個Google或Google App帳號的話,請選擇要使用的帳號。

怕了吧,我用命令列玩Google

▲然後請選擇「Grant access」按鈕允許GoogleCL存取你的Google帳號。

怕了吧,我用命令列玩Google

▲接著再次輸入GoogleCL指令。

怕了吧,我用命令列玩Google

▲因為我的Google Docs裡面沒有相同名稱的檔案,因此GoogleCL會自行建立一個新檔。

怕了吧,我用命令列玩Google

▲接著你就可以開始使用vim或是emacs等文字編輯器來編輯內容了。

怕了吧,我用命令列玩Google

▲編輯完成後,存檔並關閉文字編輯器,GoogleCL就會上傳你所做的更動,接著登入Google Docs你就可以看到剛剛建立的檔案了。

怕了吧,我用命令列玩Google

▲開啟檔案你就可以看到剛剛編輯的內容已經上傳了。

Google Docs 可執行的工作

delete

刪除檔案。範例:google docs delete --title "test123"刪除名為「test123」的檔案。

list

文件列表。範例:google docs list title,url-direct --delimiter ": "列出所有文件檔名及文件的直接連結,並且中間用冒號分隔。

upload

上傳文件。範例:google docs upload ~/Desktop/test123.doc上傳一個名為「test.doc」的檔案。

edit

編輯文件。範例:google docs edit --title "test123" --editor "vim"使用vim編輯一個名為「test123」的檔案,如果Google Docs裡面沒有相同名稱的檔案,則會建立一個新檔。

get

下載文件。範例:google docs get --title "test123"下載一個名為「test123」的檔案。

Google Docs 可使用的參數

title

文件名稱。

editor

使用的文字編輯器。

format

指定檔案格式,可使用「document」(文件)、「spreadsheet」(試算表)、「Presentation」(簡報)等。

delimiter

指定分隔符號。

folder

指定資料夾。

GoogleCL服務之二:Google Calendar

GoogleCL用在Google Calendar的時候可以執行新增、刪除、列表和顯示今天的行事曆等工作。

 基本指令:Google calendar [工作] --[參數] [記事]

怕了吧,我用命令列玩Google

▲要直接從終端機新增記事,請輸入 google calendar add "記事",然後在第一次使用時也請輸入Google帳號並允許GoogleCL存取你的帳號。

怕了吧,我用命令列玩Google

▲接著打開Google Calendar,你就可以看到剛剛輸入的記事顯示在你的行事曆了。

Tips:由於是使用文字介面輸入行事曆,因此請使用Google Calendar的Quick add方式輸入記事,使用方式請參閱:http://tinyurl.com/25jvm8l

Google Calendar 可執行的工作

add

增加記事。範例:google calendar add "於 16:00 開會",這會在今天的行事曆上下午四點新增一筆「開會」的記事。

delete

刪除記事。範例:google calendar delete --cal "work" --title "開會",這個指令會刪除「work」行事曆裡名為「開會」的記事。

list

列出行事曆。範例:google calendar list --date 2010-05-01,2010-05-31這個指令會列出2010年5月1日到31日間所有的記事。

today

列出從現在起24小時內的行事曆。範例:google calendar today

Google Calendar 可使用的參數

title

記事的名稱。

cal

行事曆的名稱。

date

時間。在GoogleCL裡,時間表示的方式為「YYYY-MM-DD」(當天的行事曆)、「YYYY-MM-DD,」(當天以後的行事曆)、「YYYY-MM-DD,YYYY-MM-DD」(這兩天之間的行事曆)和「,YYYY-MM-DD」(當天以前的行事曆)。

query

搜尋所有的文字,包含記事標題、標籤和內文。

GoogleCL服務之三:Google Contacts

GoogleCL裡的Contacts服務可以直接從終端器輸入或刪除一筆聯絡資訊,並能新增或刪除聯絡人群組。

 基本指令:google contacts [工作] [連絡人資訊]

怕了吧,我用命令列玩Google

▲要輸入單筆聯絡人資訊,請輸入 google contacts add "聯絡人名稱, 聯絡人電子郵件",目前仍無法輸入其他的聯絡資訊,另外如果想一次輸入多筆聯絡人的話,請用以上格式將所有聯絡人的資訊輸入到一個純文字檔中,並將副檔名改成 .csv 後,輸入 google contacts add xxx.csv

怕了吧,我用命令列玩Google

▲接著你就可以在Gmail裡的聯絡人裡找到剛剛輸入的聯絡人資訊了。

Google Contacts 可執行的工作

add

新增聯絡人。範例:google contacts add "PCHome編輯部, pchome@hmg.com.tw",這會在你的Gmail聯絡人裡新增一筆名為「PCHome編輯部」的聯絡人。

add-groups

新增聯絡人群組。範例:google contacts add-groups Friends,這會新增一個名為「Friends」的群組。

list

列出聯絡人。範例:google contacts list name,email,這會以「姓名,電子郵件」的格式列出所有聯絡人,中間逗號後不可有空格,目前測試電話仍無法顯示。

list-groups

列出所有的聯絡人群組。範例:google contacts list-groups

delete

刪除聯絡人。範例:google contacts delete "PCHome編輯部",這會刪除名為「PCHome編輯部」的聯絡人。

delete-groups

刪除聯絡人群組。範例:google contacts delete-groups "Friends",這會刪除名為「Friends」的聯絡人群組。

Google Contacts 可使用的參數

GoogleCL服務之四:Blogger

雖然現在大多數的使用者都偷懶去玩微網誌了,不過還是有努力的人會去寫部落格的。因此GoogleCL當然也就支援Blogger發布,讓這些勤勞的人使用。通常一篇部落格文章都很長,雖然你也可以直接輸入在指令中,不過還是建議將內文另外儲存到一份純文字檔裡,再用GoogleCL發布上去。

 基本指令:google blogger [工作] --[參數] xxx.txt

怕了吧,我用命令列玩Google

▲要用GoogleCL來發布部落格文章,建議還是先寫在一份純文字檔中。

怕了吧,我用命令列玩Google

▲然後請輸入 google blogger post --tag "標籤" --title "文章標題" [內文純文字檔位置]

怕了吧,我用命令列玩Google

▲接著你就可以在你的部落格上面看到剛剛發布的文章了。

Google Blogger 可執行的工作

post

發布文章。範例:google blogger post --tag "test" --title "test" --draft "test",這會在你的Blogger主要部落格中建立一篇標籤、標題和內文都是「test」的文章,並存成草稿。

tag

為文章上標籤。範例:google blogger tag --title "test drive googlecl" --tag "test_drive",這會為「test drive googlecl」這篇文章加上「test_drive」的標籤。

list

列出部落格中所有文章和該文章的連結。範例:google blogger list --delimiter ": " --blog "PCHome Test",這會列出「PCHome Test」這個部落格(假設你有很多Blogger部落格在同一帳號下)中的所有文章,並以「:」分隔標題和網址。

delete

刪除一篇文章。範例:google blogger delete --title "test drive googlecl",這會刪除你的主要部落格中「test drive googlecl」這篇文章。

Google Blogger 可使用的參數

title

指定文章標題。

blog

指定部落格名稱。

delimiter

指定分隔符號。

draft

將文章儲存為草稿。

tag

指定標籤名稱。

GoogleCL服務之五:Picasa

GoogleCL的Picasa服務可以讓你直接上傳照片、建立相簿或著刪除照片和相簿等。

 基本指令:google picasa create --title "[相簿名稱]" [要上傳的圖片位置]

怕了吧,我用命令列玩Google

▲如果要上傳照片到新相簿,請輸入 google picasa --title "[相簿名稱]" --tags "[相片標籤]" [要上傳的照片位置],這樣就會將你指定的照片上傳到Picasa中你指名的新相簿中,並加上標籤。

怕了吧,我用命令列玩Google

▲等指令跑完後,你就可以在指令的相簿裡找到剛剛上傳好的照片了。

Google Picasa 可執行的工作

create

建立新相簿。範例:google picasa create --title "test" ~/Desktop/xxx.jpg,這會將桌面上xxx.jpg這張照片上傳到Picasa中新建立的「test」相簿。

post

將照片傳到已有的相簿。範例:google picasa post --title "Tours" ~/Desktop/xxx.jpg,這會將桌面上xxx.jpg這張照片上傳到Picasa中的「Tours」相簿。

get

下載相簿裡的照片。範例:google picasa get --title "Tours" --query "SF" ~/Desktop/SFPhotos/,這會將「Tours] 相簿裡,標籤裡有「SF」字樣的照片全部下載到桌面上「SFPhotos」資料夾中。

delete

刪除相簿或照片。範例:google picasa delete --query "nude",將標籤裡有「nude」字樣的照片全都毀屍滅跡。

list

列出照片。範例:google picasa list --title "Tours" --delimiter ": ",這會將「Tours」相簿裡的所有照片和其直接連結都列出來,並以「: 」分隔。

list-albums

列出相簿。範例:google picasa list-albums --delimiter ": ",這會列出你所有的相簿和其直接連結,並以「: 」分隔。

tag

為照片加上標籤。範例:google picasa tag --query "SF" --tags "San Francisco",這會為標籤裡有「SF」字樣的照片加上「San Francisco」這個標籤。

Google Picasa 可使用的參數

title

相簿名稱。

query

搜尋字串。

delimiter

指定分隔符號。

tags

指定標籤名稱。

GoogleCL服務之六:YouTube

使用GoogleCL也可以讓你上傳、刪除和標籤YouTube影片。

 基本指令:google youtube post xxx.avi

怕了吧,我用命令列玩Google

▲如果要上傳影片請用「post」指令,不過要注意的是,GoogleCL不支援中文檔名上傳。請輸入 google youtube post --category [類別名稱] [影片檔位置]就可以上傳影片。

怕了吧,我用命令列玩Google

▲然後進入你自己的YouTube頁面,就可以看到剛剛上傳的影片檔了。

Google YouTube 可執行的工作

post

發布影片。範例:google youtube post --category "Travel, Education" ~/Desktop/xxx.avi,這會將桌面上xxx.avi這個影片上傳到YouTube上,並加入「Travel」和「Education」兩個分類。

delete

刪除影片。範例:google youtube delete --title "xxx",這會刪除你的YouTube帳號裡名為「xxx」的影片。

list

列出影片。範例:google youtube list --tags "travel",這會列出所有標籤為「travel」的影片。

tag

為影片加上標籤。範例:google youtube tag --title "xxx" --tags "porn",為標題為「xxx」的影片加上「porn」標籤。

Google YouTube 可使用的參數

category

指定影片類別。

title

指定影片標題。

tags

指定影片標籤。

delimiter

指定分隔符號。

Mengkuei Hsu
作者

Currently not available.

使用 Facebook 留言
Bea25b1791509faa5d1df5f620b118e8?size=48&default=wavatar
1.  元兒~ (發表於 2010年6月30日 22:22)
GOOGLE真的有夠恐怖......推出了那麼多服務外,竟然還搞出用命令列玩遍天下......無言~

不過要說比較實用一點的話......大概省下等載入網頁圖片、其他東東的時間吧!既然是只使用命令列玩Google的話,電腦等級應該就沒有什麼要求吧......
0bd64122836b416434a5e0d442f2dba8?size=48&default=wavatar
2.  拼拼 (發表於 2010年6月30日 23:06)
好強! GOOGLE能做的事很多!! 這樣某個方面來說這個功能把windows linux化了!! 大部分工作都可以由指令來做(當然這樣比喻有所不妥)
Zion-X
3.  Zion-X (發表於 2010年7月01日 11:20)
這樣在訊號不好的地方就能繼續用Google做事情了!
不用忍受在那邊開網頁啦
seirios
4.  seirios (發表於 2010年7月01日 12:46)
這對需要做大量自動化腳本的使用者來說是利多

google 真是越來越週全了咧
發表回應
謹慎發言,尊重彼此。按此展開留言規則