Help us understand the problem. What is going on with this article?

コマンドラインから GUI を操作する

More than 1 year has passed since last update.

Mac 編

open と qlmanage

open コマンド

ファイル、ディレクトリ(フォルダ)、URL を GUI で開くことが出来るコマンドです。Finder でいうダブルクリック操作に相当します。

  • オプション

主なオプションを挙げておきます。他にもまだあります。

オプション 意味 備考
-a application ファイルを開くアプリケーション(パス名)を指定 $ open -a Emacs file.txt
-e file テキストエディットで開く -a TextEdit.app file に相当
-t file 標準のテキストエディタで開く LaunchServices で標準の変更が可能
-n application すでに開かれていれば多重起動する 10.5 〜 10.6 のみ利用可能
  • 使用例

オプション無しで、open コマンドに引数を渡せば、それをシステムで関連付けされたアプリケーションで開くことが出来ます。ダブルクリックのコマンドラインバージョンです。

$ open dir

ディレクトリ dir を開きます。

$ open .

カレントディレクトリ(.)を開きます。

$ open exam2013.pdf

プレビュー.app で開きます。

qlmanage コマンド

さて、open コマンドはダブルクリック操作を行えるコマンドでした。「がっつり見たいわけじゃなく少し確認したい」。そんなことを行える Mac の操作がありましたね。QuickLook というやつです。それをコマンドライン上から扱えたら便利ですよね。

  • オプション

主なオプションを挙げておきます。他にもまだあります。

オプション 意味
-r Generators list を強制的にリロードする
-r cache サムネイルキャッシュの削除
-p file file を QuickLook でプレビューする

おそらく多用するのは -p オプションだと思います。

  • 使用例

GUI でいうところのカーソルを合わせて Space キーを押す操作です。

$ qlmanage -p file.txt

実行すると QuickLook で file.txt を閲覧できます。しかし、終了するとデバッグ用の文字が出力されます。

$ qlmanage -p file.txt
Testing Quick Look preview with files:
    file.txt

これは、もともとこのコマンドが QuickLook プラグイン作成者がデバッグや作成の補助に使用するためのようです。

使い勝手を良くする

先にソースを載せます。

op
function op() {
    if [ -z "$1" ]; then
        open .
    else
        open "$@"
    fi
}

やっていることは非常に単純です。引数がなければカレントディレクトリを開いて、ある場合はそれを開くというものです。
もうひとつ、QuickLook です。

alias.sh
alias ql='qlmanage -p "$@" >& /dev/null'

~/.bashrc に書けばいいでしょう。qlmanage コマンドでプレビューします。その際に出力されるデバック情報を捨てています。ガッツリ見るなら op 少し見るなら ql でコマンドライン操作が使いやすくなるでしょう。

その他の OS 編

display コマンド

その他の OS で使用できる GUI 操作コマンドといえば、display コマンドです。ImageMagickから入手できます。ImageMagick は X Window システムでの画像の表示や対話的な画像操作を行なうパッケージです。
幸運にも Mac 系でも使用できるのですが、Mac の場合ここでダウンロード・インストールするよりも、パッケージを利用した方がいいです。
http://cactuslab.com/imagemagick/

  • オプション

あまりにも多いので display -h してください。

  • 使用例

これで画像表示が行えます。

$ display picture.jpg

=========

その他 OS で利用する際にディレクトリを操るコマンドがないのが痛いところです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした