我认为我在添加路径时输入了错误~/.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。
非常感谢!