Могу ли я просматривать историю Firefox с помощью терминала?

Есть ли команда для отображения истории Firefox из Терминала?

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

3 ответа

Решение

На этой странице описывается, какая специфичная для пользователя информация хранится в Firefox и где. это то, что говорит помощь Mozilla при просмотре файлов.sqlite.)

В нем перечислены три типа истории:

  • Закладки и история просмотра: файл place.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 

(Спасибо за здесь.)

Вот чем я закончил (благодаря предыдущим ответам):

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

На моем Xubuntu 13.10 он включен

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

Или ты мог

find / -name 'places.sqlite

Так как это файл * .sqlite, вы можете установить этот плагин vim и использовать vim, найти способ открыть файл sqlite из терминала. Более подробную информацию можно найти здесь.

Еще один удобный однострочный текст для копирования и вставки, основанный на всем вышеперечисленном:

(cd ~/.mozilla/firefox; for a in */places.sqlite; do sqlite3 $a "select h.visit_date,p.url from moz_historyvisits as h, moz_places as p where p.id == h.place_id order by h.visit_date"; done)

Если вы работаете в Windows, установите cygwin, WSL, coreutils И sqlite3, а затем:

(cd %APPDATA%/Mozilla/Firefox/Profiles; for a in */places.sqlite; do sqlite3 $a "select h.visit_date,p.url from moz_historyvisits as h, moz_places as p where p.id == h.place_id order by h.visit_date"; done)

... Или просто скопируйте все свои файлы places.sqlite на флеш-накопитель и выполните первую команду на своем пи или Linux с прямой загрузкой USB. (Найдите в дистрибутиве)

Если вы хотите отсортировать или подсчитать его, вы можете изменить SQL-запрос... или вы можете просто добавить следующее в конце приведенной выше командной строки:

Количество: |wc -l

Сортировать по дате: |sort -n

Сортировать по наиболее посещаемому: |cut -d\| -f2|sort|uniq -c|sort -n

Найдите любой текст или подстроку: |grep "youtube"(точнее "http://youtube.com/" или он будет соответствовать любому URL, содержащему "youtube")

Исключить текст: |grep -v "http://youtube"

Подсчитайте посещения Youtube: |grep "http://youtube.com/"|wc -l

Вы можете связать их вместе. |называется трубой. Добро пожаловать в Unix:-D

Если вы хотите открыть все отфильтрованные URL-адреса, добавьте |xargs firefox

Они будут работать нормально, пока список URL-адресов поместится в ОЗУ... если нет, вам нужно будет отредактировать запрос sqlite, чтобы выполнить то же самое.

Другие вопросы по тегам