Гид по технологиям

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

6 min read Linux Обновлено 13 Apr 2026
Создать QR‑коды в Linux с qrencode
Создать QR‑коды в Linux с qrencode

сканирование QR-кода, сгенерированного в Linux

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

Опции qrencode, скриншот справки

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‑кода

  1. Откройте изображение на рабочем столе Linux (двойной клик в файловом менеджере).
  2. Откройте сканер QR на смартфоне — встроенный сканер на iPhone или приложение на Android.
  3. Наведите камеру так, чтобы QR‑код оказался в рамке сканера.
  4. Сверьте увиденное содержимое с тем, что вы генерировали.

Если код не совпадает, повторите генерацию и проверьте, что кавычки и спецсимволы корректно экранированы в командной строке.

Примеры кодов и шаблоны

Ниже — типичные сценарии и готовые команды. Замените плейсхолдеры на свои значения.

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.txt

Wi‑Fi

qrencode -s 9 -l H -o "WiFi-details.png" "WIFI:S:MySSID;T:WPA;P:MyPassword;;"

Замените MySSID и MyPassword. Если тип сети WEP — укажите T:WEP. Современные устройства поддерживают автоматическое подключение при сканировании.

Email

qrencode -s 9 -l H -o "email.png" "mailto:recipient@example.com?subject=Subject&body=Body"

WhatsApp

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 контакт импортируется с корректными полями имени и телефона.

Тест‑кейсы и сценарии приёмки

  1. Генерация и сканирование базового текста.
    • Ожидаемый результат: текст совпадает.
  2. Генерация URL: клик/открытие через мобильный браузер.
    • Ожидаемый результат: открывается корректный сайт без ошибок SSL.
  3. Wi‑Fi: сканирование должно предлагать подключение и автоматически заполнять данные сети.
  4. 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 для получения полного списка опций и ограничений вашей версии.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Блокировка и разблокировка контактов в Gmail
Почта

Блокировка и разблокировка контактов в Gmail

umask в Linux — как задать права по умолчанию
Linux

umask в Linux — как задать права по умолчанию

HomeKit через NFC: управление домом одним прикосновением
Smart Home

HomeKit через NFC: управление домом одним прикосновением

Скриншот на Apple Watch — как сделать и поделиться
Руководство

Скриншот на Apple Watch — как сделать и поделиться

GNU nano на Linux: установка и руководство
Linux

GNU nano на Linux: установка и руководство

Barrier: общая клавиатура и мышь для Raspberry Pi
Инструкции

Barrier: общая клавиатура и мышь для Raspberry Pi