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

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

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

要创建一个命令,找到由Firefox创建的最后一个窗口的id (并关闭它),您需要安装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(gracefuly)杀死最近的Firefox窗口。

或者更可靠:

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

因此,“防水”应该通过firefoxpid识别窗口列表中的窗口(使用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的输出)

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

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

请注意 ,必须安装wmctrlxdotool

 $ sudo apt-get install wmctrl xdotool 

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

我的答案有点修改,因为Ctrl + Shift + w关闭了一个firefox窗口。


对于所有快捷方式,请参阅Firefox键盘快捷方式 。