Ubuntu系统下如何通过命令行按标题或URL关闭Firefox指定标签页
适配环境
Ubuntu 20.04.3 LTS、Mozilla Firefox 93.0
方案1:模拟按键实现(无需修改Firefox启动参数,开箱即用)
第一步:安装依赖工具
sudo apt update && sudo apt install wmctrl xdotool -y
两个工具分别用于窗口控制和键盘事件模拟,均为Ubuntu官方源维护的稳定工具。
第二步:创建自定义命令脚本
将以下内容保存到 /usr/local/bin/close_tab_command:
#!/bin/bash MATCH_KEY="$1" if [ -z "$MATCH_KEY" ]; then echo "用法:close_tab_command <URL或标签页标题关键词>" exit 1 fi # 获取第一个Firefox窗口ID FF_WIN_ID=$(wmctrl -l | grep -i "mozilla firefox" | awk '{print $1}' | head -n 1) if [ -z "$FF_WIN_ID" ]; then echo "未检测到运行中的Firefox窗口" exit 1 fi # 激活目标Firefox窗口 wmctrl -i -a "$FF_WIN_ID" sleep 0.2 # 地址栏输入匹配规则,%为Firefox内置的已打开标签页匹配前缀 xdotool key ctrl+l sleep 0.1 xdotool type "% $MATCH_KEY" sleep 0.2 xdotool key Return sleep 0.2 # 关闭匹配到的标签页 xdotool key ctrl+w
第三步:给脚本加执行权限
sudo chmod +x /usr/local/bin/close_tab_command
调用效果
直接执行目标命令即可:
close_tab_command https://www.olx.com.pk/item/king-side-beds-for-sale-iid-1039955840
注意事项
- 默认关闭第一个匹配到关键词的标签页,要精准匹配可以传入完整URL
- 脚本执行时不要手动操作键盘鼠标,避免焦点偏移导致误操作
- 多开Firefox窗口的场景下,可以修改
grep -i "mozilla firefox"的过滤规则,指定对应窗口的标题特征
方案2:Marionette驱动实现(无模拟操作,更稳定,支持后台执行)
如果需要避免模拟按键的焦点问题,可以用Firefox官方的远程控制接口实现:
第一步:启动Firefox时开启远程控制
关闭所有Firefox进程后,执行以下命令启动:
firefox --marionette
第二步:安装依赖库
pip3 install marionette_driver
第三步:创建处理脚本
将以下内容保存到 /opt/close_firefox_tab.py:
from marionette_driver import marionette import sys if len(sys.argv) < 2: print("用法:close_tab_command <URL或标题关键词>") sys.exit(1) match_key = sys.argv[1] client = marionette.Marionette(host="127.0.0.1", port=2828) client.start_session() all_tabs = client.window_handles for tab in all_tabs: client.switch_to.window(tab) if match_key in client.get_url() or match_key in client.title: client.close() break
第四步:配置命令别名
在~/.bashrc文件末尾添加以下内容:
alias close_tab_command='python3 /opt/close_firefox_tab.py'
执行source ~/.bashrc生效后即可直接调用命令。
内容的提问来源于stack exchange,提问作者Amir saleem
相关产品推荐
相关产品推荐

