不使用 bash 命令恢复 ~/.bashrc

不使用 bash 命令恢复 ~/.bashrc

我认为我在添加路径时输入了错误~/.bashrc,并且在获取路径后,我无法再使用 bash 命令。

现在我想恢复正常~/.bashrc,但是我发现大多数讨论(例如如何修复错误编辑的 .bashrc?)需要使用 bash 命令,例如cp

clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)

我可以知道如何~/.bashrc在不使用 bash 命令的情况下进行恢复吗?

谢谢。

答案1

cp不是 bash 命令——它是一个外部程序。这就是它失败的原因;实际的 bash 命令不会受到库或路径更改的影响。因此,您需要相反的操作,即使用仅有的bash 命令。

您可以使用以下命令彻底删除文件的内容:

true > ~/.bashrc

或者用其他内容覆盖:

echo "" > ~/.bashrc

或者你可以尝试在活动 shell 中暂时撤消错误的更改:

unset LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT
export PATH=/bin:/usr/bin
cp /etc/skel/.bashrc ~

或者你可以使用 shell 内置命令逐行复制文件的内容:

while IFS="" read -r line; do
    echo "$line";
done < /etc/skel/.bashrc > ~/.bashrc

答案2

您当前是否已登录系统?如果是,您可以切换到另一个 shell,然后编辑文件

> chsh
> vi ~/.bashrc

答案3

您破坏了用于动态链接程序的库路径。这些路径不包含执行程序所需的所有代码,但在启动时从共享库中加载一些代码。

一些程序经过编译以避免出现此问题(例如,以 root 身份运行的程序或在启动过程的早期需要的程序)。它们通常放置在/sbin和中/usr/sbin。具体是什么取决于安装了什么。

在我的 Mac 上似乎没有可用的编辑器,但您的系统可能有。

答案4

我已按照@Peter Cordes 的建议撤消我的编辑:取消设置 LD_LIBRARY_PATH。

非常感谢!

相关内容