在远程计算机上,我更改了zsh
设置,但它现在已损坏,
每次按键时都会显示:“url-quote-magic:1:url-quote-magic:找不到函数定义文件”
我在那台机器上没有其他帐户,我可以做什么来禁用故障,.zshrc
以便我可以再次使用我的 shell 并修复它。
答案1
您可以在不登录的情况下在远程服务器上运行命令,如下所示:
ssh -lUSERNAME SERVER COMMAND
例如
ssh -lsomeuser someserver 'mv .zshrc .zshrc.bak'
作为最后一个参数给出的命令ssh
将由非交互式 shell 执行,而来自的命令.zshrc
仅由交互式 shell 执行(请参阅zsh
联机帮助页,有关启动和关闭文件的部分)。
答案2
我还可以 sftp 到服务器并.zshrc
用空文件或可用的文件覆盖!
答案3
在这里,这很容易,因为你弄乱的文件仅由交互式登录使用。如果你搞砸了~/.zshenv
,或者如果你的登录 shell 是 bash 并且你搞砸了~/.bashrc
(奇怪的是,bash 读取~/.bashrc
它是否是非交互式登录 shell 并且其父级是rshd
or sshd
),则没有任何方法依赖于执行命令非交互式的就可以了。
SSH 坚持运行 shell。如果您没有其他方式登录(通过另一个帐户或通过 ssh 以外的方法),那么您唯一的办法就是在通过身份验证后、shell 到达有问题的行之前快速按Ctrl+ 。C在实践中,这通常可以手动完成;它可能有助于安排机器重负载(CPU 或磁盘)。如果您在正确的时间按键时遇到困难,请尝试使用expect
。
答案4
我可以将我的 shell 更改为bash
使用:
ssh -luser server 'chsh -s /bin/bash'
假设 bash 在服务器上可用并且它对我有用。