/root/.bashrc
我有一个专用的远程 Web 服务器。我通过添加搞乱了文件source /root/.bash_profile
。它在 sudo su 上发生核心转储。
$ sudo su
Segmentation fault (core dumped)
我也无法使用 root 通过 ssh 登录服务器。
我做不到sudo su
。
我可以将服务器重新启动到救援模式。
我如何恢复 .bashrc 文件?
答案1
很少有理由使用sudo su
。
您可以使用 获得 root shell ,或者使用 获得sudo -s
root 登录 shell(相当于sudo su --login
// sudo su -l
)。在 的情况下,如果设置了变量,则运行的 shell 是由变量指定的,否则由调用用户的密码数据库条目指定的 shell。sudo su -
sudo -l
sudo -s
SHELL
因此,如果您搞砸了,/root/.bashrc
您可以尝试以下一些选项:
直接调用非 bash 交互式 shell 例如
sudo sh
通过以下方式调用非 bash 交互式 shell
SHELL=/bin/sh sudo -s
直接调用 bash,跳过资源文件,
sudo bash --norc
暂时重命名有问题的文件,例如
sudo mv /root/.bashrc /root/.bashrc.old
原则上,你也可以使用以下命令调用 root 登录 shell,sudo -l
因为 bash 登录 shell 读取~/.profile
而不是~/.bashrc
然而默认的 Ubuntu 配置源自$HOME/.bashrc
,$HOME/.profile
以便为交互式登录 shell 和非登录 shell 提供相同的外观和感觉。如果您有一个非默认的/root/.profile
,或者/root/.bash_profile
或/root/.bash_login
,则可以避免获取损坏的.bashrc
。