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

Самый простой путем можно создать себя:

locate $(zenity --entry --text "Geeklow") | zenity --list --column="files"

Это может быть улучшено:

  • Не показывайте результаты, если Пользователь оставил запись пустой или хит ESC
  • вычислите ширину самого долгого имени файла и количество filelengths и
  • получите экран width и высоту, чтобы сделать окно как можно больше, отобразить почти все найденные файлы, если они соответствуют screensize
  • Больше и лучший диалоговый текст, структурируйте текст
  • но затем это становится сомнительным :) и долго

Но: существует причина, почему люди используют, располагаются непосредственно:

  • Это - правильный инструмент для задания
  • это имеет опции как-i (который они найдут снова на находке-iname и grep-i и так далее),
  • это является объединяемым в каналах
  • это применимо в $ (...)
  • завершение команды
  • оболочка уже открыта
5
24.05.2012, 21:59
5 ответов

Можно выполнить команду на удаленном сервере, не входя в систему как это:

ssh -lUSERNAME SERVER COMMAND

например.

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

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

13
27.01.2020, 20:31
  • 1
    Да, который хорошо работает!Спасибо. Хотя я использую "ключ" к входу в систему, и для меня он похож: ssh servername 'mv .zshrc .zshrc.broken' –  Ali 01.02.2012, 21:12

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

4
27.01.2020, 20:31

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

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

3
27.01.2020, 20:31

Я, возможно, изменил свою оболочку на bash использование:

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

принятие удара доступно на разъединении, и это работает на меня.

1
27.01.2020, 20:31

Я пытался сделать удаленное редактирование с энергией:

vim sftp://user@server/.zshrc

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

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

0
27.01.2020, 20:31

Теги

Похожие вопросы