リモートサーバーでzshrcを台無しにして、今はどのコマンドも実行できません!

リモートサーバーでzshrcを台無しにして、今はどのコマンドも実行できません!

リモートコンピュータでzsh設定を変更しましたが、設定が壊れてキーを押す
たびに、「url-quote-magic:1:url-quote-magic:関数定義ファイルが見つかりません」というメッセージが表示されます。

そのコンピュータに他のアカウントがありません。エラーを無効にして.zshrcシェルを再利用して修正できるようにするにはどうすればよいですか?

答え1

次のようにログインしなくても、リモートサーバーでコマンドを実行できます。

ssh -lUSERNAME SERVER COMMAND

例えば

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

最後の引数として与えられたコマンドは非対話型sshシェルによって実行されますが、.zshrczshマンページ、ファイルの開始と閉じるセクション)。

答え2

サーバーにSFTPを介して.zshrc空のファイルまたは利用可能なファイルで上書きすることもできます。

答え3

ここでは、あなたが台無しにされたファイルはインタラクティブログインでのみ使用されるので簡単です。を台無しにした場合~/.zshenv、またはログインシェルがbashであることを望んでいる場合~/.bashrc(奇妙なことに、bash~/.bashrcは非対話型ログインシェルであり、その親がrshdorかどうかを読み取るsshd)コマンドの実行に依存する方法はありません。非対話型なら大丈夫です。 。

SSHはシェルの実行にこだわります。他にログインできる方法がない場合(他のアカウントまたはssh以外の方法で)、唯一の方法は認証後にシェルが問題の行に達する前にすばやく+を押すことですCtrlC実際、これは通常手動で行うことができます。システムの負荷(CPUまたはディスク)を予約すると便利です。適切な時点でキーを押すのに問題がある場合を試してくださいexpect

答え4

以下を使用するようにシェルを変更できますbash

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

bashがサーバーで利用可能で、私に適しているとします。

関連情報