web-dev-qa-db-ja.com

bashを実行すると「セグメンテーションエラーコアダンプ」が発生する

最近リブートしましたが、ターミナルが機能しなくなりました。端末のショートカットをクリックするかGuakeまたはctrl-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
5
user101289

これは、gnome-terminalとは関係ありません。 CtrlAltF1、仮想コンソールからログインしてbashを実行しようとすると、segmentation fault core dumpedを取得しました。つまり、bash自体がクラッシュします。

とにかく、何が起こっているのかは、あなたのbashが無限ループに入っているということです。 bashが最初に起動するとき、~/.bashrcを読み取ります(実際、これは単純化です。詳細については here を参照してください)。あなたの場合(そしてすべてではないにしても、ほとんどのUbuntuバージョン)、デフォルトの.bashrcは、私には明らかではなかった理由で、ソース(読み取り)~/.profileも同様です。これで、~/.profileに次の行が含まれます。

source ~/.profile

その結果、bash~/.bashrc =>を読み取り~/.profile =>が~/.profile =>を読み取り~/.profile =>が~/.profileなどを読み取ります。これは、無限ループと呼ばれます。最終的に、それはおかしくなり、クラッシュします。

source ~/.profileから~/.profile行を削除すると、すべてが通常に戻ります。

8
terdon

マヤンク用

「ソースの〜/ .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.
0
Rahul Bhojwani