linux - BASH 和/或 .BASHRC 在 SU 或 SSH 登录后无法正常工作,除非运行 "bash"命令

标签 linux bash ubuntu amazon-ec2

我有一台运行 Ubuntu 10.04 的 Amazon EC2 机器。

默认用户,ubuntu 的 .bashrc 似乎表现正常,但是如果我 sshsu 到第二个用户,mikey,在我运行 bash 之前它无法正确显示:

Ex 1.) 使用 su 更改用户

mikey@home ~$ ssh ubuntu@EC2
ubuntu@EC2:~$
ubuntu@EC2:~$ su mikey
$ 
$ bash
mikey@EC2: $

Ex 2.) SSH-ing 直接作为用户

mikey@home ~$ ssh mikey@EC2
/home/mikey/.bashrc: 13: shopt: not found
/home/mikey/.bashrc: 21: shopt: not found
/home/mikey/.bashrc: 99: shopt: not found
/etc/bash_completion: 33: [[: not found
/etc/bash_completion: 39: [[: not found
/etc/bash_completion: 52: Bad substitution
\[\e]0;\u@\h: \w\a\]\u@\h:\w$
\[\e]0;\u@\h: \w\a\]\u@\h:\w$ bash
mikey@EC2:~$

我试过使用 ~/.profile~/.bash_login 来包含

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

但到目前为止,似乎没有什么能解决问题。

任何指针将不胜感激。谢谢!

最佳答案

如果,事实上,你的 shell 不是 bash,你可以尝试像这样改变它:

usermod -s /bin/bash mikey

如果/bin/bash 是该系统上 bash 的位置。

关于linux - BASH 和/或 .BASHRC 在 SU 或 SSH 登录后无法正常工作,除非运行 "bash"命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607473/

相关文章:

c++ - 如何在另一个终端中从 C++ 打开和稍后关闭另一个程序?

c++ - 使用 libpam0g-dev 和 cmake 构建应用程序

linux - 如何用当前日期替换文件名中的日期部分

python - 在特定点移动名称中具有一位或两位数字的文件

mysql - Unix : Can't use backquote in MySQL command

ruby-on-rails - Ruby rbenv 在 WSL 上设置失败

linux - 更改文件中的行

c# - gtk-sharp 中的富文本?

linux - 回显到没有换行的文件

linux - 如何停止分钟的 cron 工作?