Сокат и богатые терминалы (с распространением 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 ответ
Проблемы были:
- Отсутствует опция "сетсид" в правой части соцата. Это приведет к тому, что bash не будет контролером сессии.
- Используя "-" в левой части соката. Правильная вещь - `tty`,raw,echo=0.
Теперь у меня есть оболочка для всех вещей, которые может поддерживать socat, и могу запускать vim/screen/ssh, прерывать ping
с ^C, конец cat
с ^D и делать все остальное в этой оболочке.
Если bash ломает строки неправильно и / или vim
слишком маленький или слишком большой, вы можете легко использовать термины размера.