![Как предотвратить искажение вывода консоли UNIX в Windows?](https://rvso.com/image/668785/%D0%9A%D0%B0%D0%BA%20%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%82%D0%B2%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%20%D0%B8%D1%81%D0%BA%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0%20%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8%20UNIX%20%D0%B2%20Windows%3F%20.png)
Я обнаружил, что при подключении по SSH к виртуальным машинам UNIX из Windows консоль практически бесполезна.
По-видимому, существуют две основные проблемы:
- Экранирование символов (из цветов и клавиш курсора)
- Перезапись текста (в основном в Nano, но также и в терминале)
Первую проблему, похоже, можно решить с помощью чего-то вроде ConEmu.
Но вторую я просто не могу решить. Использование клавиши Delete в любом месте, истории команд в терминале или вверх/вниз или page-up/down в Nano просто перезаписывает полосы текста, в результате чего получается просто искажённая мешанина старых и новых символов.
Единственный способ обновить экран, который я нашел, — это использовать сочетание клавиш CTRL+L для переключения длинных строк, но это не совсем решение.
Это происходит в cmd.exe, Git bash и нескольких других, которые я пробовал. Как нормальные, здравомыслящие люди справляются с этим (кроме пользователей OSX/Linux!) ?
Привет, Дэйв.
решение1
Используйте Putty или NoMachine, никогда не было описанных проблем ни с одним из них.
решение2
Благодаря остальным комментариям я пошел по пути Putty и добился успеха.
Несмотря на то, что вход в систему требует больше усилий, это решает все проблемы, которые я описал выше.
Я отвечаю на свой собственный вопрос, поскольку мой вариант использования был связан с Laravel's Homestead, поэтому я подумал, что будет полезно поделиться тем, как я это сделал.
РЕДАКТИРОВАТЬ:Я собрал всю эту информацию и еще кое-что в одном сообщении в блоге, в котором описал, как использовать ConEmu и OpenSSH для решения обеих проблем, предоставляя при этом больше функциональности, чем PuTTY в одиночку:http://davestewart.io/blog/fix-windows-broken-ssh-console
Homestead основан на Vagrant, и информацию о том, как использовать Putty с Vagrant, я нашел здесь:
От тестирования внутриCmderэто дало мне подсказку, что ssh.exe
проблема была в самой Windows, поэтому я просто добавил Putty как новую консоль (хотя вы можете запустить ее отдельно) и, получив доступ к виртуальной машине, провел тестирование с помощью Nano, и это «просто заработало»:
Я также обнаружил, что могу использовать SSH-клиент Git OpenSSH из командной строки.
cd <open ssh folder> ssh [email protected] -p 2222
Введите «yes», а затем «vagrant» в качестве пароля. Вуаля! Рабочий Nano.
Если вы хотите сохранить хост, то сначала запустите командную строку от имени администратора.
(Извините, если это все совершенно очевидно для всех вас, системных администраторов!)