我在 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++关闭Shift了w一个firefox窗口。
要查看所有快捷方式,请参阅Firefox 键盘快捷键。