¿Puedo ver el historial de Firefox con el terminal?

¿Puedo ver el historial de Firefox con el terminal?

¿Existe un comando para mostrar el historial de Firefox desde la Terminal?

sin necesidad de ingresar gráficamente el historial de Firefox.

Respuesta1

Esta páginaDescribe qué información específica del usuario almacena Firefox y dónde.(Yesto es lo que la ayuda de Mozilla tiene que decirsobre la visualización de archivos .sqlite.)

Enumera tres tipos de historia:

  • Marcadores e historial de navegación: ellugares.sqliteEl archivo contiene todos sus favoritos de Firefox y la lista de todos los sitios web que ha visitado...

  • Historial de autocompletar: elformhistory.sqliteEl archivo recuerda lo que has buscado en la barra de búsqueda de Firefox y qué información has ingresado en los formularios de los sitios web...

  • Historial de descargas: Eldescargas.sqliteEl archivo recuerda lo que has descargado. ...

Como puede ver, los tres historiales no son simples archivos de texto sino archivos de bases de datos en sqliteformato.

Una forma de ver .sqlitearchivos es mediante sqlite3( sudo apt-get install sqlite3).

Abra una terminal y cdvaya a la carpeta que contiene lo que desea ver. En mi caso, eso es ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqliteenumera los archivos sqlite.

Ejecute sqlite3 places.sqlite(si lugares.sqlite es lo que desea ver). Verás algo como esto:

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

Ahora, hay varias cosas que puedes hacer. (Utilice Ctrl+ Dpara salir de sqlite3).

Por ejemplo, escribir .tablesy presionar Enterme da:

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> 

Para ver el contenido, escriba SELECT * FROM table_name;(donde table_nameestá el nombre de la tabla que desea ver; observe el ;) y presione Enter. Es muy probable que el resultado no sea comprensible, pero eso no es culpa de sqlite3.

Para mostrarles un ejemplo quehaceproporcionar un resultado decente, mire stylish.sqlite(si usa elExtensión con estilo):

$ ~/.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}

Puedes hacer todo con un solo comando no interactivo si sabes exactamente lo que quieres. LeerLa herramienta de línea de comando sqlite3para obtener más información sobre sqlite3.

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

hará lo necesario en el ejemplo dado y teetambién le permitirá ver el resultado en la pantalla:

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

(Gracias debidoaquí.)

Respuesta2

Esto es con lo que terminé (gracias a las respuestas anteriores):

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

Respuesta3

En miXubuntu 13.10esta encendido

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

O podrías

find / -name 'places.sqlite

Ya que es un *.sqlitearchivo, puedes instalar estecomplemento vimy useempuje, busque una manera de abrir unsqlitearchivo desde la terminal. Se puede encontrar más informaciónaquí.

Respuesta4

esta es una versión mejorada del script de @pawamoyhttps://askubuntu.com/a/909222/772891

la diferencia es que mi versión devuelve resultados incluso cuando una base de datos sqlite está bloqueada, es decir, cuando Firefox se está ejecutando:

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

información relacionada