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

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

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

27
задан 17 February 2014 в 03:36

4 ответа

На этой странице описывается, какая специфичная для пользователя информация хранится в 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 (если вы хотите просмотреть. Вы увидите что-то вроде этого:

$ 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 

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

0
ответ дан 17 February 2014 в 03:36

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

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
0
ответ дан 17 February 2014 в 03:36

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

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

Или вы можете

find / -name 'places.sqlite

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

0
ответ дан 17 February 2014 в 03:36

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

(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 на флешку и запустите первую команду на своем pi или 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, чтобы сделать то же самое.

0
ответ дан 17 April 2020 в 06:20

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

Похожие вопросы: