Я использую OpenSSH Client, поставляемый с Windows 10 (Home) через Powershell. Как мне повторить последнюю команду(ы)? Я привык использовать клавишу вверх для просмотра последних выполненных команд, но это не работает, использование любой клавиши со стрелкой приводит к появлению странных символов в командной строке (например, ^[[A). Другие команды, связанные с Linux, например !!, также не работают... есть идеи?
EDIT: Проблема, похоже, на стороне сервера (Unbuntu), а не на стороне клиента OpenSSH в Windows (та же проблема возникает с Putty). Так что теперь вопрос: как мне активировать последнюю команду с помощью клавиши вверх и автодополнение с помощью клавиши Tab на удаленном сервере.
решение1
Похоже, у вас sh
по умолчанию установлена оболочка вместо bash
. sh
Имеет очень ограниченные возможности редактирования командной строки и не поддерживает повторный вызов предыдущих команд с помощью стрелок вверх/вниз.
Чтобы проверить это, введите следующую команду:
grep '^username:' /etc/passwd
где вы, конечно, должны заменитьимя пользователяна ваше фактическое имя пользователя, которое вы используете в системе Linux.
Вы должны увидеть такую строку (в моем случае):
raj:x:1000:1000:Jarek,,,:/home/raj:/bin/bash
Ваша оболочка по умолчанию отображается в конце строки. Если она /bin/bash
такая же, как выше, стрелки вверх/вниз должны работать. Если они не работают, кто-то, должно быть, что-то испортил в скриптах запуска оболочки (обычно .profile
и .bashrc
файлах).
Если ваша оболочка отличается от /bin/bash
(например /bin/sh
), вы можете попробовать изменить ее. Введите команду chsh
(она запросит ваш пароль) и введите /bin/bash
как новую оболочку. После того, как вы войдете в новый сеанс, ваша новая оболочка должна быть активна.