Могу ли я просматривать историю 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, чтобы выполнить то же самое.