是否有命令可以从终端显示 Firefox 历史记录?
无需以图形方式输入 Firefox 历史记录。
答案1
这一页描述 Firefox 存储了哪些用户特定信息以及存储在哪里。(和Mozilla 的帮助是这么说的查看.sqlite文件。
它列出了三种类型的历史:
书签和浏览历史记录:地点.sqlite文件包含您的所有 Firefox 书签以及您访问过的所有网站的列表...
自动完成历史记录:表单历史.sqlite文件会记住您在 Firefox 搜索栏中搜索的内容以及您在网站表单中输入的信息……
下载历史记录:下载.sqlite文件会记住您已下载的内容。......
可以看出,这三个历史记录都不是简单的文本文件,而是数据库文件sqlite
格式。
查看.sqlite
文件的一种方法是使用sqlite3
( sudo apt-get install sqlite3
)。
打开终端并cd
进入包含要查看内容的文件夹。 在我的情况下,即~/.mozilla/firefox/w4wcp85s.default
。
ls *.sqlite
列出 sqlite 文件。
运行sqlite3 places.sqlite
(如果您想要查看的是 places.sqlite)。您将看到类似以下内容:
$ cd ~/.mozilla/firefox/w4wcp85s.default
$ sqlite3 places.sqlite
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
现在,您可以做几件事。(使用Ctrl+D退出 sqlite3)。
例如,键入.tables
并按下Enter可得到:
sqlite> .tables
moz_anno_attributes moz_favicons moz_items_annos
moz_annos moz_historyvisits moz_keywords
moz_bookmarks moz_hosts moz_places
moz_bookmarks_roots moz_inputhistory
sqlite>
要查看内容,请键入SELECT * FROM table_name;
(其中table_name
是要查看的表的名称;请注意;
),然后按Enter。输出很可能无法理解,但这不是 sqlite3 的错误。
举个例子做提供不错的输出,看看stylish.sqlite
(如果你使用时尚延伸):
$ ~/.mozilla/firefox/w4wcp85s.default $ sqlite3 stylish.sqlite
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
style_meta styles
sqlite> SELECT * FROM styles;
6||||YouTube|/* AGENT_SHEET */
/* ▓▓ NIGHTSHIFT - eye care: ▓▓
▓▓_http://userstyles.org/styles/18192/nightshift-eye-care_▓▓ */
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document regexp("https?://www.youtube.com/.*") {
body,html {min-height: 100%!important; }
html, body{background-color:#111!important}
如果你确切知道自己想要什么,那么只需一个非交互式命令就可以完成所有操作。阅读sqlite3 命令行工具有关 sqlite3 的更多信息。
$ sqlite3 stylish.sqlite "SELECT * FROM styles;" > ~/Desktop/filename.txt
将在给出的示例中完成必要的操作,并tee
让您在屏幕上看到输出:
$ sqlite3 stylish.sqlite "SELECT * FROM styles;" | tee ~/Desktop/filename.txt
(感谢这里。
答案2
这是我最终得到的结果(感谢之前的回答):
db=$(find "${HOME}/.mozilla/firefox/" -name "places.sqlite")
query="select p.url from moz_historyvisits as h, moz_places as p where substr(h.visit_date, 0, 11) >= strftime('%s', date('now')) and p.id == h.place_id order by h.visit_date;"
todays_urls=$(sqlite3 "${db}" "${query}")
echo "${todays_urls}" > todays_urls
答案3
答案4
这是@pawamoy 脚本的改进版本https://askubuntu.com/a/909222/772891
不同之处在于,即使 SQLite DB 被锁定,即 Firefox 运行时,我的版本也会返回结果:
db=$(find "${HOME}/.mozilla/firefox/" -name "places.sqlite" | head -1)
query="select p.url from moz_historyvisits as h, moz_places as p where substr(h.visit_date, 0, 11) >= strftime('%s', date('now')) and p.id == h.place_id order by h.visit_date;"
todays_urls=$(sqlite3 "file://${db}?immutable=1" "${query}")
echo "${todays_urls}" > todays_urls