我搞砸了,退出 .bashrc

cam*_*ace 30 ssh bashrc

我将“退出”放在我的 .bashrc 文件中。我没有对机器的物理访问权限,因此我使用 ssh 连接到它。我没有root权限。每次我连接到服务器时,连接都会自动关闭。

到目前为止,我已经尝试过:

  • 用 scp 和 sftp 覆盖 .bashrc。在我做任何事情之前连接就关闭了。
  • 使用几个不同的 GUI 程序访问 ssh(连接关闭)
  • 用 ftp 覆盖文件。(不能使用ftp)
  • 从我家的电脑
    • $ ssh 主机“bash --noprofile --norc”(连接关闭)
    • $ ssh 主机“mv .bashrc bashrc_temp”(连接关闭)
    • $ ssh 主机“rm .bashrc”(同样的事情)
    • $ ssh host -t(连接关闭)

我可以做些什么来禁用 .bashrc 或者在 .bashrc 被获取之前覆盖文件?

更新

@ring0

我尝试了你的建议,但没有运气。bashrc 文件仍然首先运行。

我尝试的另一件事是使用另一个帐户登录并 sudo 编辑 .bashrc,但我没有此帐户的 sudo 权限。

我想我会联系管理员。

编辑

@shellholic

我不敢相信,但这种方法奏效了!即使“退出”出现在.bashrc 文件的前几行(仅由几个if块和导出语句组成),我仍然设法在 20 次尝试(大约需要 3 分钟)内成功地使用 Ctrl-c 中断它。我删除了 .bashrc 中的违规行,一切又恢复正常。

she*_*lic 39

您可以尝试在执行退出部分之前中止 (ctrl+C) .bashrc

我尝试在 testuser 的 bashrc 顶部添加以下内容,它有效,只是时间问题。在我的情况下很容易:

sleep 3
echo "Too late... bye"
exit 0
Run Code Online (Sandbox Code Playgroud)

  • +1,因为它可能是唯一不需要系统管理员帮助的解决方案。但是,正确的计时需要很多运气(ssh -v host 可能会有所帮助)。 (8认同)
  • 我非常欣赏这里可悲可笑的低技术和残酷的有效性的结合。 (4认同)

Ale*_*ach 14

我也设法在我获得试用访问权限的新集群上弄乱了我的 .bashrc 文件。不想看起来像个菜鸟,我想做的最后一件事是向管理员寻求帮助,但我无法及时获得 ^+C 的帮助。
然而,有效的是将“rm”命令作为最终参数发送给 ssh。IE

ssh -tv user@host rm .bashrc
Run Code Online (Sandbox Code Playgroud)

我无法让 'mv' 命令工作(之前在没有 -t 的情况下尝试过),所以我认为 -t 选项肯定已经完成了,但是如果你愿意,你可以测试它。我现在已经从 .bashrc~ 文件(由 vim 制作)中恢复了除有问题的狡猾行之外的所有内容,并且一切正常!=D

  • `ssh -tv user@home mv .bashrc .bashrc-old` 为我工作 (2认同)