~Rami ₪ MANUALS
רמי
SUBJECT: Buku: Консольная база данных веб-закладок с поддержкой шифрования
AUTHOR: Rami Rosenfeld
DATE: 18/01/25
TIME: 01.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, web, bookmarks, buku
Buku: Консольная база данных веб-закладок с поддержкой шифрования
INTRO
Давно искал нечто подобное для своих консольных задач. Если резюмировать, менеджер Buku - stand-alone база данных, позволяющая импортировать/экспортировать, безопасно хранить ваши веб-закладки, создавать новые, редактировать их, открывать в браузере, а также осуществлять расширенный поиск по содержимому (включая тэги и т.п.).
Основные функции:
- Store bookmarks with auto-fetched title, tags and description;
- Auto-import from Firefox, Google Chrome, Chromium, Vivaldi, and MS Edge;
- Open bookmarks and search results in browser;
- Shorten, expand URLs;
- Browse cached page from the Wayback Machine;
- Text editor integration;
- Lightweight, clean interface, custom colors;
- Powerful search options (regex, substring...);
- Continuous search with on the fly mode switch;
- Portable, merge-able database to sync between systems;
- Import/export bookmarks from/to HTML, XBEL, Markdown or Orgfile;
- Smart tag management using redirection (>>, >, <<);
- Multithreaded full DB refresh;
- Manual encryption support;
- Shell completion scripts, man page with handy examples.
NOTE
- Установка
Инсталляция пакета производится из стандартных репозиториев:
dnf install buku
- Алиасы для .bashrc
Использовать Buku очень просто. Поэтому, вопреки моей традиции, сложившейся при создании руководств, вначале я приведу несколько алиасов, составленных для .bashrc, а уж затем на примерах продемонстрирую основные принципы работы. Обратите внимание на используемые ключи:
alias edbkm='buku --write'
alias rmbkm='buku --delete'
alias sebkm='buku --sany'
alias stbkm='buku --stag'
alias enbkm='buku --lock'
alias debkm='buku --unlock'
- Импорт базы данных закладок из backup-файла браузера
buku --import bookmarks_backup.json
Ключ автоимпорта данных из браузеров:
--ai
Примечание. Я никогда не создаю тэги для закладок, хранящихся в браузере, т.к. последние строго рассортированы мною по соответствующим папкам. Кроме того (еще одна хорошая привычка!) - никогда не использую недопустимые символы, включая пробелы, в именах папок в БД закладок браузера. Это весьма сильно помогло мне в следующем случае: при операции импорта Buku последовательно задает пользователю несколько вопросов относительно опций переноса данных и (при согласии) - создает тэги из имен папок, в которых ранее хранились закладки.
Таким образом, если бы я имел в браузерной БД папки с пробелами в именах, например "Red Hat", то Buku создал бы к каждой ссылке сразу два некорректных тэга: "red" и "hat". Но, поскольку исходный каталог назывался у меня правильно ("redhat"), то и новые тэги сгенерировались, как я того и ожидал. Будьте внимательны!
- Расположение базы данных по умолчанию
~/.local/share/buku
Примечание: БД является переносимой.
- Добавление новой ссылки в базу данных
edbkm
При исполнении данного алиаса, откроется редактор по умолчанию, а в нем - шаблон новой записи в БД. Заполните соответствующие поля:
# Lines beginning with "#" will be stripped. # Add URL in next line (single line). Добавьте URL на следующей строке: https://test.org # Add TITLE in next line (single line). Leave blank to web fetch, "-" for no title. Test Site. Добавьте название закладки на следующей строке: # Add comma-separated TAGS in next line (single line). Добавьте тэги (через запятую) на следующей строке: test, my # Add COMMENTS in next line(s). Leave blank to web fetch, "-" for no comments. Добавьте комментарии на следующей строке: Any Comments
ВАЖНО! При внесении данных вручную, Buku автоматически проверяет соединение с введенным URL. Если такого не существует (в нашем случае - это сайт test.org) - возникнет следующее сообщение:
[ERROR] (host='test.org', port=443): Max retries exceeded. Failed to establish a new connection
- Ключи поиска
--sany
--sall
--deep
--sreg
--stag
Подробнее см. man buku.
- Поиск по базе данных
sebkm test
1. Quad9 Test [239] > https://on.quad9.net/ # tests 2. IPv6 Test [240] > https://test-ipv6.com/ # tests 3. Test Site [316] > https://test.org + Any Comments # my,test
- Поиск по тэгам
stbkm test
1. Test Site [316] > https://test.org + Any Comments # my,test
- Редактирование существующей закладки (по индексу в базе данных)
edbkm 316
316. Test Site > https://test.org + Any Comments # my,test
- Защита
Шифрование базы данных:
enbkm
Password: Password: File encrypted
Проверка успешности шифрования:
edbkm
[ERROR] Unlock database first
Расшифровывание базы данных:
debkm
Password: File decrypted
ВАЖНО! Шифрование осуществляется ТОЛЬКО ВРУЧНУЮ. Если вы расшифровали БД, затем использовали ее, то далее необходимо повторить операцию шифрования, т.е. защитить ее заново. Обратите также внимание на задание количества проходов (см. подраздел "Encryption Options" в man buku).
- Удаление закладки (по индексу в базе данных)
rmbkm 316
316. Test Site > https://test.org + Any Comments # my,test Delete this bookmark? (y/n): y Index 316 deleted
Дополнительно см.: man buku
🄯 Rami Rosenfeld, 2025. GNU FDL 1.3.