Я перепутал свой zshrc на удаленном сервере, и теперь я не могу запускать какие-либо команды!

На удаленной машине я изменил настройки zsh и теперь отключен,
для каждого нажатия клавиши он говорит: «url-quote-magic: 1: url-quote-magic: файл определения функции не найден»

У меня нет другой учетной записи на этой машине. Что я могу сделать, чтобы отключить неисправный .zshrc чтобы снова использовать оболочку и исправить ее.

5 Solutions collect form web for “Я перепутал свой zshrc на удаленном сервере, и теперь я не могу запускать какие-либо команды!”

Вы можете запустить команду на удаленном сервере, не войдя в нее так:

 ssh -lUSERNAME SERVER COMMAND 

например

 ssh -lsomeuser someserver 'mv .zshrc .zshrc.bak' 

Команда, заданная как последний аргумент ssh будет выполняться неинтерактивной оболочкой, а команды из .zshrc выполняются только интерактивными оболочками (см. .zshrc zsh , раздел о файлах запуска и завершения работы).

Я также мог бы sftp на сервер и перезаписать .zshrc с пустым файлом или с тем, который работает!

Здесь это легко, потому что файл, который вы испортили, используется только для интерактивных логинов. Если вы испортили ~/.zshenv или если ваша оболочка для входа была bash, и вы испортили ~/.bashrc (странно, bash reads ~/.bashrc если это неинтерактивная оболочка входа, а ее родительский rshdrshd или sshd ), ни один из методов, которые полагаются на выполнение команды не интерактивно, не сработает.

SSH настаивает на запуске оболочки. Если у вас нет другого способа входа в систему (через другую учетную запись или с помощью метода, отличного от ssh), тогда ваш единственный призыв – быстро нажать Ctrl + C после аутентификации и до того, как оболочка достигнет проблемной строки. На практике это часто можно сделать вручную; это может помочь организовать загрузку машины (CPU или диск). Если у вас есть проблемы с нажатием клавиш в нужное время, попробуйте использовать expect .

Я мог бы изменить свою оболочку на bash используя:

 ssh -luser server 'chsh -s /bin/bash' 

предполагая, что bash доступен на севере, и он работает для меня.

Я попытался сделать удаленное редактирование с помощью vim:

 vim sftp://user@server/.zshrc 

который не сработал. Хотя :Nread sftp://server/.zshrc может загрузить файл .zshrc и :Nwrite может записать его обратно (у меня есть открытый ключ на сервере и ssh без пароля).

Еще больше решений приветствуются.

  • Диагностировать ошибку скрипта в zsh vs bash
  • Как перечислить все папки в каталоге, не начиная с символа L?
  • Многомесячный просмотр в календаре (cal) в OS X
  • Как выполнить обратный поиск истории в vi-режиме ZSH?
  • path_helper и zsh
  • POSIX-совместимый / кросс-shell-способ для получения версии запущенной оболочки?
  • Удалить назад до тех пор, пока не встретит символ, например alt + bksp
  • Как выполнить повторную команду k'th в конвейере?
  • Асинхронный RPROMPT?
  • Безопасно ли удалить каталог .oh-my-zsh?
  • Нарезка массива, содержащего пустые строки
  • Linux и Unix - лучшая ОС в мире.