Tại sao, (cơ sở), xuất hiện trước dấu nhắc thiết bị đầu cuối của tôi?


87

Theo tiêu đề, tôi tự hỏi tại sao tôi (base)ở bên trái dấu nhắc thiết bị đầu cuối của mình.

Nếu tôi chạy source ~/.profiletrong thiết bị đầu cuối, nó biến mất.

Nếu tôi đóng thiết bị đầu cuối đó và mở lại một thiết bị đầu cuối mới, (base)sẽ có một lần nữa.

Tôi muốn biết nó là gì, cảm ơn.

Kiểm tra trong hình ảnh:

Hình ảnh nhắc nhở của tôi

Đây là nội dung của tôi .profile(không bao gồm công cụ đường dẫn $ tiêu chuẩn và những thứ được cá nhân hóa khác):

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

Đây là nội dung của .bashrc của tôi

# 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

Tôi đã tìm kiếm khắp nơi, nhưng không thể tìm thấy câu trả lời. Một người dùng khác đã hỏi những câu hỏi tương tự, nhưng vẫn chưa được trả lời:

Câu trả lời:


37

Điều này dường như đến từ condamôi trường của bạn . Cụ thể, bạn đang kích hoạt condatừ ~/.bashrcnhư sau

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

và trả trước conda activatelời nhắc của bạn với (<env-name->)- vì bạn không chỉ định một môi trường cụ thể, mặc định đó là (base).

Hành vi được ghi lại tại Sử dụng tệp cấu hình .condarc conda :

Thay đổi dấu nhắc lệnh (changeps1)

Khi sử dụng kích hoạt, thay đổi dấu nhắc lệnh từ $ PS1 để bao gồm môi trường được kích hoạt. Mặc định là đúng.

THÍ DỤ:

changeps1: False

Vì vậy, để làm cho nó biến mất, hãy tìm và sửa đổi .condarctệp của bạn - hoặc không kích hoạt conda từ ~/.bashrctệp của bạn .


101

Điều này cũng có thể là do auto_activate_baseđược đặt thành True. Bạn có thể kiểm tra điều này bằng lệnh sau

conda config --show | grep auto_activate_base

Đặt sai

conda config --set auto_activate_base False

5
Lệnh này cuối cùng đã giúp tôi! Các giải pháp khác không hoạt động vì tôi changeps1đã được đặt thành sai. Lỗi trong trường hợp của tôi là sau khi tôi cài đặt matplotlibqua conda. Trước (base)sẽ không bao giờ hiển thị. Cảm ơn đã thêm dòng để kiểm tra cấu hình!
Andrusch

cuối cùng cũng có người đánh dấu. Nhưng bạn có biết tại sao giá trị đó đột nhiên được chuyển sang True không? (Trong trường hợp của tôi đã không như vậy trong một thời gian dài)
HongboZhu

1
PS: thiết bị đầu cuối phải được đóng và mở lại để thay đổi có hiệu lực
Nino Filiu

Điều này dường như đã làm việc cho tôi là tốt. Tuy nhiên, mục tiêu của tôi chỉ là loại bỏ các (base)ký tự khỏi dấu nhắc lệnh; Tôi không muốn thay đổi thiết lập conda / python / jupyter / etc của mình. > Điều này sẽ chỉ loại bỏ (base)khỏi dấu nhắc mà không có bất kỳ tác dụng phụ? Nếu không, tác dụng phụ có thể là gì?
TransferOrbit

Cảm ơn giải pháp. Nó làm việc cho tôi.
Suraj Dubey

24

(cơ sở) xuất hiện do sự thay đổi trong môi trường conda.

Các lệnh sau ẩn môi trường (cơ sở).

conda config --set changeps1 False

1
Để chỉ xóa nó cho môi trường cơ sở chứ không phải cho những người khác, hãy kiểm tra điều này: stackoverflow.com/questions/55171696/
mẹo

3

Để hủy kích hoạt môi trường conda, hãy nhập:

conda deactivate

Điều này sẽ loại bỏ (base)trước dấu nhắc Linux của bạn, như được thấy ở đây:

(cơ sở) người dùng @ office-pc: ~ $


-1

chạy mã bên dưới rồi nhập conda deactivatevà căn cứ biến mất.

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

conda ngừng hoạt động


-1

Nó dường như vẫn là một tính năng thử nghiệm của Anaconda.

Để hoàn nguyên nó trở lại bình thường, bạn có thể chạy lệnh:

conda init --reverse

Sau đó, bạn cần đóng cửa sổ shell hiện tại và mở một cửa sổ mới để xem các sửa đổi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.