如何更改 AWS 实例上的默认 shell?

Shr*_*hna 128 shell amazon-ec2

我想在我的 Amazon EC2 实例上将我的 shell 从默认的 bash shell 更改为 zsh。我该怎么做?谢谢!

Joh*_*n T 163

尝试使用chsh命令。

例如

chsh -s /bin/zsh

您可以通过运行来确认 zsh 的位置whereis zsh,或者简单地运行

chsh -s $(which zsh)

如果您想更改您登录的用户帐户以外的用户帐户的外壳,则需要以 root 用户身份运行它,因此要更改 john 的外壳,请执行以下操作:

须藤 chsh -s $(which zsh) 约翰

请注意,您需要注销并重新登录才能使更改生效。如果您正在使用 Gnome 或其他一些窗口管理器,您还需要完全退出该会话——仅仅关闭和打开终端是不够的。

  • 我使用了一个稍微不同的版本`sudo chsh -s $(which zsh) $(whoami)` (6认同)
  • @Paddy 如果你是 root,你可以通过运行 `chsh -s /bin/zsh username` 为另一个用户更改它。 (3认同)
  • @We are the World:您需要将 /usr/local/bin/zsh 作为新行添加到 /etc/shells (3认同)

小智 26

打开/etc/passwd:

sudo vi /etc/passwd
Run Code Online (Sandbox Code Playgroud)

找到包含您的用户名的行:

username:x:1634231:100:Your Name:/home/username:/bin/bash
Run Code Online (Sandbox Code Playgroud)

并用 zsh 替换 bash:

username:x:1634231:100:Your Name:/home/username:/bin/zsh
Run Code Online (Sandbox Code Playgroud)

注销并重新登录以使更改生效。

  • 最好使用`chsh`,但如果你*真的*要手动编辑`/etc/passwd`,至少使用`vipw` 命令。 (6认同)

小智 16

我来这里只是为了添加更多附加信息。如果您在Amazon Linux AMI by Amazon 中安装zsh时遇到问题,例如运行时:

sudo chsh $(which zsh) : // chsh command not found
Run Code Online (Sandbox Code Playgroud)

然后你应该安装util-linux-user

sudo yum install util-linux-user
Run Code Online (Sandbox Code Playgroud)

(默认情况下,Amazon Linux AMI 只有lchsh,但我无法弄清楚它是如何工作的)。

然后运行以下命令,它应该可以工作:

sudo chsh -s $(which zsh) $(whoami)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这适用于 AWS AMI :) (3认同)
  • 使用“lchsh”,只需执行“sudo lchsh -i ec2-user”即可。 (2认同)

小智 5

在 Ubuntu 上,在 GNOME 终端内,通过 chsh 进行更改不会产生预期的效果......

要解决这个问题,请执行以下操作:

  • 在终端右击
  • 配置文件 -> 配置文件首选项
  • 在“标题和命令”选项卡下,勾选“运行自定义命令而不是我的 shell”并提供 zsh 可执行文件的路径。
  • 重启终端。

和平。

PS 没有 10 声望来张贴图片,所以所有文字说明。:)