Чи можна переглядати історію Firefox за допомогою терміналу?


29

Чи є команда показувати історію Firefox з Терміналу?

без необхідності вводити історію Firefox графічно.


Чи можете ви додати причину того, що хочете зробити це?

Чому ви не хочете використовувати сам Firefox?

1
@ user25656: Якщо ви хочете бути швидкими, використовуйте командний рядок. З цього можна зробити статистику. Ви можете шукати за допомогою регулярних виразів (наприклад, використовуючи grep), ви можете створювати графіки тощо. Всередині Firefox все неможливо. Принаймні не без злому аддона.
Ерік

Відповіді:


28

На цій сторінці описано, яку інформацію про користувача зберігає Firefox та де. це те, що допомога Mozilla повинна сказати при перегляді файлів .sqlite.)

У ньому перераховано три типи історії:

  • Закладки та історія перегляду: Файл places.sqlite містить усі ваші закладки Firefox та список усіх веб-сайтів, які ви відвідали ...

  • Історія автозаповнення: файл formhistory.sqlite запам'ятовує, що ви шукали на панелі пошуку Firefox та інформацію, яку ви ввели у форми на веб-сайтах ...

  • Історія завантажень: файл downloads.sqlite запам'ятовує завантажені файли. ...

Як бачите, усі три історії - це не прості текстові файли, а файли баз даних у sqliteформаті.

Один із способів перегляду .sqliteфайлів - за допомогою sqlite3( sudo apt-get install sqlite3).

Відкрийте термінал і cdпапку, що містить те, що ви хочете переглянути. У моєму випадку це є ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlite перелічує файли sqlite.

Виконати sqlite3 places.sqlite(якщо місцями.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 

(Дякую тут .)


Якщо ви хочете здійснити пошук у всіх базах даних та всіх таблицях у цих базах даних за певним терміном (наприклад, stackoverflow.com ), ви можете просто зробити це (як однолінійка): for DATABASE in *sqlite; do echo -e "********\n$DATABASE\n********";for TABLE in $(sqlite3 $DATABASE ".tables"); do echo -e "========\n$TABLE\n========"; sqlite3 $DATABASE "select * from $TABLE;"; done; done | grep 'stackoverflow\.com'або замість grepвикористання lessта пошуку всередині результатів.
Ерік

Щось подібне просто закінчиться моїм кінцем ~/.bash_history, тому я написав сценарій Python (3.5+) за допомогою бібліотеки Click, щоб зробити основний список, сортування та фільтрування набагато простішим. Ви можете отримати це з цього Гісту . Будь ласка, залишайте там коментарі, якщо у вас виникли проблеми.
TheDudeAbides

6

Ось що я закінчив (завдяки попереднім відповідям):

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

1
Насправді найкорисніше рішення-копіювати-вставляти-невербальне. Спасибі.
vmassuchetto

Якщо у вас є кілька профілів Firefox, вам потрібно додати | head -1до findкоманди.
mivk

3

На моєму Xubuntu 13.10 увімкнено

/home/myusername/.mozilla/firefox/nod2ejl8.default/places.sqlite

Або ти міг

find / -name 'places.sqlite

Оскільки це * .sqlite файл, ви можете встановити цей плагін vim та використовувати vim , шукаючи спосіб відкрити файл sqlite з терміналу. Більше інформації можна знайти тут .


1
~/.mozilla/firefox/*.default/places.sqliteмусить працювати
mchid
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.