You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行下获取Chromium所有打开标签页列表及命令异常排查

如何在Linux命令行获取Chromium已打开标签页的列表?

首先来说说你遇到的问题:你用strings ~/'.config/chromium/Default/Current Session' | grep 'https?:'只得到一个结果,是因为grep默认使用基础正则表达式(BRE),在BRE里?是特殊字符,但必须转义才能生效——你现在的写法是在字面匹配https?:这个字符串(包含问号),而不是匹配http:或https:,自然匹配不到多少结果。

而你用awk '/^https?:/'能成功,是因为awk默认使用扩展正则表达式(ERE),这里的?不需要转义,能正确识别为“匹配前面的s字符0次或1次”,所以能筛选出所有以http:或https:开头的行。

接下来给你几种更靠谱的解决方法:

方法1:修正你的grep命令

如果你还是想用strings+grep的方式,只需要调整grep的正则写法:

  • 用扩展正则表达式模式(加-E参数):
    strings ~/.config/chromium/Default/"Current Session" | grep -E 'https?:'
    
  • 或者在基础正则模式下转义?:
    strings ~/.config/chromium/Default/"Current Session" | grep 'https\?:'
    

不过要注意:Current Session是Chromium运行时的临时锁文件,内容格式杂乱,而且如果Chromium正在运行,这个文件可能被进程锁定,读取到的内容可能不全甚至不准确。

方法2:用Chromium远程调试接口(最可靠)

这是获取当前打开标签页最准确的方式,步骤如下:

  1. 先关闭正在运行的Chromium,然后用远程调试端口重新启动:
    chromium --remote-debugging-port=9222
    
  2. 用curl获取标签页的JSON数据,再用jq解析出URL(需要先安装jq,比如sudo apt install jq):
    curl -s http://localhost:9222/json/list | jq -r '.[].url'
    

这个方法能直接从Chromium进程获取实时的标签页信息,结果准确且格式清晰。

方法3:读取Chromium历史数据库(适合Chromium未运行时)

如果Chromium已经关闭,你可以读取它的SQLite历史数据库来获取最近打开的页面(注意这不是当前打开的标签页,是历史记录):

sqlite3 ~/.config/chromium/Default/History "SELECT url FROM urls WHERE last_visit_time > strftime('%s','now') - 86400;"

上面的命令会查询最近24小时内访问过的URL,你可以调整时间参数(86400是秒数)来匹配你的需求。


内容的提问来源于stack exchange,提问作者MevatlaveKraspek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:50:52