Linux 终端登陆后显示bash-4.2$和(base)的问题

问题描述:

同事使用终端时不下心删除了用户下的.bash_profile,然后终端提示符显示的是bash-4.2$, 而不是 [用户名@主机名 路径]$ 的显示方式,问我怎么修改。好在原来遇到过这个问题,我淡定的说我来解决吧。然而发现自己已经忘记上次的解决方式了。这次就记录一下,以防下次再次出现这种问题又查一通。


解决方案

1. 查看用户下是否还有.bashporfile和.bashrc文件

若没有这两个文件,可以从/etc/skel/下将文件copy过来。
/etc/skel/目录是用来存放新用户配置文件的目录,当添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。
这个目录下的所有文件都是隐藏文件(以.点开头的文件)。
通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。
—————————————————————————————————————————————————————
(1).bash_profile文件

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

(2).bashrc 文件

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
  1. 执行以下指令,使更改生效:
source ~/.bash_profile

一般情况这样就可以恢复当前用户的提示符。

如果当前用户要自定义提示信息,可以在.bash_profile文件末尾追加:export PS1='[\u@\h \W]$ ',然后执行上述source ~/.bash_profile 命令,使修改生效。

PS1是什么?

linux下环境变量PS1简单来说就是设置命令提示符显示的内容。

如上面显示的 bash-4.2$,以及我们希望看到的显示用户名路径信息。

PS1变量中提示符各项含义:

\d :代表日期,格式为weekday month date,例如:Wed Dec 12
\H :完整的主机名称。例如:hostname是debian.linux
\h :仅取主机的第一个名字,如上例,则为debian,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称 如:root
\v :BASH的版本信息  如:3.2
\w :完整的工作目录名称。家目录会以 ~代替 如显示/etc/default/
\W :利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示default
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

————————————————

第二个问题(base)提示符

问题描述:解决了提示符为bash-4.2$的问题,但用户显示还是不正常,终端出现(base)


造成这种现象是因为用户近期安装了anaconda3,然后vim ~/.bashrc进行了环境变量配置。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/bioinfo2/user/miniconda3/bin/conda' 'shell.bash' 'hook' 2>
/dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/bioinfo2/user/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/bioinfo2/user/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/bioinfo2/user/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

Anaconda指的是一个开源的Python发行版本,其中包含了conda、python等180多个科学包及其依赖项。本身比较大,Miniconda是它的瘦身版(仅包含conda、python)。

解决方案:

1.单次解决更改

使用conda deactivate 命令去除base
上述修改仅单次有效,关闭终端后重新打开更改会失效。

2. 永久更改

可以通过修改conda的配置来实现永久更改。
Step1: 使用conda config --show查看conda的配置,可以看到 auto activate base : True是打开的,如下:


Step2: 使用conda config --set auto_activate_base False 命令将其设置为False即可,如下:

可以看到已经改为False了,但是终端还是带有(base),重新登录下(base)即消失了。
PS:普通用户即可更改自己的配置,无需管理员权限。

参考:

  1. 版权声明:本文为CSDN博主「_IanXiao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/codetz/article/details/52541780
  2. 版权声明:本文为CSDN博主「日出东方VS唯我不败」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_32786873/article/details/80990928
  3. 版权声明:本文为CSDN博主「荒原狼Just」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Just_youHG/article/details/104686642

你可能感兴趣的:(Linux 终端登陆后显示bash-4.2$和(base)的问题)