TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #294 1.34K
Управление псевдотерминалами

Псевдотерминалы (PTY) - это то, что позволяет запускать оболочки, эмулировать сессии и автоматизировать взаимодействие с CLI-программами, которые ждут ввода. В linux есть несколько инструментов, которые можно использовать для работы с ними.

▪️ script - захват сессии в PTY


script -q -c "top -n 1" session.log


Команда выполнится в псевдотерминале, а весь вывод будет сохранен, как будто это была обычная интерактивная сессия.

Полезно: для логгирования; обхода нестандартного поведения программ без TTY.

▪️ socat - соединение PTY с чем угодно. Создание виртуальной пары PTY-устройств:


socat -d -d pty,raw,echo=0 pty,raw,echo=0


Это выведет два устройства /dev/pts/X и /dev/pts/Y, которые можно использовать, например, чтобы связать скрипт и программу, как будто они "болтают" друг с другом.

Применения: имитация COM-портов; отладка CLI-программ; организация проброса ввода/вывода.

▪️ expect - автоматизация интерактивных CLI


#!/usr/bin/expect -f

spawn ssh user@host
expect "password:"
send "supersecret\r"
interact


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

❓ Когда это нужно?

📍 автоматизация SCP, FTP, SSH при отсутствии ключей;
📍 создание тестов CLI-интерфейсов;
📍 запуск GUI-оберток над TUI-программами;
📍 обход "упрямых" команд, требующих TTY (sudo, passwd, mysql, и др.);

BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →