Puis-je voir l'historique de Firefox avec le terminal?

29

Existe-t-il une commande pour afficher l'historique de Firefox depuis le terminal?

sans avoir besoin de saisir graphiquement l'historique de Firefox.

nux
la source
Pourriez-vous ajouter la raison de vouloir le faire?
Pourquoi ne voulez-vous pas utiliser Firefox lui-même?
1
@ user25656: Si vous voulez être rapide, utilisez la ligne de commande. Vous pouvez en faire des statistiques. Vous pouvez rechercher avec des expressions régulières (par exemple en utilisant grep), vous pouvez créer des graphiques, etc. Tout n'est pas possible à l'intérieur de Firefox. Du moins pas sans pirater un addon.
erik

Réponses:

28

Cette page décrit quelles informations spécifiques à l'utilisateur sont stockées par Firefox et où. (Et c'est ce que l'aide de Mozilla a à dire sur l'affichage des fichiers .sqlite.)

Il répertorie trois types d'historique:

  • Signets et historique de navigation: Le fichier places.sqlite contient tous vos signets Firefox et la liste de tous les sites Web que vous avez visités ...

  • Historique de saisie semi-automatique: le fichier formhistory.sqlite se souvient de ce que vous avez recherché dans la barre de recherche de Firefox et des informations que vous avez saisies dans les formulaires sur les sites Web ...

  • Historique des téléchargements: le fichier downloads.sqlite se souvient de ce que vous avez téléchargé. ...

Comme vous pouvez le voir, les trois historiques ne sont pas de simples fichiers texte mais des fichiers de base de données au sqliteformat.

Une façon d'afficher les .sqlitefichiers est d'utiliser sqlite3( sudo apt-get install sqlite3).

Ouvrez un terminal et cdle dossier contenant ce que vous souhaitez afficher. Dans mon cas, c'est ~/.mozilla/firefox/w4wcp85s.default.

ls *.sqlite répertorie les fichiers sqlite.

Exécutez sqlite3 places.sqlite(si places.sqlite est ce que vous voulez voir). Vous verrez quelque chose comme ça:

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

Maintenant, vous pouvez faire plusieurs choses. (Utilisez Ctrl+ Dpour quitter sqlite3).

Par exemple, taper .tableset appuyer Enterme donne:

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> 

Pour afficher le contenu, tapez SELECT * FROM table_name;(où table_nameest le nom de la table que vous souhaitez afficher; notez le ;) et appuyez sur Enter. Il est très probable que la sortie ne soit pas compréhensible, mais ce n'est pas la faute de sqlite3.

Pour vous montrer un exemple qui ne fournir une sortie décente, regardez stylish.sqlite(si vous utilisez l' extension de style ):

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

Vous pouvez tout faire en une seule commande non interactive si vous savez exactement ce que vous voulez. Lisez l' outil de ligne de commande sqlite3 pour en savoir plus sur sqlite3.

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

fera le nécessaire dans l'exemple donné et teevous permettra également de voir la sortie à l'écran:

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

(Merci dû ici .)

Communauté
la source
Si vous souhaitez rechercher dans toutes les bases de données et toutes les tables de ces bases de données un terme spécifique (par exemple, stackoverflow.com ), vous pouvez simplement le faire (en une ligne): 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'Ou au lieu d' greputiliser lesset de rechercher dans les résultats.
erik
Quelque chose comme ça va juste se dérouler à la fin de mon ~/.bash_history, j'ai donc écrit un script Python (3.5+) en utilisant la bibliothèque Click pour rendre la liste, le tri et le filtrage de base beaucoup plus faciles. Vous pouvez l'obtenir à partir de ce Gist . Veuillez y laisser des commentaires si vous rencontrez des problèmes.
TheDudeAbides
6

Voici ce que je me suis retrouvé (grâce aux réponses précédentes):

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
pawamoy
la source
1
En fait, la solution la plus utile de copier-coller-non verbeux. Merci.
vmassuchetto
Si vous avez plusieurs profils Firefox, vous devez ajouter | head -1à la findcommande.
mivk
3

Sur mon Xubuntu 13.10 c'est allumé

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

Ou vous pourriez

find / -name 'places.sqlite

Puisqu'il s'agit d'un fichier * .sqlite , vous pouvez installer ce plugin vim et utiliser vim , rechercher un moyen d'ouvrir un fichier sqlite à partir du terminal. Plus d'informations peuvent être trouvées ici .

Lynob
la source
1
~/.mozilla/firefox/*.default/places.sqlitedevrait fonctionner
mchid