彩色 bash 不能以 root 用户身份运行

彩色 bash 不能以 root 用户身份运行

我注意到,当我 ssh 到服务器然后 su 到 root 用户时,我在 bash 中没有得到颜色。在这个特定情况下,当我说“不要在 bash 中获取颜色”时,我指的是使用 vim 编辑文件。现在,如果我在登录后执行 sudo,我会得到颜色,所以没有问题。如果我 su 到 root 并源 /root/.bash_profile 那么我会得到 root 的颜色。但我不想每次 su 到 root 时都必须获取 .bash_profile 文件。这是我的 /root/.bashrc 和 /root/.bash_profile 文件的内容。做su时我该怎么做才能获得颜色?

# .bashrc

# User specific aliases and functions

# You may uncomment the following lines if you want `ls' to be     colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'


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

===============================================

# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
alias vi='/usr/bin/vim'
alias grep='/bin/grep --color'
export EDITOR=/usr/bin/vim

# HISTSIZE = number of lines in memory while session is ongoing
# HISTFILESIZE = maximum number of lines in the history file on   disk
export HISTSIZE=3000
export HISTFILESIZE=5000
export HISTFILE=/root/history/.bash_hist-$(who -m | awk '{print   $1}')

答案1

要么使用su -获取登录 shell,要么将别名移至~/.bashrc.看:关于超级用户的回答

答案2

$TERM对我来说,解决方案是通过运行来检查我的变量

printf "$TERM\n"

我得到了

xterm

因为我使用的是 Windows 中的 putty,因此我在 putty 中对其进行了编辑,如下所示:连接>数据>终端详细信息>终端类型字符串: xterm-256color

在此输入图像描述

(还确保节省这些设置)

最后你需要像这样编辑 /root/.bashrc :

sudo vi /root/.bashrc

下面第 38-41 行:

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

如下(同样在第 38-41 行):

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

或者,您可以取消第 46 行的注释:

#force_color_prompt=yes

通过删除 #,但我选择执行上述操作。

答案3

su -m

在终端 su'ing into pi 上为我工作。

相关内容