如何从终端关闭新的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
的窗口(不太可能,但仍然如此)。
因此,“防水”应该通过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
的输出)
要关闭窗口(也有许多打开的选项卡),请使用该命令:
wmctrl -a firefox; xdotool key Ctrl+Shift+w
请注意 ,必须安装wmctrl
和xdotool
:
$ sudo apt-get install wmctrl xdotool
另请参阅答案: 使用终端关闭当前选项卡firefox 。
我的答案有点修改,因为Ctrl + Shift + w关闭了一个firefox窗口。
对于所有快捷方式,请参阅Firefox键盘快捷方式 。