运行 bash 时出现“段错误核心转储”

运行 bash 时出现“段错误核心转储”

我最近重新启动了,现在终端无法工作。如果我单击终端快捷方式或使用Guakectrl-alt-T,终端会短暂打开而没有任何提示,然后立即再次关闭。我xterm也安装了,但发生了同样的事情。

如果我使用ctrl-alt-F1命令行会话并输入,gnome-terminal我会收到错误消息:

Failed to parse arguments: Cannot open display

我该如何诊断并修复这个问题?

编辑添加.bashrc

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile"

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
alias zf=/home/julio/ZendFramework-1.12.3/bin/zf.sh

编辑2——添加.profile

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

export SCALA_HOME=/usr/share/scala
export PATH=$PATH:$SCALA_HOME/bin
source ~/.profile

答案1

这与 无关gnome-terminal,当您点击Ctrl Alt F1,从虚拟控制台登录并尝试运行 时bash,您会得到一个segmentation fault core dumped,这意味着bash本身崩溃了。

无论如何,发生的事情是您的 bash 正在进入无限循环。bash首次启动时,它会读取~/.bashrc(实际上,这是一个简化,请参阅这里了解详情)。 在您的案例中(以及在大多数(如果不是所有)Ubuntu版本中),默认的.bashrc,出于我一直不清楚的原因,来源(读取)~/.profile也是如此。 现在,您的~/.profile包括此行:

source ~/.profile

结果是bash读取~/.bashrc=> 读取~/.profile=> 读取~/.profile=> 读取~/.profile=> 读取~/.profile等等。这被称为无限循环。最终,它会失控并崩溃。

删除该source ~/.profile线路~/.profile应该可以使一切恢复正常。

答案2

对于 mayank

“从您的 ~/.profile 中删除源 ~/.profile 行”意味着仅搜索文件 ~/.bash_profile、~/.profile、~./bashrc、~/bash_login、/etc/bash.bashrc 和 /etc/profile(如注释中所述),打开它们并删除以下行:

source ~/.profile

或者

#[[ -s "$HOME/.profile" ]] && source "$HOME/.profile     

仅供参考:“~”不是一个奇怪的符号,它只是表示您的主目录。所以它基本上是 .profile 文件的路径。

Its HOME_DIRECTORY/.profile.

相关内容