无法登录Cloud Shell:fish shell未找到问题求助
解决Cloud Shell因.bashrc中
exec fish无法登录的问题 步骤1:强制进入无配置的bash会话
之前的命令无响应大概率是因为未分配伪终端,改用带-t参数的SSH命令:
gcloud cloud-shell ssh --authorize-session --ssh-flag="-t" --command="bash --noprofile --norc"
该命令会启动一个不加载任何配置文件的bash终端,绕过.bashrc的错误配置。
步骤2:修复.bashrc文件
成功进入bash后,立即编辑.bashrc删除exec fish行:
nano ~/.bashrc
找到包含exec fish的行并删除,按Ctrl+O保存,回车确认后按Ctrl+X退出编辑器。
备选方案:SSH命令仍无响应时,用SCP修改文件
- 方式1:本地创建一个去掉
exec fish行的临时.bashrc文件,执行SCP替换远程文件:
gcloud cloud-shell scp /path/to/local/bashrc cloudshell:~/.bashrc
- 方式2:直接远程执行sed命令删除目标行:
gcloud cloud-shell ssh --authorize-session --ssh-flag="-t" --command="sed -i '/exec fish/d' ~/.bashrc"
后续操作
修复后重新登录Cloud Shell即可正常进入bash。若仍需使用fish shell,重新安装:
sudo apt update && sudo apt install fish
如需设置fish为默认shell,可尝试chsh -s /usr/bin/fish(部分环境可能需要管理员权限)。
内容的提问来源于stack exchange,提问作者Golam Moula
相关产品推荐
相关产品推荐

