web-dev-qa-db-ja.com

ターミナルから新しいFirefoxウィンドウを閉じるにはどうすればよいですか?

Ubuntu 14.04で実行されているFirefoxの複数のインスタンスがあります。ターミナルから最後に開いたウィンドウ/インスタンスを閉じるにはどうすればよいですか?

関連する質問への回答で定義されたcfctエイリアス を使用しようとしましたが、機能しませんでした。

8
sgu

idによって作成された最後のウィンドウのFirefoxを検索するコマンドを作成するには(そしてそれを閉じるには)、wmctrlをインストールする必要があります。

Sudo apt-get install wmctrl

コマンド

次に、コマンドを使用します。

wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"


説明:

wmctrl -l

すべてのウィンドウを一覧表示しますが、コマンドの重要な特性は、ウィンドウを一覧表示することです作成された順に

したがって:

wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'

意志:

  • すべてのウィンドウをリストします。

    wmctrl -l
    
  • 名前に「Mozilla Firefox」が含まれているもの(行)を見つけます。

    grep 'Mozilla Firefox'
    
  • 最後のもの(最後に作成されたものでもあります)を見つけます。

    tail -1
    
  • 行の最初の文字列(window -id)を抽出します。

    awk '{ print $1 }'
    

コマンド:

wmctrl -ic

次に、そのIDで最新のFirefoxウィンドウを強制終了します(gracefuly)。

またはさらに信頼性の高い:

上記のコマンドは事実上すべての場合にうまく機能しますが、isがあります。名前に「Mozilla Firefox」が含まれる別のウィンドウがありますが、Firefoxからのウィンドウではありません(おそらくそうではありませんが)。

したがって、「防水」として機能するのは、firefoxの代わりにpidでウィンドウリスト内のウィンドウを識別することです(wmctrl -lpを使用)ウィンドウ名の文字列:

wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"

ご覧のとおり、このコマンドでは、

wmctrl -l | grep 'Mozilla Firefox'

「Mozilla Firefox」を含む行の作成は、次のものに置き換えられます。

wmctrl -lp | grep "$(pgrep firefox)"

firefoxのpidを含む行を生成します(pgrep firefoxの出力として)

13
Jacob Vlijm

ウィンドウを閉じる(また、多くのタブを開いている)には、次のコマンドを使用します。

wmctrl -a firefox; xdotool key Ctrl+Shift+w

注意wmctrlおよびxdotoolをインストールする必要があります。

$ Sudo apt-get install wmctrl xdotool

その答えも参照してください: ターミナルを使用して現在のタブFirefoxを閉じる

私の答えは少し変更されています、なぜなら Ctrl+Shift+w Firefoxウィンドウを閉じます。


すべてのショートカットについては、 Firefoxのキーボードショートカット を参照してください。

1
chaos