Kann ich den Firefox-Verlauf mit dem Terminal anzeigen?


28

Gibt es einen Befehl, um den Firefox-Verlauf vom Terminal aus anzuzeigen?

ohne dass Sie den Firefox-Verlauf grafisch eingeben müssen.


Könnten Sie den Grund dafür hinzufügen?

Warum möchten Sie Firefox nicht selbst verwenden?

1
@ user25656: Wenn Sie schnell sein möchten, verwenden Sie die Befehlszeile. Sie können daraus Statistiken erstellen. Sie können mit regulären Ausdrücken suchen (z. B. mit grep), Sie können Diagramme erstellen usw. Alles, was in Firefox nicht möglich ist. Zumindest nicht ohne ein Addon zu hacken.
Erik

Antworten:


27

Diese Seite beschreibt, welche benutzerspezifischen Informationen von Firefox wo gespeichert werden. (Und genau das sagt Mozillas Hilfe zum Anzeigen von .sqlite-Dateien aus.)

Es listet drei Arten von Geschichte auf:

  • Lesezeichen und Browserverlauf: Die Datei places.sqlite enthält alle Ihre Firefox-Lesezeichen und die Liste aller von Ihnen besuchten Websites ...

  • Verlauf der automatischen Vervollständigung : In der Datei formhistory.sqlite wird gespeichert, wonach Sie in der Firefox-Suchleiste gesucht haben und welche Informationen Sie in Formulare auf Websites eingegeben haben.

  • Download-Verlauf: Die downloads.sqlite- Datei merkt sich, was Sie heruntergeladen haben. ...

Wie Sie sehen, sind alle drei Historien keine einfachen Textdateien, sondern Datenbankdateien im sqliteFormat.

Eine Möglichkeit zum Anzeigen von .sqliteDateien ist die Verwendung von sqlite3( sudo apt-get install sqlite3).

Öffnen Sie ein Terminal und cdden Ordner, in dem sich das befindet, was Sie anzeigen möchten. In meinem Fall ist das so ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlite listet die SQLite-Dateien auf.

Führen Sie aus sqlite3 places.sqlite(wenn places.sqlite das ist, was Sie anzeigen möchten). Sie werden so etwas sehen:

$ 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> 

Nun gibt es mehrere Möglichkeiten. (Mit Ctrl+ Dbeenden Sie sqlite3).

Wenn ich zum Beispiel tippe .tablesund drücke, Enterbekomme ich:

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> 

Geben Sie zum Anzeigen des Inhalts SELECT * FROM table_name;(wobei table_nameder Name der Tabelle ist, die Sie anzeigen möchten; beachten Sie die ;) ein und drücken Sie Enter. Es ist sehr wahrscheinlich, dass die Ausgabe nicht verständlich ist, aber das liegt nicht an sqlite3.

Schauen Sie sich an (wenn Sie die Erweiterung Stylish verwenden ) , um ein Beispiel zu zeigen, das eine anständige Ausgabe liefert :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}

Sie können alles in nur einem nicht interaktiven Befehl ausführen, wenn Sie genau wissen, was Sie wollen. Lesen Sie das Befehlszeilentool sqlite3, um mehr über sqlite3 zu erfahren.

$ sqlite3 stylish.sqlite "SELECT * FROM styles;" > ~/Desktop/filename.txt 

wird das Notwendige in dem gegebenen Beispiel tun und teeSie können die Ausgabe auch auf dem Bildschirm sehen:

$ sqlite3 stylish.sqlite "SELECT * FROM styles;" | tee ~/Desktop/filename.txt 

(Danke fällig hier .)


Wenn Sie alle Datenbanken und alle Tabellen in diesen Datenbanken nach einem bestimmten Begriff durchsuchen möchten (z. B. stackoverflow.com ), können Sie Folgendes tun (als Einzeiler ): 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'Oder anstatt die Ergebnisse zu grepverwenden lessund darin zu suchen.
Erik

Etwas wie dieses wird sich am Ende von mir ~/.bash_historyabzeichnen, daher habe ich ein Python (3.5+) -Skript mit der Click- Bibliothek geschrieben, um das grundlegende Auflisten, Sortieren und Filtern viel einfacher zu machen. Sie können es von diesem Gist bekommen . Bitte hinterlassen Sie dort Kommentare, wenn Sie auf Probleme stoßen.
TheDudeAbides

6

Hier ist, was ich am Ende hatte (dank vorheriger Antworten):

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
Eigentlich die nützlichste Lösung zum Kopieren, Einfügen und nicht-ausführlichen Gebrauch. Vielen Dank.
Vmassuchetto

Wenn Sie mehrere Firefox-Profile haben, müssen Sie | head -1den findBefehl hinzufügen .
17.

3

Auf meinem Xubuntu 13.10 ist es an

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

Oder du könntest

find / -name 'places.sqlite

Da es sich um eine * .sqlite- Datei handelt, können Sie dieses vim-Plugin installieren und mit vim nach einer Möglichkeit suchen, eine sqlite- Datei über das Terminal zu öffnen . Weitere Informationen finden Sie hier .


1
~/.mozilla/firefox/*.default/places.sqlitesollte funktionieren
mchid
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.