Как создать QR‑коды в Linux с помощью qrencode

QR‑код — это двумерный штрихкод, который хранит данные и считывается цифровыми устройствами, включая смартфоны. Их часто используют для оплаты, обмена паролями Wi‑Fi, передачи контактов и ссылок. В Linux удобнее всего генерировать QR‑коды через утилиту qrencode — лёгкую, надёжную и гибкую в командной строке.
Что вы получите из этого руководства
- Пошаговая установка qrencode для популярных дистрибутивов Linux.
- Полный обзор основных опций с понятными примерами команд.
- Шаблоны для URL, SMS, vCard, Wi‑Fi, email и WhatsApp.
- Советы по проверке, тест‑кейсы, чек‑листы ролей, безопасность и совместимость.
Установка qrencode на Linux
Зависит от дистрибутива. Выполните команду, соответствующую вашей системе в терминале:
- Ubuntu и производные:
sudo apt install qrencode- Fedora:
sudo dnf install qrencode- Arch Linux и Manjaro:
sudo pacman -S qrencode- openSUSE:
sudo zypper install qrencodeПосле установки можно увидеть справку и доступные опции:
qrencode --help
ALT для изображения: Снимок экрана с выводом опций qrencode в терминале.
Основные опции qrencode и что они делают
Коротко о ключевых опциях, которые понадобятся чаще всего:
- -o filename — имя выходного файла для сгенерированного QR‑кода.
- -s size — размер модуля (точки) в пикселях. По умолчанию ~3; увеличивайте для печати или детальных изображений.
- -l error_correction_level — уровень коррекции ошибок: L, M, Q, H (от малы к большому). Чем выше — тем надёжнее восстановление, но тем больше занимаемый объём данных.
- -t filetype — формат выходного файла (png по умолчанию). Могут быть svg, eps и другие, если поддерживаются вашей сборкой.
Пояснение терминов: модуль — одна чёрная/белая клетка QR‑кода; уровень коррекции ошибок определяет устойчивость к повреждениям.
Быстрая команда для текста
qrencode -s 9 -l H -o "QR-code.png" "This is a test QR code!"Эта команда создаёт PNG с именем QR‑code.png, модулем 9px и высокой коррекцией H. Файл сохраняется в текущей директории (обычно домашняя папка если вы там работали).
Проверка сгенерированного QR‑кода
- Откройте изображение на рабочем столе Linux (двойной клик в файловом менеджере).
- Откройте сканер QR на смартфоне — встроенный сканер на iPhone или приложение на Android.
- Наведите камеру так, чтобы QR‑код оказался в рамке сканера.
- Сверьте увиденное содержимое с тем, что вы генерировали.
Если код не совпадает, повторите генерацию и проверьте, что кавычки и спецсимволы корректно экранированы в командной строке.
Примеры кодов и шаблоны
Ниже — типичные сценарии и готовые команды. Замените плейсхолдеры на свои значения.
URL
qrencode -s 9 -l H -o "URL.png" "https://www.example.com"SMS
qrencode -s 9 -l H -o "SMS.png" "SMSTO:+XX-XXXXXXXXXX:Hi"Если оставить текст после двоеточия пустым, при сканировании приложение предложит ввести сообщение вручную.
vCard (контактная карточка)
Содержимое vCard лучше подготовить в текстовом файле, затем перенаправить в qrencode:
Файл vcard.txt:
BEGIN:VCARD
VERSION:3.0
N:Lastname;Firstname
FN:Display Name
ORG:Organization
TITLE:Title
TEL;TYPE=voice,work,pref:+1234567890
EMAIL:email@example.com
END:VCARDКоманда генерации:
qrencode -s 9 -l H -o "contact_card.png" < vcard.txtWi‑Fi
qrencode -s 9 -l H -o "WiFi-details.png" "WIFI:S:MySSID;T:WPA;P:MyPassword;;"Замените MySSID и MyPassword. Если тип сети WEP — укажите T:WEP. Современные устройства поддерживают автоматическое подключение при сканировании.
qrencode -s 9 -l H -o "email.png" "mailto:recipient@example.com?subject=Subject&body=Body"qrencode -s 9 -l H -o "WhatsApp-Me.png" "https://wa.me/1234567890"Добавление событий календаря (ICS)
Для совместимости создайте .ics файл и затем закодируйте его содержимое через перенаправление:
qrencode -s 6 -l M -o "event.png" < event.icsДополнительные приёмы и советы
- Формат: используйте SVG для масштабируемой графики (печать, плакаты), PNG — для цифрового обмена.
- Цвета: qrencode по умолчанию генерирует чёрно‑белые коды. Для цветных вариантов используйте svg и редактирование в векторном редакторе или комбинируйте с imagemagick.
- Логотип в центре: уменьшите размер модулей и вставьте логотип сторонним инструментом (ImageMagick). Учтите, что логотип частично перекрывает код — увеличьте уровень коррекции до H.
- Печать: для печати на больших носителях увеличивайте модуль (-s) и тестируйте считываемость перед тиражированием.
Критерии приёмки
- QR‑код открывает ожидаемый URL, отображает текст или предлагает отправку SMS.
- Код корректно считывается минимум в двух разных приложениях (например, встроенный сканер iPhone и одно Android‑приложение).
- Для Wi‑Fi кода подключение к сети проходит без ручного ввода пароля.
- Для vCard контакт импортируется с корректными полями имени и телефона.
Тест‑кейсы и сценарии приёмки
- Генерация и сканирование базового текста.
- Ожидаемый результат: текст совпадает.
- Генерация URL: клик/открытие через мобильный браузер.
- Ожидаемый результат: открывается корректный сайт без ошибок SSL.
- Wi‑Fi: сканирование должно предлагать подключение и автоматически заполнять данные сети.
- vCard: импорт в адресную книгу телефона с корректными полями.
Чек‑листы по ролям
Администратор сети:
- Проверить шифрование Wi‑Fi (WPA2/WPA3).
- Не включать в QR пароль в открытом доступе при публичном размещении.
Мерчандайзер/организатор события:
- Тестировать код в разных условиях освещения.
- Печать пробного экземпляра с финальной печатной машиной.
Разработчик/инженер DevOps:
- Автоматизировать генерацию через скрипты (bash/Makefile).
- Хранить шаблоны vCard/Wi‑Fi как конфиг‑шаблоны.
Безопасность и конфиденциальность
- QR‑код — открытый по своей природе: любой, кто видит изображение, получает данные.
- Не размещайте QR‑коды с паролями или конфиденциальной информацией в публичных местах.
- Для временного доступа используйте одноразовые пароли или изменяйте пароль после мероприятия.
- При автоматизации генерируйте файлы во временных директориях и корректно очищайте логи от секретов.
Совместимость и ограничения
- Большинство современных камер смартфонов распознают стандартные QR‑коды. Старые устройства могут не поддерживать URL‑префиксы или специфичные схемы (wa.me, SMSTO).
- Для печати и крупномасштабных носителей используйте векторные форматы (SVG, EPS).
- Очень длинные тексты увеличивают плотность QR‑кода — может потребоваться увеличить размер модуля или разбить данные на несколько кодов.
Когда qrencode не подойдёт (альтернативы)
- Нужна динамическая аналитика кликов по QR‑коду — используйте редирект через короткий URL с учётом статистики.
- Требуется централизованное управление и массовая смена целей QR — применяйте облачные генераторы с шаблонами и учётом безопасности.
- Требуется высокий уровень брендинга и дизайн — используйте графические инструменты после генерации QR или платные сервисы со встроенной поддержкой логотипов.
Быстрые сценарии автоматизации (шаблоны)
Простой bash‑скрипт для генерации набора кодов из файла urls.txt:
#!/bin/bash
mkdir -p qr_out
while IFS= read -r url; do
name=$(echo "$url" | sed 's/[^a-zA-Z0-9]/_/g')
qrencode -s 8 -l M -o "qr_out/${name}.png" "$url"
done < urls.txtЭто шаблон для пакетной генерации URL‑кодов.
Ментальные модели и эвристики
- Чем больше данных — тем плотнее код: увеличивайте размер модуля или выбирайте ссылку‑редирект.
- Логотипы и наложения требуют более высокого уровня коррекции (H).
- Для печати всегда сначала делайте пробную распечатку и сканируйте с телефона.
Decision‑tree для выбора параметров
flowchart TD
A[Нужно ли печатать?] -->|Да| B[Использовать SVG или увеличить -s]
A -->|Нет| C[PNG достаточно]
B --> D[Есть логотип?]
D -->|Да| E[Установить -l H и протестировать]
D -->|Нет| F[Стандартная генерация]
C --> G[Длинный текст?]
G -->|Да| H[Разбить на несколько кодов или использовать короткий URL]
G -->|Нет| FЧасто задаваемые вопросы
Как установить qrencode на Ubuntu?
В терминале выполните:
sudo apt install qrencodeМожно ли вставить логотип в центр QR‑кода?
Да, но рекомендуется повысить уровень коррекции до H и протестировать на разных устройствах. Для вставки используйте внешние инструменты (ImageMagick, Inkscape).
Как закодировать Wi‑Fi данные?
qrencode -s 9 -l H -o "WiFi-details.png" "WIFI:S:SSID;T:WPA;P:Password;;"Заключение
qrencode — простой и надёжный инструмент для генерации QR‑кодов в Linux. Он идеально подходит для автоматизации, пакетной обработки и интеграции в скрипты. При подготовке QR‑кодов учитывайте назначение (печать или экран), уровень коррекции ошибок и безопасность перед публикацией. Тестируйте каждый код на нескольких устройствах перед массовым использованием.
Сохраните шаблоны vCard и Wi‑Fi в репозитории конфигураций и автоматизируйте генерацию в CI/CD, если используете QR‑коды в продуктах или на мероприятиях.
Источники и примечания
- Используйте qrencode –help для получения полного списка опций и ограничений вашей версии.
Похожие материалы
Блокировка и разблокировка контактов в Gmail
umask в Linux — как задать права по умолчанию
HomeKit через NFC: управление домом одним прикосновением
Скриншот на Apple Watch — как сделать и поделиться
GNU nano на Linux: установка и руководство