Возникла немного странная ситуация. В основном по причинам, не зависящим от меня, я нахожусь на сервере, который настроил кто-то другой. У меня есть доступ к sudo, я просто не могу понять, что случилось, или найти какую-либо документацию.
Когда я открываю .bashrc
( sudo nano ~ / .bashrc
), я получить статическое представление, которое просто перезаписывает верхнюю строку. Я могу выйти, только нажав , введите
после нажатия Ctrl + X
. Снимок экрана ниже.
То же самое происходит с vi
, и, очевидно, это делает невозможным редактирование чего-либо на сервере. У кого-нибудь есть идея, что здесь может происходить? Я много гуглил, но заблокировать это сложно.
Ответ lsb_release -a
вставлен ниже.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
В поисках странного кода я обнаружил следующее в .bashrc
:
case $- in
*i*) ;;
*) return;;
esac
Я не уверен, что здесь происходит, tbh, но это единственное, что я не узнал, так что это могло быть связано?
Вы подразумеваете, что это происходит с любым файлом, который вы пытаетесь редактировать.
Я думаю, что bashrc выглядит нормально, я видел похожие код в https://gist.github.com/aakbar5/2969095d8dd11e95a282157c2ca29b39 , и объясняется, почему этот оператор case там.
Если вы думаете, что заменив справку bashrc, вы можете редактировать файл без редактор. Сначала сделайте резервную копию. Здесь используется документ
cat > ~/.bashrc <‘HT’
# replacement goes here
HT
Что касается текстовых редакторов, каков путь к каждому из них?то есть, каков результат , который vi
?
Попробуйте запустить редактор по вашему выбору в сеансе screen
.
Это помогает мне с такими проблемами в 99% случаев. Я также считаю, что это проблема с настройкой TTY / некоторыми переменными Xterm, вы можете попробовать экспортировать вывод env
с другого компьютера и получить такой файл на этом, проверяя, решает ли это проблему должным образом, но я сначала будет использовать экран
Добавьте в нижнюю часть файла следующую строку:
export EDITOR=/path/vi
path= Расположение редактора vi.
Вы можете выполнить команду в текущем терминале перед редактированием .bashrc.
.Похоже, кто-то испортил (виртуальные) настройки tty, которые лучше всего оставить в покое в 21 веке, если, конечно, вы на самом деле не используете старинный физический терминал из компьютерного музея...
С помощью команды (запустить на удаленном сервере, сразу после входа в систему):
stty sane
После того, как терминал заработает, ищите такие команды как stty
или tput
в скриптах запуска оболочки, которые могут делать странные вещи с tty.