如何从终端关闭新的 Firefox 窗口?

如何从终端关闭新的 Firefox 窗口?

我在 Ubuntu 14.04 中运行了多个 Firefox 实例。如何从终端关闭最近打开的窗口/实例?

我尝试使用相关问题的答案中定义的 cfct 别名,但没有效果。

答案1

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
    
  • 提取行中的第一个字符串(即窗口 -id):

    awk '{ print $1 }'
    

命令:

wmctrl -ic

然后将通过其 id (优雅地)杀死最新的 Firefox 窗口。

或者更可靠的是:

虽然上述命令在几乎所有情况下都能很好地工作,但发生名称冲突的可能性很小,例如,如果存在另一个名称中带有“Mozilla Firefox”的窗口,但不是来自的窗口Firefox(不太可能,但仍然如此)。

因此,应该“防水”的是识别窗口列表中的窗口(使用wmctrl -lp进程号,而不是firefox窗口名称中的字符串:

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

答案2

要关闭窗口(也关闭许多打开的选项卡),请使用以下命令:

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

注意wmctrl并且xdotool必须安装:

$ sudo apt-get install wmctrl xdotool

另请参阅该答案:使用终端关闭当前选项卡 Firefox

我的答案稍微修改了一下,因为Ctrl++关闭Shiftw一个firefox窗口。


要查看所有快捷方式,请参阅Firefox 键盘快捷键

相关内容