Linux #Linux #Ubuntu #Терминал #Сервер #SSH #tmux

tmux: сессии, которые не обрываются при отключении SSH — понятная шпаргалка

Как пользоваться tmux: запустить сессию на сервере, отключиться и вернуться без потери работы, окна и панели, прокрутка и копирование, мышь, полезный ~/.tmux.conf, запуск команд скриптом и сравнение со screen и nohup.

10 минут
Содержание
  1. 1Зачем нужен tmux
  2. 2Установка
  3. 3Первый запуск и префикс Ctrl+B
  4. 4Отсоединиться и вернуться
  5. 5Именованные сессии
  6. 6Список сессий и переключение
  7. 7Окна
  8. 8Панели: делим экран
  9. 9Прокрутка и копирование
  10. 10Мышь
  11. 11Конфиг ~/.tmux.conf
  12. Перезагрузка конфига
  13. Префикс Ctrl+A — по желанию
  14. 12Запуск команд в сессии скриптом
  15. 13tmux, screen и nohup
  16. 14Шпаргалка
  17. 15Если не работает
  18. 16Чек-лист
  19. 17Частые вопросы
  20. Продолжит ли работать программа, если закрыть окно терминала?
  21. Сохраняются ли сессии tmux после перезагрузки?
  22. Чем окно отличается от панели?
  23. Можно ли подключиться к одной сессии с двух компьютеров?
  24. Почему не работает Ctrl+B в tmux на Mac?
  25. Как узнать, что я сейчас внутри tmux?
  26. Как закрыть tmux полностью?
  27. Нужно ли запускать tmux через sudo?
  28. 18Что дальше

Вы запустили на сервере обновление системы, копирование архива на сотню гигабайт или сборку проекта. Через двадцать минут ноутбук ушёл в сон, Wi-Fi моргнул — и SSH-соединение оборвалось. Вместе с ним завершилась и команда: всё, что было запущено в этом терминале, получило сигнал и закрылось.

tmux решает эту проблему. Это «терминал внутри терминала»: программы работают не в вашем SSH-подключении, а в сессии tmux на самом сервере. Подключение может оборваться, а сессия останется. Вы заходите снова, набираете одну команду — и видите всё ровно в том состоянии, в каком оставили.

Вторая причина полюбить tmux — окна и панели. В одном окне терминала можно держать несколько вкладок и делить экран на части: слева редактор конфига, справа журнал службы, снизу htop. Ниже — всё по порядку, от первого запуска до своего конфига. Все примеры проверены на tmux 3.4 из репозиториев Ubuntu 24.04.

Зачем нужен tmux

Три типичные ситуации, в которых он экономит нервы:

  • 🔌 Долгие команды на сервере. Обновление, rsync большого каталога, распаковка архива, перекодирование видео. Запускаете в tmux, отсоединяетесь, закрываете ноутбук. Команда продолжает работать.
  • 📡 Нестабильное соединение. Мобильный интернет, VPN, который иногда переподключается, удалённый доступ с Mac через половину города. Обрыв больше не означает потерю работы.
  • 🪟 Несколько терминалов в одном. Не нужно открывать пять SSH-подключений к одному серверу: всё помещается в одну сессию с окнами и панелями.

Важно понимать устройство. На сервере работает сервер tmux — фоновый процесс, который держит сессии. Ваш терминал — лишь клиент, который к нему подключается. Отключили клиента — сессии продолжают жить, пока сервер не перезагрузят или вы сами их не закроете.

Установка

В Ubuntu и Debian tmux есть в стандартных репозиториях. На серверных образах Ubuntu он часто уже установлен — проверьте:

Терминал
tmux -V
Вывод
tmux 3.4

Если команда не найдена, поставьте пакет:

Терминал
sudo apt update
sudo apt install tmux

В Fedora — sudo dnf install tmux, в Arch — sudo pacman -S tmux. Подробнее о менеджерах пакетов — в статье apt, snap, flatpak и AppImage.

Первый запуск и префикс Ctrl+B

Запустите tmux без параметров:

Терминал
tmux

Внешне почти ничего не изменится: та же командная строка, но внизу появится зелёная строка состояния. Слева в ней номер сессии и список окон, справа — имя хоста, время и дата. Это значит, что вы внутри tmux.

Все команды tmux вызываются через префикс — сочетание Ctrl + B. Нажимается это так:

  1. Зажмите Ctrl и нажмите B.
  2. Отпустите обе клавиши.
  3. Нажмите клавишу команды, например d.

Новички часто держат Ctrl до конца и нажимают Ctrl + D — а это выход из оболочки и закрытие окна. Префикс и команда — два отдельных нажатия.

Дальше в статье запись Ctrl + B d означает именно это: префикс, отпустить, потом d.

Отсоединиться и вернуться

Это главный приём, ради которого tmux и ставят.

Отсоединиться (detach) — Ctrl + B d. Вы вернётесь в обычный терминал, а tmux сообщит:

Пример вывода
[detached (from session 0)]

Всё, что было запущено в сессии, продолжает работать. Можно закрыть SSH и выключить ноутбук. Если соединение оборвалось само, результат тот же: сессия просто осталась без клиента.

Вернуться (attach) — подключитесь к серверу снова и выполните:

Терминал
tmux attach

Без параметров команда подключает к последней использованной сессии. Короткие формы — tmux a и tmux at. Если сессий нет вообще, tmux ответит:

Вывод
no sessions

Именованные сессии

Сессия из голого tmux получает номер: 0, 1, 2. Когда их несколько, путаться в номерах неудобно. Давайте сессиям имена:

Терминал
tmux new -s work

Ключ -s (session) задаёт имя. new — сокращение от new-session, обе формы работают.

Подключиться к конкретной сессии — ключ -t (target):

Терминал
tmux attach -t work

Если сессия с таким именем уже есть, вторую tmux не создаст:

Вывод
duplicate session: work

А если ошиблись в имени при подключении:

Вывод
can't find session: wrok

Удобная команда на каждый день — подключиться к сессии, а если её нет, создать:

Терминал
tmux new -A -s work

Ключ -A делает new-session похожей на attach, когда сессия уже существует. Её удобно повесить на алиас в ~/.bashrc, например alias tw='tmux new -A -s work'.

Переименовать текущую сессию изнутри — Ctrl + B $, снаружи — tmux rename-session -t старое новое.

Список сессий и переключение

Терминал
tmux ls
Вывод
backup: 1 windows (created Sun Oct 11 19:57:20 2026)
work: 3 windows (created Sun Oct 11 19:57:20 2026)

В каждой строке: имя сессии, сколько в ней окон и когда она создана. Если к сессии сейчас подключён клиент, в конце строки появится (attached). ls — сокращение от list-sessions.

Когда сервер tmux не запущен (сессий нет), вывод такой:

Вывод
no server running on /tmp/tmux-1000/default

Это не ошибка: просто ни одной сессии ещё не создано. 1000 — ваш UID, путь — файл сокета, через который клиент общается с сервером.

Переключаться между сессиями можно, не выходя из tmux:

  • Ctrl + B s — интерактивный список сессий: выбор стрелками, Enter — переключиться;
  • Ctrl + B ( и ) — предыдущая и следующая сессия.

Закрыть сессию целиком вместе со всеми программами в ней:

Терминал
tmux kill-session -t backup

А tmux kill-server закрывает вообще все сессии. Используйте осторожно: всё, что в них работало, будет завершено.

Окна

Окно в tmux — как вкладка в браузере: занимает весь экран, а список окон виден в строке состояния внизу. Текущее помечено звёздочкой *, предыдущее — минусом -.

ДействиеКлавиши
Новое окноCtrl + B c
Следующее окноCtrl + B n
Предыдущее окноCtrl + B p
Окно по номеруCtrl + B 0…9
Последнее использованное окноCtrl + B l
Список всех окон и сессийCtrl + B w
Переименовать окноCtrl + B ,
Закрыть окно (с подтверждением)Ctrl + B &

По умолчанию окно называется по запущенной в нём программе: bash, htop, journalctl. Если окон много, лучше дать им понятные имена: нажмите Ctrl + B ,, сотрите старое имя, введите новое и нажмите Enter.

Посмотреть окна сессии из обычного терминала:

Терминал
tmux list-windows -t work
Вывод
0: bash (1 panes) [80x24] [layout b25d,80x24,0,0,0] @0
1: logs- (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2
2: bash* (1 panes) [80x24] [layout b260,80x24,0,0,3] @3 (active)

Здесь три окна: 0 и 2 называются bash, окно 1 переименовано в logs. Звёздочка и пометка (active) — текущее окно, минус — предыдущее. В скобках — число панелей и размер в символах.

Обычный способ закрыть окно — просто выйти из оболочки: exit или Ctrl + D. Когда в сессии закрывается последнее окно, закрывается и сама сессия.

Панели: делим экран

Панель — часть окна со своей оболочкой. Удобно, когда нужно одновременно видеть несколько вещей: например, слева правите конфиг, справа смотрите журнал службы через journalctl -f — об этом подробно в статье про systemd и journalctl.

ДействиеКлавиши
Разделить слева направо (две колонки)Ctrl + B %
Разделить сверху вниз (две строки)Ctrl + B "
Перейти в соседнюю панельCtrl + B ← → ↑ ↓
Следующая панель по кругуCtrl + B o
Показать номера панелейCtrl + B q
Развернуть панель на всё окно и обратноCtrl + B z
Закрыть панель (с подтверждением)Ctrl + B x
Вынести панель в отдельное окноCtrl + B !
Изменить размер на 1 символCtrl + B Ctrl + ← (и другие стрелки)
Изменить размер на 5 символовCtrl + B Alt + ← (и другие стрелки)

Названия клавиш легко перепутать, поэтому запомните по картинке: символ % похож на вертикальную черту между двумя кружками — получаются две колонки. Кавычка " — две панели одна над другой.

Пара деталей, которые экономят время:

  • 🔁 Перемещение и изменение размера можно повторять без повторного префикса: нажмите Ctrl + B, а потом несколько раз подряд стрелку. tmux ждёт повтор примерно полсекунды.
  • 🔍 z — зум. Развернули панель, чтобы прочитать длинный вывод, нажали ещё раз — вернулась на место. Пока панель развёрнута, в строке состояния рядом с именем окна стоит буква Z.
  • ⌨️ На macOS сочетания с Alt часто не работают, пока в настройках терминала не включено «Option как Meta». Тогда пользуйтесь Ctrl-вариантом или мышью.

Список панелей окна с их размерами:

Терминал
tmux list-panes -t work
Вывод
0: [60x30] [history 0/2000, 1200 bytes] %0
1: [59x15] [history 0/2000, 600 bytes] %1
2: [59x14] [history 0/2000, 560 bytes] %2 (active)

Здесь окно разделено на левую панель во всю высоту и две правые друг над другом. history 0/2000 — сколько строк прокрутки занято из доступных. 2000 — это мало, ниже покажу, как увеличить.

Прокрутка и копирование

Колёсико мыши и Shift + PgUp в tmux по умолчанию не листают вывод: tmux сам рисует экран, и терминал не знает о его истории. Для прокрутки есть режим копирования (copy mode).

  • Ctrl + B [ — войти в режим. В правом верхнем углу панели появится счётчик позиции вроде [0/1532].
  • Стрелки, PgUp и PgDn — листать.
  • Ctrl + B PgUp — войти в режим и сразу пролистать на страницу вверх.
  • q или Esc — выйти и вернуться к командной строке.

Пока вы в режиме копирования, программа в панели продолжает работать — вывод просто копится ниже.

Поиск по истории — Ctrl + R (вверх) и Ctrl + S (вниз). Начинаете вводить текст, tmux сразу подсвечивает совпадение. n — к следующему.

Копирование (раскладка по умолчанию, в стиле Emacs):

  1. В режиме копирования подведите курсор к началу нужного текста.
  2. Ctrl + Пробел — начать выделение.
  3. Стрелками расширьте выделение.
  4. Alt + W — скопировать и выйти из режима.
  5. Ctrl + B ] — вставить в текущую панель.

Текст попадает в буфер tmux, а не в системный буфер обмена компьютера. Список буферов — Ctrl + B =.

Если привыкли к Vim, включите в конфиге setw -g mode-keys vi. Тогда выделение — Пробел, копирование — Enter, поиск — / и ?, перемещение — h j k l.

Мышь

По умолчанию мышь в tmux выключена. Включить её в текущем сервере можно прямо из командной строки tmux: нажмите Ctrl + B : и введите:

Терминал
set -g mouse on

Или из обычного терминала: tmux set -g mouse on. После этого:

  • 🖱️ клик по панели — сделать её активной;
  • 🪟 клик по имени окна в строке состояния — переключиться на него;
  • ↔️ перетаскивание границы между панелями — изменить размер;
  • 🔼 колёсико — прокрутка истории, tmux сам войдёт в режим копирования;
  • 📋 правая кнопка — контекстное меню с пунктами «разделить», «развернуть», «закрыть».

Настройка из командной строки действует до перезапуска сервера tmux. Чтобы мышь была включена всегда, добавьте строку в конфиг.

Конфиг ~/.tmux.conf

tmux читает настройки из файла ~/.tmux.conf при запуске сервера. Файла по умолчанию нет — создайте его. Вот разумный набор для старта, каждая строка проверена на tmux 3.4:

~/.tmux.conf
# Мышь: клики, прокрутка колёсиком, изменение размеров панелей
set -g mouse on

# Нумерация окон и панелей с 1 — удобнее нажимать на клавиатуре
set -g base-index 1
setw -g pane-base-index 1
# После закрытия окна оставшиеся перенумеровываются без дыр
set -g renumber-windows on

# История прокрутки: 50 000 строк вместо 2000
set -g history-limit 50000

# Быстрая реакция на Esc (важно для vim)
set -sg escape-time 10

# Перезагрузить конфиг: префикс + r
bind r source-file ~/.tmux.conf \; display-message "Конфиг перезагружен"

# Новые панели и окна открываются в текущем каталоге
bind '%' split-window -h -c "#{pane_current_path}"
bind '"' split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

Что здесь важно:

  • set -g — глобальная настройка для всех сессий, setw — настройка окон.
  • base-index 1 — окна нумеруются с 1, а не с 0. Клавиша 1 на клавиатуре стоит слева, 0 — справа, после 9. С нумерацией с единицы окна идут по порядку клавиш.
  • history-limit действует только на новые панели. Старые сохранят прежний лимит, пока их не закроете.
  • -c "#{pane_current_path}" — без этого новая панель открывается в каталоге, где была создана сессия, а не там, где вы сейчас работаете.
  • bind r переопределяет стандартную клавишу r (перерисовка экрана). Если она нужна, выберите другую букву.

Перезагрузка конфига

Изменения в ~/.tmux.conf не применяются сами по себе к уже запущенному серверу. Варианты:

Терминал
tmux source-file ~/.tmux.conf

Или изнутри tmux: Ctrl + B :, затем source-file ~/.tmux.conf. С привязкой из конфига выше — просто Ctrl + B r.

Проверить, что настройка применилась:

Терминал
tmux show -g history-limit
tmux show -g mouse
Вывод
history-limit 50000
mouse on

Префикс Ctrl+A — по желанию

Многие переносят префикс на Ctrl + A: так было в screen, и до A ближе тянуться. Минус — в оболочке это сочетание переносит курсор в начало строки, и после переназначения для этого придётся нажать Ctrl + A дважды.

~/.tmux.conf
unbind C-b
set -g prefix C-a
bind C-a send-prefix

Третья строка как раз позволяет отправить Ctrl + A в программу двойным нажатием. Дальше в статье я пишу стандартный префикс Ctrl + B. Если вы его сменили, мысленно подставляйте свой.

Запуск команд в сессии скриптом

tmux можно полностью управлять из командной строки, без единого нажатия префикса. Это пригодится, когда нужно по одной команде поднимать готовое рабочее окружение или запускать долгую задачу в фоне.

Создать сессию, не подключаясь к ней — ключ -d (detached):

Терминал
tmux new -d -s work

Отправить в неё команду — send-keys. Текст набирается в панели так, будто вы ввели его с клавиатуры, а слово Enter нажимает клавишу Enter:

Терминал
tmux send-keys -t work 'sudo apt update && sudo apt upgrade -y' Enter

Запустить команду сразу при создании сессии — допишите её последним аргументом:

Терминал
tmux new -d -s backup 'rsync -a /srv/photos/ /mnt/backup/photos/'

Учтите разницу. Во втором случае сессия живёт ровно столько, сколько команда: rsync закончился — сессия закрылась, и вывод посмотреть уже нельзя. Через send-keys команда работает внутри обычной оболочки, и после её завершения сессия остаётся с выводом на экране.

Целиком это выглядит так. Скрипт создаёт сессию deploy с двумя окнами и запускает в каждом свою команду:

~/bin/deploy-session.sh
#!/bin/bash
S=deploy
# Если сессия уже есть — ничего не делаем
tmux has-session -t "$S" 2>/dev/null && { echo "Сессия $S уже есть"; exit 0; }

tmux new -d -s "$S" -n main
tmux send-keys -t "$S:main" 'echo "Старт: $(date +%T)"; sleep 2; echo Готово' Enter

tmux new-window -t "$S" -n logs
tmux send-keys -t "$S:logs" 'uptime' Enter

echo "Сессия $S запущена"

Цель -t "$S:main" означает «сессия deploy, окно main». Ключ -n при создании задаёт имя окна. has-session возвращает код 0, если сессия существует, — так скрипт не создаёт дубликат. Сделайте файл исполняемым (chmod +x, права можно посчитать в калькуляторе chmod) и запустите дважды:

Вывод
Сессия deploy запущена
Сессия deploy уже есть

Проверим, что внутри:

Терминал
tmux list-windows -t deploy -F '#{window_index}: #{window_name}'
Вывод
0: main
1: logs

Ключ -F задаёт свой формат вывода: здесь только номер и имя окна. А содержимое панели можно забрать в обычный терминал командой capture-pane, ключ -p выводит его на экран:

Терминал
tmux capture-pane -p -t deploy:main
Вывод
nixlife@server:~$ echo "Старт: $(date +%T)"; sleep 2; echo Готово
Старт: 19:57:45
Готово
nixlife@server:~$

Так удобно проверять из скриптов, закончилась ли долгая задача, не подключаясь к сессии. Подключиться и посмотреть вживую — как обычно, tmux attach -t deploy.

Такой скрипт можно запускать и по расписанию через cron — собрать строку для crontab поможет генератор cron. Но если задача должна работать постоянно и перезапускаться после сбоя, лучше оформить её службой systemd: tmux — инструмент для человека, а не для автозапуска сервисов.

tmux, screen и nohup

Три способа пережить обрыв SSH, коротко:

tmuxscreennohup
Вернуться к программе и работать с ней✅✅❌ только смотреть лог
Окна и панели✅✅ окна, деление экрана скромнее❌
Префикс по умолчаниюCtrl + BCtrl + A—
Управление скриптами✅ удобно✅ есть—
Развиваетсяактивномедленноэто одна простая утилита
  • screen — старший брат tmux. Работает похоже: screen -S work, отсоединиться — Ctrl + A d, вернуться — screen -r work. Если на старом сервере есть только screen — пользуйтесь им, суть та же.
  • nohup — для «запустил и забыл». nohup команда > log.txt 2>&1 & отвязывает программу от терминала, и обрыв SSH её не убьёт. Но вернуться к ней нельзя: ни ответить на вопрос программы, ни нажать Ctrl + C. Только читать файл лога.

Для интерактивной работы на сервере tmux удобнее всех. nohup хорош, когда программа ни о чём не спрашивает и нужен только её результат.

Шпаргалка

Что сделатьКоманда или клавиши
Новая сессия с именемtmux new -s work
Подключиться или создатьtmux new -A -s work
Новая сессия в фонеtmux new -d -s work
Список сессийtmux ls
Вернуться в сессиюtmux attach -t work
ОтсоединитьсяCtrl + B d
Выбрать сессию из спискаCtrl + B s
Переименовать сессиюCtrl + B $
Закрыть сессиюtmux kill-session -t work
Новое окноCtrl + B c
Следующее / предыдущее окноCtrl + B n / p
Окно по номеруCtrl + B 0…9
Переименовать окноCtrl + B ,
Разделить на колонкиCtrl + B %
Разделить на строкиCtrl + B "
Перейти в панельCtrl + B ← → ↑ ↓
Развернуть панельCtrl + B z
Закрыть панельCtrl + B x
Режим прокруткиCtrl + B [, выход — q
Вставить скопированноеCtrl + B ]
Командная строка tmuxCtrl + B :
Список всех клавишCtrl + B ?
Перечитать конфигtmux source-file ~/.tmux.conf
Отправить команду в сессиюtmux send-keys -t work 'команда' Enter

Если не работает

no server running on /tmp/tmux-1000/default. Сессий нет: их закрыли, или сервер перезагружался. Создайте новую через tmux new -s имя. Если вы уверены, что сессия была, проверьте, тот ли это пользователь: сессии root и обычного пользователя не видят друг друга. Сессия, запущенная после sudo -i, видна только из-под root.

sessions should be nested with care, unset $TMUX to force. Вы пытаетесь запустить tmux внутри tmux. Обычно это случайность: вы уже в сессии и забыли. Проверить просто — echo $TMUX: если строка не пустая, вы внутри tmux. Переключиться на другую сессию изнутри — Ctrl + B s.

Пример вывода
sessions should be nested with care, unset $TMUX to force

open terminal failed: not a terminal. tmux attach или tmux new без -d запущены там, где нет терминала: в cron, в скрипте без TTY, через ssh server tmux attach. Для SSH добавьте ключ -t: ssh -t server tmux attach. В скриптах создавайте сессии только с -d.

Префикс не реагирует. Проверьте, что отпускаете Ctrl перед клавишей команды. Если tmux запущен внутри другого tmux (например, локально и на сервере), префикс перехватывает внешний. Чтобы отправить его во внутренний, нажмите Ctrl + B дважды, потом команду.

Колёсико мыши не листает, а перебирает историю команд. Мышь выключена — добавьте set -g mouse on в конфиг и перезагрузите его.

Изменения в конфиге не применились. Конфиг читается только при старте сервера. Выполните tmux source-file ~/.tmux.conf или закройте все сессии. И проверьте ошибки: при синтаксической ошибке tmux покажет номер строки.

Цвета в vim или btop выглядят бледно. Проверьте, что в оболочке внутри tmux echo $TERM показывает tmux-256color или screen-256color. Если нет — добавьте в конфиг set -g default-terminal "tmux-256color" и перезапустите сервер tmux.

Чек-лист

Частые вопросы

Продолжит ли работать программа, если закрыть окно терминала?

Да, если она запущена внутри tmux. Закрытие окна или обрыв SSH для tmux — то же самое, что отсоединение. Сессия и всё в ней остаются на сервере.

Сохраняются ли сессии tmux после перезагрузки?

Нет. Сервер tmux — обычный процесс, после перезагрузки он не запускается сам, а программы в сессиях завершаются. Для восстановления раскладки окон есть сторонние плагины, но запущенные программы они не воскрешают.

Чем окно отличается от панели?

Окно занимает весь экран, как вкладка, и между окнами переключаются. Панели — части одного окна, видны одновременно. В сессии может быть много окон, в окне — много панелей.

Можно ли подключиться к одной сессии с двух компьютеров?

Да, tmux attach -t work с двух мест покажет одну и ту же сессию, ввод с обоих клиентов попадёт в неё. Размер окна по умолчанию подстраивается под терминал, которым пользовались последним. Чтобы при подключении отключить остальных клиентов, используйте tmux attach -d -t work.

Почему не работает Ctrl+B в tmux на Mac?

Работает так же, как в Linux: это Control, а не ⌘ Cmd. Сочетания с Alt на Mac требуют включить в настройках терминала опцию «Use Option as Meta key».

Как узнать, что я сейчас внутри tmux?

Внизу видна строка состояния. Если её отключили в конфиге — выполните echo $TMUX: внутри tmux переменная не пустая.

Как закрыть tmux полностью?

Выйти из всех оболочек командой exit — с последним окном закроется сессия, с последней сессией — сервер. Быстрее — tmux kill-server, но это завершит всё, что запущено в сессиях.

Нужно ли запускать tmux через sudo?

Нет. Запускайте tmux от своего пользователя, а sudo пишите перед конкретными командами внутри. Сессии разных пользователей изолированы. Подробнее о root и sudo — в статье про root в Ubuntu.

Что дальше

tmux — базовый инструмент любой работы с сервером по SSH. Если вы только настраиваете машину, загляните в установку Ubuntu Server и защиту сервера после установки. А чтобы долгая задача в tmux не упёрлась в нехватку места, пригодится статья о том, как посмотреть место на диске.

Статья помогла?

Комментарии

Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.

Комментарий появится после проверки. Ссылки и реклама не публикуются.