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

Доступ к Telegram из терминала Linux с помощью telegram-cli

5 min read Linux Обновлено 03 Dec 2025
Telegram в терминале Linux — telegram-cli
Telegram в терминале Linux — telegram-cli

Интерфейс telegram-cli в терминале Linux

Telegram — одно из самых популярных приложений для обмена сообщениями (в статье упоминалось более 100 миллионов ежемесячно активных пользователей). Преимущества приложения: облачное хранение, сильное шифрование и возможность автоматического удаления сообщений. Официальные клиенты есть для мобильных и десктопных платформ, а для Linux доступны и графические клиенты (официальный tdesktop, а также сторонние, например Cutegram).

Однако в средах без графического интерфейса (headless-серверы, минималистичные дистрибутивы) удобнее работать через терминал. Ниже — подробная инструкция по установке telegram-cli на Ubuntu 16.04 и использованию базовых команд в терминале.

Совместимость и подготовка

Важно: инструкции в этой статье проверялись на Ubuntu 16.04. На других дистрибутивах пакеты и названия библиотек могут отличаться.

Требуемые навыки и понятия в одну строку:

  • SSH/терминал: умение запускать команды под sudo и редактировать файлы.
  • Компиляция из исходников: ./configure && make && sudo make install.

Установка telegram-cli (с исходников)

Перед сборкой установите зависимости и git. В большинстве случаев на Ubuntu 16.04 достаточно выполнить:

sudo apt-get update
sudo apt-get install git libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make

Затем клонируйте репозиторий и соберите проект:

git clone --recursive https://github.com/vysheng/tg.git && cd tg
./configure
sudo make

После успешной сборки бинарный файл telegram-cli появится в поддиректории bin.

Запуск и первичная авторизация

Перейдите в папку с бинарником и запустите клиент:

cd bin
sudo ./telegram-cli

При первом запуске клиент запросит номер телефона. После ввода номера вы получите код в официальном мобильном приложении или SMS; введите этот код в терминале — клиент авторизуется и синхронизируется с вашим аккаунтом.

Важно: telegram-cli работает со стандартными аккаунтами Telegram и не поддерживает секретные чаты (они хранятся только на устройстве). Убедитесь, что используете этот инструмент для задач, где отсутствует требование секретных чатов.

Типичная ошибка при запуске и способ её устранения

При первом запуске у многих пользователей возникает ошибка вида:

telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion `0' failed.

Причина: известная проблема в части исходного кода, связанная с определёнными версиями библиотек/компилятора. Одно из практичных решений — закомментировать проблемную строку в файле tgl/mtproto-utils.c и собрать проект заново.

Пример действий:

  • Откройте файл tgl/mtproto-utils.c в текстовом редакторе (nano, vim, code) и найдите строку с упоминанием BN2ull и assert.
  • Закомментируйте или удалите проблемную проверку (например, добавив // в начале строки или временно закомментировав блок).
  • Сохраните файл и выполните сборку заново: ./configure && sudo make.

Примечание безопасности: изменение исходников — вмешательство в код. Делайте это только если понимаете последствия и проверили изменения локально. Если сомневаетесь, посмотрите обсуждения и отклики других пользователей в issues репозитория (читайте комментарии и поиск по тексту ошибки).

Базовые команды telegram-cli

Ниже — самые часто используемые команды для работы в интерактивной сессии telegram-cli.

  • msg [peer] [text] — отправить сообщение контакту или чату. Подстановка имени: начните вводить имя и нажмите TAB для автозаполнения.
  • fwd [user] [msg-seqno] — переслать сообщение пользователю (номер сообщения виден при запуске клиента с ключом -N).
  • chat_with_peer [peer] — начать интерактивный чат с указанным контактом; /exit или /quit завершат режим.
  • add_contact [phone-number] [first-name] [last-name] — добавить контакт по номеру.
  • rename_contact [user] [first-name] [last-name] — переименовать контакт (в других устройствах может возникнуть конфликт при одновременном переименовании).
  • mark_read [peer] — пометить все полученные сообщения с peer как прочитанные.
  • delete_msg [msg-seqno] — удалить сообщение (полное удаление зависит от типа чата).
  • restore_msg [msg-seqno] — восстановить удалённое сообщение (невозможно для секретных чатов; возможно ограниченное время после удаления).

Для полного списка команд и подробного синтаксиса смотрите README и документацию в репозитории проекта.

Примеры использования

Отправка простого сообщения:

msg Ivan Привет, проверяю отправку через telegram-cli

Начало интерактивного чата:

chat_with_peer Ivan
# Теперь вы в режиме чата; наберите сообщение и нажмите Enter. /exit чтобы выйти.

Альтернативные подходы и когда telegram-cli не подходит

  • Если вам нужна поддержка секретных чатов или полноценный GUI — используйте официальное приложение Telegram Desktop или мобильные клиенты.
  • Для автоматизации сообщений лучше подходит Bot API (через токен бота) — бот не требует входа через номер телефона, но работает как бот, а не от имени пользователя.
  • TDLib (Telegram Database Library) — библиотека для создания собственных клиентов и ботов с поддержкой современных API; если вам нужен интегрируемый и поддерживаемый стек, рассмотрите TDLib.
  • Если вы не хотите компилировать из исходников, ищите предсобранные пакеты в репозиториях дистрибутива или сторонних сборках, но проверяйте доверие источника.

Когда telegram-cli может не подойти:

  • Требуется секретная переписка.
  • Нужна официальная поддержка и регулярные обновления безопасности.
  • Неудобно работать без GUI (медиа, голосовые сообщения, стикеры).

Контрольный список приёмки (Критерии приёмки)

  • Бинарный файл telegram-cli корректно скомпилирован и находится в bin/.
  • При запуске ./telegram-cli клиент запрашивает номер и принимает код подтверждения.
  • После авторизации видны контакты и история сообщений.
  • Удаётся отправить сообщение с помощью msg и получить ответ в другом клиенте.
  • Критические команды (delete_msg, mark_read) выполняются без фатальных ошибок.

Роль‑ориентированные проверки

  • Для администратора сервера: проверка зависимостей, сборки и прав доступа к бинарнику; создание systemd-юнита при необходимости.
  • Для пользователя: проверка возможности авторизации и отправки/получения сообщений.
  • Для разработчика/интегратора: проверка совместимости API, логов и сценариев автоматизации.

Безопасность и приватность

  • Авторизация требует номера телефона — учтите, что номер привязан к аккаунту.
  • Секретные чаты не поддерживаются telegram-cli — не используйте его для задач, требующих сквозного E2E-секретного шифрования между двумя устройствами.
  • Хранение сессии: telegram-cli хранит данные сессии локально; защищайте доступ к каталогу пользователя и резервным копиям.

Откат и удаление

Если нужно удалить собранный клиент и откатить изменения:

  1. Удалите папку с исходниками и бинарниками (например, rm -rf ~/tg).
  2. Удалите локальные файлы сессии в каталоге, где telegram-cli их хранит (обычно рядом с бинарём или в ~/.telegram-cli — проверьте документацию).
  3. Отозовите доступ и сессии в официальном приложении Telegram при необходимости.

Тесты и критерии успешности (кратко)

  • Тест 1: запуск клиента без ошибок после сборки.
  • Тест 2: успешная авторизация номером и кодом.
  • Тест 3: отправка и приём текстового сообщения.
  • Тест 4: выполнение команды delete_msg и корректное логирование операции.

Подводные камни и советы

  • Собирайте проект в чистой среде, чтобы быстро обнаруживать недостающие зависимости.
  • Если встречаете ошибку при сборке — сначала проверьте issues на GitHub, там часто уже есть обсуждения и патчи.
  • Не используйте изменённые бинарные сборки из непроверенных источников.

Резюме

Telegram можно запустить и использовать полностью из командной строки на Linux, что полезно для headless‑серверов и сценариев автоматизации. Установка требует компиляции и иногда правки исходников (известная ошибка с assert), но после первоначальной настройки вы получаете мощный набор команд для управления сообщениями. Для задач, где необходима поддержка секретных чатов или официальная поддержка обновлений безопасности, рассмотрите альтернативы (официальный клиент, Bot API, TDLib).

Важно: установка — одноразовый процесс; освоение команд займёт время, но затем работа в терминале будет быстрой и эффективной.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как отвечать на звонок с помощью Siri на iPhone
iPhone

Как отвечать на звонок с помощью Siri на iPhone

Включение Material Design в Chrome
Руководство

Включение Material Design в Chrome

Ярлык режима гостя в Chrome и Edge
Руководство

Ярлык режима гостя в Chrome и Edge

Исправить синхронизацию Steam Cloud на Steam Deck
Поддержка

Исправить синхронизацию Steam Cloud на Steam Deck

Как вернуть деньги в Google Play
Android.

Как вернуть деньги в Google Play

Как вернуть сдвинутый проект в график
Управление проектами

Как вернуть сдвинутый проект в график