我搞砸了,退出.bashrc

我把“退出”放在我的.bashrc文件中。 我没有物理访问机器,所以连接到它我使用SSH。 我没有root权限。 每次连接到服务器时,连接都会自动closures。

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

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

有什么我可以做的,禁用.bashrc或者可能覆盖之前.bashrc来源的文件?

UPDATE

@ RING0

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

我尝试的另一件事是login另一个帐户和sudo编辑.bashrc,但我没有这个帐户的sudo权限。

我想我会联系pipe理员。

编辑

@shellholic

我不敢相信,但是这个方法奏效了! 尽pipe在.bashrc文件的前几行(只包含几个块和导出语句)中出现了“退出”,但我还是设法在二十次尝试(约需3分钟)内成功地中断它。 我删除了.bashrc中的违规行,并且所有内容都按照正常的顺序运行。

    你可以尝试在你的.bashrc的退出部分被执行之前放弃(ctrl + C)。

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

     sleep 3 echo "Too late... bye" exit 0 

    我设法搞乱了我的.bashrc文件,在一个我已经试用过的新集群上。 不想看起来像一个noob,我想做的最后一件事情是从pipe理员那里寻求帮助,我不能得到一个适时的^ + C工作。
    然而,做什么工作是发送一个“rm”命令作为ssh的最终参数。 即

     ssh -tv user@host rm .bashrc 

    我无法得到一个'mv'命令的工作(以前没有-t),所以我认为-t选项必须已经完成了,但你可以testing,如果你想。 我现在已经从.bashrc文件(由vim生成)恢复了,但是有问题的线路一切都是正确的。 = d

    如果您可以以其他用户身份login,请尝试以下操作:

     su user -s /bin/sh 

    当然,你需要你的密码。

    如果我记得有一些不好的经验,像这样,ssh,scp,sftp似乎运行初始化文件。

    我的build议是使用简单的FTP,然后删除或重命名FTP命令行上的文件坏文件login后,我假设你的系统将允许你FTP访问。 在这种情况下,请务必在修理完成后更改密码(安全)。

    man ssh (至lessOpenSSH_5.6p1 ,不知道什么时候添加),

     ~/.ssh/rc Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information. 

    ..这意味着你可以创build包含以下内容的~/.ssh/rc

     mv ~/.bashrc ~/bak.bashrc 

    然后,当你ssh进入时,有问题的bashrc将会被移出,在你的loginshell启动之前 – 你可以很明显地修复bak.bashrc并将其移回原位

    通过SCP或SFTP连接,并以这种方式编辑/重命名/删除你的.bashrc文件。 编辑 – 哦,我看你说你试过了。 好吧。

    我有同样的问题,并以某种方式能够解决它。 我使用ssh访问系统,并在login系统后立即按住Ctrl + c。 然后,〜/ .bashrc没有被读取,我可以修改它。