iTerm 2 - 切换用户后的奇怪问题
iTerm 2 - strange issues after switching a user
我在 Mac 上使用 iTerm 2 登录远程 Ubuntu 系统。当我使用 ssh 和基于密钥的身份验证建立连接时,iTerm 2 通常会提供一些漂亮的颜色。
但是,当我使用 user/password 身份验证登录时,我发现了一些奇怪的问题。
颜色突出显示功能消失了。 ls
、vim
等到处都是黑白显示。我试过将颜色滑块移动到完全对比度,然后再移动回来,但没有帮助。
Tab 键不再自动完成。例如,如果我键入 vim b+tab
,它不会完成以 b
开头的文件名。相反,它会插入一个制表符 space.
我还尝试通过 ssh 密钥连接到远程机器(颜色显示正确,选项卡有效),然后通过 su username
命令切换到另一个用户。但是登录后我又遇到了同样的问题。我为此搜索了很多,但没有找到任何解决方案。
我该如何解决这个问题?
我相信,这不是 iTerm
问题。在远程系统的 .bashrc
中,将 #force_color_prompt
从 no
更改为 yes
。
# 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
如果这已经设置,但您仍然面临同样的问题,那么问题是 ssh
没有使用 bashrc
文件。您可以通过将以下内容添加到 ~/.bash_profile
:
在您的 ssh 会话中使用 bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
我终于用下面的代码解决了这个问题:
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
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
我在 Mac 上使用 iTerm 2 登录远程 Ubuntu 系统。当我使用 ssh 和基于密钥的身份验证建立连接时,iTerm 2 通常会提供一些漂亮的颜色。
但是,当我使用 user/password 身份验证登录时,我发现了一些奇怪的问题。
颜色突出显示功能消失了。
ls
、vim
等到处都是黑白显示。我试过将颜色滑块移动到完全对比度,然后再移动回来,但没有帮助。Tab 键不再自动完成。例如,如果我键入
vim b+tab
,它不会完成以b
开头的文件名。相反,它会插入一个制表符 space.
我还尝试通过 ssh 密钥连接到远程机器(颜色显示正确,选项卡有效),然后通过 su username
命令切换到另一个用户。但是登录后我又遇到了同样的问题。我为此搜索了很多,但没有找到任何解决方案。
我该如何解决这个问题?
我相信,这不是 iTerm
问题。在远程系统的 .bashrc
中,将 #force_color_prompt
从 no
更改为 yes
。
# 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
如果这已经设置,但您仍然面临同样的问题,那么问题是 ssh
没有使用 bashrc
文件。您可以通过将以下内容添加到 ~/.bash_profile
:
bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
我终于用下面的代码解决了这个问题:
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
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