
ターミナルからGUIアプリケーションを起動する方法
GUIからアプリケーションを起動する方法は、アイコンをダブルクリックするか、Dock内のアプリケーションをクリックするだけという方法は誰もが知っています。その方法は数多くあり、どれも比較的高速です。しかし、コマンドラインを頻繁に使用する場合は、そこからMacアプリを直接起動できると便利です。また、ターミナルにはテキストベースモードで動作するアプリケーションが多数ありますが、テキストベースのnanoやvimではなく、Mac OS XのGUIアプリであるTextWranglerでテキストファイルを編集したい場合もあるでしょう。
MacOS X のコマンド ラインから任意のグラフィカル Mac アプリを起動する方法を説明します。これには、GUI アプリを使用してコマンド ラインから特定のファイルを開く方法や、必要に応じてルート アクセスを使用してそれらのファイルを編集して開く方法も含まれます。
コマンドラインからMac OS Xアプリケーションを開く
MacOS GUI アプリを起動するターミナル コマンドは、適切にも「open」と呼ばれており、最も単純な動作は次のとおりです。
open -a ApplicationName
これにより、「ApplicationName」という名前の定義済みアプリが開きます。
しかし、openコマンドはそれよりもはるかに強力です。コマンドプロンプトで「open」と入力するだけで、様々なフラグや構文を使ってコマンドを正しく使用する方法を詳しく説明した基本的なヘルプファイルが開きます。
open コマンドはMac OS Xのすべてのバージョンに存在しますが、Macで実行されているMacOS / Mac OS Xのバージョンによって機能が多少異なります。とはいえ、最近のリリースでは以下のように表示されます。
$ open
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b
Help: Open opens files from a shell.
By default, opens each file using the default application for that file.
If the file is in the form of a URL, the file will be opened as a URL.
Options:
-a Opens with the specified application.
-b Opens with the specified application bundle identifier.
-e Opens with TextEdit.
-t Opens with default text editor.
-f Reads input from standard input and opens with TextEdit.
-F --fresh Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
-R, --reveal Selects in the Finder instead of opening.
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
-n, --new Open a new instance of the application even if one is already running.
-j, --hide Launches the app hidden.
-g, --background Does not bring the application to the foreground.
-h, --header Searches header file locations for headers matching the given filenames, and opens them.
つまり、単純なコマンド構文の例は次のようになります。これは、パス '/file/to/open' にあるファイルを使用して「ApplicationName」を開きます。
open -a ApplicationName /file/to/open
アプリケーション名へのフルパスは必要ありませんが、ファイル名へのフルパスは必要になります。
コマンドライン環境に慣れている方なら使い方は一目瞭然でしょうが、ターミナルを初めて使う方でも、あまり混乱しないでください。使い方は簡単で、後ほど説明します。例えば、TextWranglerを使って/etc/motdを編集して「Message of the Day」を変更したいけれど、コマンドラインエディタのnanoやviが使いたくない場合は、次のように入力します。
$ open -a TextWrangler /etc/motd
これで、使い慣れたGUIでこれらのファイルを編集できます。openは、-aフラグを適用するとアプリケーションを起動することを認識できるので、フルパスを入力する必要はありません。ただし、編集対象のファイルへのフルパスは必要です。
open コマンドは、テキスト ファイルを編集する以外にもさまざまな用途に使用できます。想像力を働かせて創造性を発揮してください。open は、特定の GUI アプリケーションをスケジュールされた時間に起動するなど、シェル スクリプトでそれを使用するシステム管理者にとって特に便利です。
また、名前にスペースが含まれるアプリケーションを起動する場合は、各単語の後にバックスラッシュを追加する必要があります。Adobe Photoshop CS を起動する場合は次のようになります。
$ open -a Adobe\ Photoshop\ CS
コマンドラインからルートとしてGUIアプリを起動する
ファイルを root として編集する必要がある場合は、open コマンドを使用して sudo でファイルを開くこともできます。次に例を示します。
sudo open -a TextEdit /tmp/magicfile
これにより、対象ファイルが目的のアプリケーションでrootユーザーとして起動され、ファイルの編集と変更を行うための完全なroot権限が付与されます。これは、多くのシステムファイルを編集する際に非常に便利です。もちろん、何をしているのかよくわからない場合は、システムファイルを変更しないでください。
頻繁に起動する GUI アプリのシェルエイリアスを作成する
コマンド全体を何度も入力したり、何度も何度も入力するのは面倒ですよね? 頻繁に起動するアプリケーションにエイリアスを割り当てて、作業を簡単にしましょう。先ほども述べたAdobe Photoshopアプリはファイル名が長いので、Mac OS XのデフォルトのBashシェルを使ってエイリアスを設定する方法を以下に説明します。
まず、プロファイルまたは .bash_profile をテキスト エディターで起動します。
$ nano .profile
または
$ open -e .profile
このファイル内の他の内容は無視して (空である可能性もあります)、次の内容を新しい行に追加します。
alias photoshop="open -a Adobe\ Photoshop\ CS"
これによりエイリアスが作成され、「open -a Adobe\ Photoshop CS」コマンドが「photoshop」に短縮されます。.profile を保存すれば、準備完了です!エイリアスコマンドは open コマンドと組み合わせてほぼすべてのコマンドに使用できます。ただし、既に存在しないコマンドのエイリアスを選択するようにしてください。
ご覧のとおり、open コマンドは非常に便利です。Mac OS X でこれ以外の優れた使用法がある場合は、ぜひコメントでお知らせください。