意外更改了 PATH 变量,我无法将其改回来,或者使用 vim 等。帮助

意外更改了 PATH 变量,我无法将其改回来,或者使用 vim 等。帮助

我知道有很多这样的问题,但不幸的是我对 Ubuntu 了解不够,无法将其应用于我的情况。我把所有工作资料都保存在远程机器上,我通过 ssh 访问。我试图用我在那里的 conda 环境更改某些内容,并在 .bashrc 文件中更改了某些内容,现在我无法使用 vim 或 ls - 似乎没有文本编辑器或命令起作用。

echo $PATH 返回: /home/percyrou/bin:/home/percyrou/bin:/home/user/bin:~/ghf_env/bin/

据我记得,在我意外更改 .bashrc 文件之前,PATH 就像是这样的:/home/user/bin:

我认为所有这些额外的部分都被添加了,因为我试图用以下方法更改它:

echo 'export PATH="/home/percyrou/bin:$PATH"' >> ~/.bashrc(或者只是用 user 而不是 percyrou,因为我不确定是哪个),它似乎将其添加到 PATH 而不是替换它。我已经运行了source ~/.bashrc

我也尝试过scp将 .bashrc 文件下载到本地机器并在那里进行编辑,但是也返回了bash: scp: command not found,我猜是因为scp也包含在我的 .bashrc 文件中。

请帮忙!我不知道如何从这里继续再次访问我的路径变量。:(

答案1

您仍然可以使用scp和其他命令,只是您需要输入绝对路径,如/usr/bin/scp而不是仅仅scp(或类似地/usr/bin/ls而不是等等ls),因为 shell 无法在您的 上找到这些命令$PATH

尝试/usr/bin/cat .bashrc显示文件内容.bashrc/usr/bin/vim .bashrc编辑它。如果无法通过编辑使文件正常工作,则.bashrc在 下有一个默认文件(在创建帐户时复制到每个用户的主目录)/etc/skel/.bashrc。使用以下命令将其复制覆盖当前.bashrc文件:

/usr/bin/cp /etc/skel/.bashrc .bashrc

答案2

重置路径至最低可用版本

PATH=$(getconf PATH)

然后修复你的 .bashrc

相关内容