Назад | Перейти на главную страницу

Текстовые редакторы не работают

Попадаю в немного странную ситуацию. В основном по причинам, не зависящим от меня, я нахожусь на сервере, который настроил кто-то другой. У меня есть доступ к sudo, я просто не могу понять, что случилось, или найти документацию.

Когда я открываю .bashrc (sudo nano ~/.bashrc) Я получаю статическое представление, которое просто перезаписывает верхнюю строку. Я могу выйти, только нажав enter после удара 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, но это единственное, что я не узнал, так что это могло быть связано?

Похоже, кто-то испортил (виртуальные) настройки tty, которые лучше всего оставить в покое в 21 веке, если, конечно, вы на самом деле не используете старинный физический терминал из компьютерного музея ...

Вы должны иметь возможность перевести tty на удаленном сервере в рабочее состояние с помощью команды (запускать на удаленном сервере сразу после входа в систему):

stty sane

После того, как терминал заработает, поищите такие команды, как stty или tput в сценариях запуска оболочки, которые могут делать странные вещи с tty.

Вы подразумеваете, что это происходит с любым файлом, который вы пытаетесь редактировать.

Я думаю, что bashrc выглядит нормально, я видел похожий код в https://gist.github.com/aakbar5/2969095d8dd11e95a282157c2ca29b39, и объясняется, почему это case.

Если вы думаете о замене справки bashrc, вы можете редактировать файл без редактора. Сначала сделайте резервную копию. Это использует Here Doc.

cat > ~/.bashrc <‘HT’
# replacement goes here

HT

Что касается текстовых редакторов, каков путь к каждому? т.е. каков результат which vi?

Добавьте в конец файла следующую строку:

export EDITOR=/path/vi

path = Расположение редактора vi.

Вы можете выполнить команду в своем текущем терминале перед редактированием .bashrc.

Попробуйте запустить редактор по вашему выбору в screen сеанс. Это помогает мне с такими проблемами в 99% случаев. Я также считаю, что это проблема с настройкой TTY / некоторыми переменными Xterm, вы можете попробовать экспортировать env вывод с другого компьютера и получение такого файла на этом, проверяя, правильно ли это решает проблему, но я бы использовал screen первый