web-dev-qa-db-fra.com

L'exécution de bash fait "erreur de segmentation déchargée"

J'ai redémarré récemment et le terminal ne fonctionne plus. Si je clique sur le raccourci du terminal ou utilise Guake ou ctrl-alt-T, le terminal s'ouvre brièvement sans invite, puis se referme immédiatement. J'ai également installé xterm et la même chose se produit.

Si j'utilise ctrl-alt-F1 pour accéder à une session de ligne de commande et saisis gnome-terminal, le message d'erreur suivant s'affiche:

Failed to parse arguments: Cannot open display

Comment puis-je diagnostiquer et résoudre ce problème?

EDIT TO ADD .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

EDIT 2-- en ajoutant .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

Cela n'a rien à voir avec gnome-terminal, lorsque vous appuyez sur CtrlAltF1, connecté depuis la console virtuelle et essayé d'exécuter bashname__, vous avez un segmentation fault core dumped qui signifie que bashse bloque.

Quoi qu'il en soit, ce qui se passe, c'est que votre bash entre dans une boucle infinie. Lorsque bashcommence pour la première fois, il se lit ~/.bashrc (en réalité, il s’agit d’une simplification, voir ici pour plus de détails). Dans votre cas (et dans la plupart sinon toutes les versions d’Ubuntu), le .bashrc par défaut, pour des raisons qui n’ont jamais été claires, sources (lit) ~/.profile également. Maintenant, votre ~/.profile inclut cette ligne:

source ~/.profile

Le résultat est que bashlit ~/.bashrc => lit ~/.profile => lit ~/.profile => lit ~/.profile => lit ~/.profile etc. C'est ce qu'on appelle une boucle sans fin. Finalement, il panique et s’effondre.

Supprimer la ligne source ~/.profile de votre ~/.profile devrait remettre tout à la normale.

8
terdon

Pour mayank

"Supprimer la ligne source ~/.profile de votre ~/.profile" signifie simplement rechercher les fichiers ~/.bash_profile, ~/.profile, ~./Bashrc, ~/bash_login, /etc/bash.bashrc et/etc/profile (comme mentionné dans le commentaire), en les ouvrant et en supprimant la ligne:

source ~/.profile

ou

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

FYI: '~' n'est pas un symbole étrange, cela signifie simplement votre répertoire personnel. donc c'est essentiellement le chemin du fichier .profile.

Its HOME_DIRECTORY/.profile.
0
Rahul Bhojwani