web-dev-qa-db-fra.com

Comment puis-je restaurer .bashrc à sa valeur par défaut?

J'ai essayé d'installer Android outils de développement sur Eclipse, et j'ai suivi les informations présentées dans cette vidéo .

Comme le dit la vidéo, j'ai ajouté les deux lignes de code suivantes dans le fichier .bashrc:

export PATH=$(PATH):-/Android-sdk/tools/
export PATH=$(PATH):-/Android-sdk/platform-tools/

Il semble toutefois que cela ne m’ait pas aidé à installer les fichiers Android sur Eclipse, car j’ai toujours des problèmes avec cela. De plus, il semble que je ne puisse faire aucune commande dans le terminal sans commettre d'erreur majeure maintenant! Chaque fois que j'essaie de faire une commande dans le terminal, le message suivant s'affiche:

La commande n'a pas pu être localisée car '/ usr/bin' n'est pas inclus dans la variable d'environnement PATH.

Est-il possible de restaurer .bashrc à sa valeur par défaut?

57
sarahrahrah

Idea: Il existe des copies de sauvegarde de .bashrc, .profile etc. dans /etc/skel/. Donc, on pourrait remplacer un .bashrc corrompu simplement en négligeant à partir de là.

Attention: Si vous remplacez le fichier .bashrc par un nouveau, cela supprimera toutes les autres modifications que vous y avez apportées. Par exemple, on pourrait ajouter aliases, personnalisé fonction ou CHEMIN dans .bashrc. Lorsque vous remplacez le fichier, toutes ces modifications seront perdues. Mieux vaut conserver une copie de votre .bashrc modifié avant de le remplacer. Plus tard, vous pourrez en extraire soigneusement la pièce requise. Pour conserver une copie de sauvegarde de votre .bashrc modifié dans votre répertoire personnel sous le nom my_bashrc, utilisez ce qui suit dans un terminal,

/bin/cp ~/.bashrc ~/my_bashrc

Pourquoi /bin/cp: Si vous avez modifié votre variable $PATH lorsqu’il a été modifié ~/.bashrc, l’exécutable ne sera plus disponible sur votre terminal et cp ne fonctionnera plus. Il est donc recommandé d'appeler cp avec son chemin complet sous le nom /bin/cp pendant que vous essayez de copier quelque chose avec le corrompu ~/.bashrc.

Enfin, utilisez la commande suivante sur votre terminal pour remplacer le ~/.bashrc par une nouvelle copie.

/bin/cp /etc/skel/.bashrc ~/

Il remplacera votre ~/.bashrc corrompu par un nouveau. Après cela, vous devez rechercher le ~/.bashrc pour que le changement ait lieu immédiatement, écrivez dans le terminal,

. ~/.bashrc

ou,

source ~/.bashrc

ou, si cela ne fonctionne pas, vous pouvez fermer le terminal et l'ouvrir à nouveau.

92
souravc

Si vous ne pouvez pas avoir un shell qui fonctionne

Via le navigateur de fichiers

  • Ouvrez le navigateur de fichiers, accédez au répertoire de base, appuyez sur CtrlH de sorte que les fichiers cachés sont affichés. Editez .bashrc si nécessaire.
  • Ouvrez le navigateur de fichiers, allez à /etc/skel, appuyez sur CtrlH de sorte que les fichiers cachés sont affichés. Copiez .bashrc dans votre dossier de base pour le restaurer aux valeurs par défaut.

Via le menu déroulant

  • Presse AltF2, tapez gedit .bashrc, appuyez sur Enter. Modifier au besoin.
  • Presse AltF2, utilisez la commande /bin/cp /etc/skel/.bashrc ~/ comme indiqué dans réponse de souravc pour la restaurer aux valeurs par défaut.

Via le terminal

  • Ouvrez le terminal et ignorez que vous n’avez pas de shell. Allez à Éditer Préférences Profils :

    enter image description here

  • Créez un nouveau profil ou modifiez le profil actuel pour modifier la commande:

    enter image description here

    Utilisez /bin/bash --norc ou /bin/bash --rcfile=/etc/skel/.bashrc.

  • Commencez un nouvel onglet (avec le profil personnalisé, si vous en avez créé un). Utilisez le Shell en fonction de vos besoins.
  • Supprimez le profil personnalisé ou décochez l'option de commande personnalisée si vous avez modifié le profil par défaut une fois que vous avez terminé.

Si vous avez SSH

Exécutez SSH avec une commande personnalisée, ce qui devrait vous aider à contourner le .bashrc:

ssh -t <Host> dash

Le shell dash (alias /bin/sh) est minimal, mais suffisant pour restaurer le .bashrc.

Si vous ne pouvez pas obtenir une interface graphique et n'avez pas SSH

Démarrez en mode de récupération ( Comment démarrer en mode de récupération? ), ce qui vous permettra d'obtenir un shell racine. Recherchez dans /home le répertoire de base de votre utilisateur.

7
muru

via le téléscripteur

Vous pouvez entrer le TTY en appuyant sur ctrl+alt+f1 où vous devez vous connecter avec votre nom d'utilisateur et votre mot de passe. ctrl+alt+f7 vous ramènera à votre interface graphique plus tard.

Maintenant, copiez le .bashrc brut de /etc/skel dans votre répertoire personnel en

cp /etc/skel/.bashrc ~/

Peut-être même apportez-vous le reste si vous ne savez pas si votre .profile a également été modifié.

cp /etc/skel/.profile ~/

Maintenant, pour que le .bashrc ait un effet immédiat, vous voudrez peut-être le rechercher avec:

source ~/.bashrc

Si vous avez également remplacé votre .profile, vous devez le redémarrer pour que celui-ci prenne effet.

3
Videonauth

J'ai essayé les réponses ci-dessus, mais pour une raison quelconque, mon répertoire /etc/skel/ ne contenait pas les fichiers corrects.

J'ai trouvé une copie du fichier par défaut ~/.bashrc sur ce GitHub Gist de Mario Bonales . Le script complet est copié ici par souci d'exhaustivité.

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(Shell=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the Prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy Prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_Prompt=yes;;
esac

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes

if [ -n "$force_color_Prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_Prompt=yes
    else
    color_Prompt=
    fi
fi

if [ "$color_Prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_Prompt force_color_Prompt

# If this is an xterm set the title to user@Host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# 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 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

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi
0
MattKelly