¿Por qué aparece "(base)" delante del indicador de mi terminal?

88

Según el título, me pregunto por qué tengo (base)a la izquierda de mi indicador de terminal.

Si corro source ~/.profileen la terminal, desaparece.

Si cierro esa terminal y vuelvo a abrir una nueva terminal, (base)está allí nuevamente.

Me gustaría saber qué es, gracias.

Mira en la imagen:

Imagen de mi aviso

Aquí está el contenido de mi .profile(excluyendo cosas estándar de $ path y otras cosas personalizadas):

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

Aquí está el contenido de mi .bashrc

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# 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

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# 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|*-256color) 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

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# 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 ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

# added by Anaconda3 installer
#export PATH="/home/jim/anaconda3/bin:$PATH"
. /home/jim/anaconda3/etc/profile.d/conda.sh
conda activate

Busqué por todas partes, pero no pude encontrar la respuesta. Otro usuario hizo las mismas preguntas, pero aún no tiene respuesta:

Palanqueta
fuente

Respuestas:

37

Esto parece provenir de su condaentorno. En particular, está activando condadesde su de la ~/.bashrcsiguiente manera

# added by Anaconda3 installer
#export PATH="/home/jim/anaconda3/bin:$PATH"
. /home/jim/anaconda3/etc/profile.d/conda.sh
conda activate

y conda activateantepone su solicitud con (<env-name->)- porque no está especificando un entorno particular, que por defecto es (base).

El comportamiento está documentado en Uso del archivo de configuración .condarc conda :

Cambiar símbolo del sistema (changeps1)

Cuando use activar, cambie el símbolo del sistema de $ PS1 para incluir el entorno activado. El defecto es cierto.

EJEMPLO:

changeps1: False

Entonces, para que desaparezca, busque y modifique su .condarcarchivo, o no active conda desde su ~/.bashrcarchivo.

conductor de acero
fuente
105

Esto también puede ser porque auto_activate_baseestá configurado en True. Puede verificar esto usando el siguiente comando

conda config --show | grep auto_activate_base

Para establecerlo falso

conda config --set auto_activate_base False
bksahu
fuente
55
¡Este comando finalmente me ayudó! Las otras soluciones no funcionaron porque changeps1ya estaba configurado como falso. El error en mi caso se produjo después de que instalé a matplotlibtravés de conda. Antes (base)nunca se mostraría. ¡Gracias por agregar la línea para verificar la configuración!
Andrusch
finalmente alguien da en el blanco. Pero, ¿sabes por qué ese valor cambia de repente a Verdadero? (En mi caso no fue así durante mucho tiempo)
HongboZhu
2
PD: la terminal debe cerrarse y volverse a abrir para que el cambio surta efecto
Nino Filiu
Esto parece haber funcionado para mí también. Sin embargo, mi objetivo era solo eliminar los (base)caracteres del símbolo del sistema; No quiero cambiar mi configuración de conda / python / jupyter / etc. > ¿Esto solo se eliminará (base)de la solicitud sin ningún efecto secundario? Si no, ¿cuáles podrían ser los efectos secundarios?
TransferOrbit
Gracias por la solucion. Funcionó para mi.
Suraj Dubey
24

(base) aparece debido a cambios en el entorno de conda.

El siguiente comando oculta el entorno (base).

conda config --set changeps1 False
Felix Solomon
fuente
1
Para eliminarlo solo para el entorno base pero no para otros, verifique esto: stackoverflow.com/questions/55171696/…
Homero Esmeraldo
3

Para desactivar un entorno conda, ingrese:

conda deactivate

Esto eliminará la (base)solicitud anterior a Linux, como se ve aquí:

(base) usuario @ office-pc: ~ $

Marley Davis
fuente
-1

ejecutó el código a continuación, luego ingresó conda deactivatey la base se fue.

echo >&2 "DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'."
"$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?

conda desactivar

Steven Peterson
fuente
-1

Parece que todavía es una característica experimental de Anaconda.

Para volver a la normalidad, puede ejecutar el comando:

conda init --reverse

Luego, debe cerrar la ventana de shell actual y abrir una nueva para ver las modificaciones.

Anderson Chaves
fuente