如何在打开终端或控制台模式时自动启动 bash shell?

如何在打开终端或控制台模式时自动启动 bash shell?

我使用“useradd”命令在 ubuntu 中创建了一个普通用户帐户,但问题是我必须在控制台模式(在 tty 中,通过 ctrl+alt+Fn)和远程模式(通过 ssh)中键入“bash”才能启动此用户帐户的 bash shell。对我来说,bash shell 最重要的部分是自动完成功能,所以我的问题是如何让 bash shell 在登录帐户时自动启动。

我使用 ubuntu 13.04 32 位版本。感谢您的任何建议!

答案1

您可能需要将 bash 设置为新用户的登录 shell。如果您以该用户身份登录:

chsh -s /bin/bash

为其他用户更改

sudo chsh -s /bin/bash username

将来您可能想要使用adduser而不是低级useradd,因为它默认将 bash 设置为新的登录 shell。

您可以通过查看 /etc/passwd 文件或使用以下命令来检查登录 shell(以及其他详细信息)

getent passwd username

答案2

首先,检查是否useradd显示默认值SHELL。为此,请发出:

useradd -D

这将输出类似以下内容的内容:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

这些值取自/etc/default/useradd。现在,您有 2 个解决方案:

  1. 编辑/etc/default/useradd并更改的值SHELL,或
  2. 添加用户时覆盖 shell 的值:useradd -D -s /bin/bash

更多信息请参阅man useradd

相关内容