コマンドラインから新しいウィンドウで Chrome ブラウザを開きたい
はじめに
Mac の open
コマンド、便利ですね。
$ open "ファイルやURL"
というコマンドを実行すれば、テキストファイルであれば簡易なエディタが、URL であれば Chrome ブラウザが起動します。
ここで起動する Chrome ブラウザですが、すでに起動している Chrome ブラウザのウィンドウが存在していた場合、ページは新しい タブ として表示されます。
しかし、タブではなく ウィンドウ として起動したい場合にはどうしたら良いでしょうか?
検証環境
$ uname -moi
x86_64 MacBookPro16,1 Darwin
$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --version
Google Chrome 92.0.4515.159
open "URL"
で起動するアプリケーションの実態
例えば open "https://google.jp"
コマンドが実行されたときに起動する Chrome ブラウザアプリケーションの実態はどこにあるでしょうか?
Mac 環境に限って言えばこれは "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
というアプリケーションになります。
ですので、以下のコマンドを実行しても同じ結果となります。
$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" https://google.jp
Chrome アプリケーション起動時の新規ウィンドウ起動オプション
Chorme アプリケーション起動の際に --new-window
オプションを指定し、新規ウィンドウの起動を強制することができます。
$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --new-window https://google.jp
open
コマンドを使う場合も --new-window
オプションを使う
Chrome アプリケーションを --new-window
オプション付きで呼び出すことでタブではなくウィンドウで起動することができました。
今度は open
コマンドで新しいウィンドウの起動を実現する方法について紹介します。
open
コマンドには、起動されるアプリケーションにコマンドライン引数をリレーするための --args
オプションが用意されています。
これを利用します。
$ open -na "Google Chrome" --args --new-window "https://google.jp"
-na "Google Chrome"
というオプションは、 "Google Chrome" アプリケーションを呼び出すというオプションです。--args
オプションを利用する場合は、 -na
によるアプリケーションの指定が必須となるようです。
alias 化する
もっとかんたんに Chrome ブラウザを呼び出せるように alias
を設定しておくと便利です。
$ alias chrome='open -na "Google Chrome" --args'
以下のように使います。
# 普通にページ表示。
# すでにブラウザが起動していた場合には、該当ウィンドウの新しいタブとして表示
$ chrome https://google.jp
# ページ表示。
# すでにブラウザが起動していた場合は、新しいウィンドウとして起動
$ chrome https://google.jp --new-window
ひとこと
話は変わりますが、インタラクティブな操作時、
例えばなにかのコマンド実行の結果、ターミナル上に URL が表示された場合は、以下のコマンドを使って URL を開くことが多いです。
TMUX が導入されている ことが前提となりますが。
ディスカッション
コメント一覧
まだ、コメントがありません