我注意到,当我 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 上为我工作。