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