如何恢复.bashrc 文件?

如何恢复.bashrc 文件?

终端打开时显示以下内容:

bash: /home/atlas/.bashrc: line 73: syntax error near unexpected token `['
bash: /home/atlas/.bashrc: line 73: `if [ -x /usr/bin/dircolors ] ; then '

我尝试使用以下方法修复它:

cp /ect/skel/.bashrc ~/

我得到了这个:

cp: cannot stat `/ect/skel/.bashrc': No such file or directory

我不确定为什么会这样以及如何修复它。我之前一直在.bashrc乱弄文件,显然我把某些东西弄乱了。我只想将.bashrc文件恢复为默认设置。

答案1

我认为你的路径是错误的——它etc不是ect

在 Ubuntu 中,有一个默认版本.bashrc目录中的文件/etc/skel/,因此如果您遇到问题,您可以恢复它。

为此,请按照以下步骤操作:

  1. 备份当前.bashrc文件:

    cp ~/.bashrc ~/.bashrc.bak
    
  2. 将骨架.bashrc文件复制到您的文件上:

    cp /etc/skel/.bashrc ~/
    
  3. 然后,加载新的:

    source ~/.bashrc
    

答案2

复制内容https://gist.github.com/marioBonales/1637696/raw/337f7b60d4e3d9e887a0206dec6a737e94cdd26e/.bashrc

~/.bashrc。您可以使用诸如 的文本编辑器gedit来完成此操作。

答案3

您不一定需要重新创建它,只需查看错误消息告诉您什么。它说您的文件中有语法错误。根据您提供的信息,我认为它在关键位置不正确。

代替

if [ -x /usr/bin/dircolors ] ; then

它应该是

if [ -x /usr/bin/dircolors ]; then

]请注意和之间缺少空格;

另外,作为参考,这里是整个 if 块:

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

答案4

WSL Ubuntu 解决方案

此解决方案利用了为 WSL 开发的一款非常酷的软件。我假设您的~/.bashrc文件是 istoast,并且您有 WSL。如果我的两个假设中的任何一个不正确,请停止阅读;这对您不起作用。

  1. 首先,你需要 GWSL(又名 Windows Subsystem Server for Linux)。GWSL 服务器将 Windows 连接到 Linux 发行版,并提供对 Linux 文件系统的访问权限。

    下面是当您从任务栏右侧的任务视图按钮打开菜单时菜单的样子(假设您的任务栏位于桌面底部的默认位置)。

    在此处输入图片描述

  2. 只需点击 Linux 文件按钮,然后选择您正在使用的发行版(假设您有多个发行版可供选择,对于 99% 的人来说,这将是 Ubuntu 或 Debian。)。如果这是我第一次使用 GWSL 服务器,有时它会让我从 3 个菜单中进行选择,其中有另一个文件选项(这次它没有弹出,所以请注意它被称为文件某物)。

    下面是从我的桌面截取的截图。你的文件系统应该像这样。

    重要提示:记下 Windows 文件浏览器中的文件路径

    注意:文件路径应指向您删除~/.bashrc文件的发行版。如果不是,您将修复(或破坏)一个发行版,而这个发行版从一开始就没有损坏,并且您将不得不重复此操作两次。

    在此处输入图片描述

  • 我忘记了这个箭头,但是您想要打开文件夹 - 它与您使用 shell(在本例中为 bash)从本机终端从文件系统导航文件系统时的目录etc相同。/etc/...
  1. 弹出后etc,打开文件夹skel。同样,这相当于etc/skel/...。每次向系统添加新用户时,都会复制此目录,它会保留一个默认配置的~/.bashrc文件,因为每个用户都需要一个,这就是你这样做的原因,因为你不再有一个。

    不要直接双击该/etc/skel/.bashrc文件。请先阅读步骤 4。

  2. 就像我上面说的,你应该看到一个.bashrc文件。右键单击它,然后用编辑器打开它。我个人喜欢使用 VS Code。如果你正确地按照说明操作,它应该会在当天弹出。暂时不要编辑或复制粘贴

  3. 返回到您打开 Linux 文件系统的 Windows 文件导航窗口,然后导航回您的发行版主目录,我的读取内容为\\wsl$\Ubuntu-20.04,如果您使用通用 Ubuntu 发行版,它应该读取内容\\wsl$\Ubuntu

    注意:根据您对 Windows 的配置,路径可能看起来有所不同,但当您复制并粘贴它时,它应该看起来像我刚刚发布的路径(请记住我们现在在 Windows 中,所以我们使用反斜杠,而不是正斜杠)。

    从您的发行版的基本目录(在 Linux 中是一个简单的正斜杠/)打开文件夹home(在 Linux 中为/home)。

    您应该会看到一个带有您的用户名的文件夹,打开它。

  4. 你现在应该在\\wsl$\Ubuntu-20.04\home\$YOUR_USER_NAME(显然 $YOUR_USER_NAME 不是文字语义,应该替换为“您的用户名”.) 随着时间的推移,我了解到,对于那些经验较少的人来说,有时需要说这些小事,所以我向寻求快速解决方案的经验丰富的用户道歉。

    右键单击\\wsl$\Ubuntu-20.04\home\$YOUR_USER_NAME并将鼠标悬停new在右键单击菜单中。它应该打开另一个菜单,您可以在其中选择文件类型(我选择文本),任何文件都可以,无论如何我们都会删除扩展名。创建新文件后,将其命名为 .bashrc,然后打开它。

    最后但并非最不重要的:

    将编辑器中的内容复制并粘贴到新.bashrc文件中,就完成了。

相关内容