Сокат и богатые терминалы (с распространением Ctrl+C/Ctrl+Z/Ctrl+D)

socat - exec:'bash -li',pty,stderr,ctty -> bash: no job control in this shell

Какие параметры мне следует использовать, чтобы получить полноценную оболочку, которую я получаю с помощью ssh/sshd?

Я хочу иметь возможность подключить оболочку ко всему, что может обработать socat ( SOCKS 5, UDP, OpenSSL), а также иметь красивую оболочку, которая правильно интерпретирует все клавиши, различные Ctrl + C / Ctrl + Z, завершение табуляции, вверх / клавиши вниз (с удаленной историей).

  • Обновление 1: найдена опция "setsid" socat. Это исправляет "нет контроля работы". Сейчас пытаюсь исправить Ctrl + D.

  • Обновление 2:

     файл socat:`tty`,raw,echo=0 exec:'bash -li',pty,stderr,setsid,sigint,sane 
    , Не хорошо обрабатывает Ctrl + D / Ctrl + Z / Ctrl + C, я могу запустить Vim внутри него, удаленная история в порядке.

1 ответ

Решение

Проблемы были:

  1. Отсутствует опция "сетсид" в правой части соцата. Это приведет к тому, что bash не будет контролером сессии.
  2. Используя "-" в левой части соката. Правильная вещь - `tty`,raw,echo=0.

Теперь у меня есть оболочка для всех вещей, которые может поддерживать socat, и могу запускать vim/screen/ssh, прерывать ping с ^C, конец cat с ^D и делать все остальное в этой оболочке.

Если bash ломает строки неправильно и / или vim слишком маленький или слишком большой, вы можете легко использовать термины размера.

Другие вопросы по тегам