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

#1 楼

尝试使用chsh命令。

例如

chsh -s /bin/zsh


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

chsh -s $(which zsh)


如果要更改用户帐户的外壳程序而不是已登录的帐户,则需要以root用户身份运行它,因此要更改john的外壳程序,请执行:

sudo chsh -s $(which zsh) john


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

评论


我确实尝试过,但是使用root用户!我的AMI映像具有ubuntu而不是root。不得不切换到ubuntu用户来更改外壳!感谢您的提示:)

– Shripad克里希纳
2011年1月11日在11:45

@Paddy如果您是root用户,则可以通过运行chsh -s / bin / zsh username来为另一个用户更改它。

– John T
2011年1月11日在11:47



太棒了:)容易得多。也感谢您提供的信息。

– Shripad克里希纳
2011年1月11日在11:48

@我们是世界:您需要将/ usr / local / bin / zsh作为新行添加到/ etc / shells

–内特·帕森斯(Nate Parsons)
13年6月4日在17:54

我使用略有不同的版本sudo chsh -s $(which zsh)$(whoami)

–SergioAraujo
15年4月30日在19:37

#2 楼

打开/ etc / passwd:

sudo vi /etc/passwd


用您的用户名找到行:

username:x:1634231:100:Your Name:/home/username:/bin/bash


并替换bash使用zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh


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

评论


最好使用chsh,但如果您真的要手工编辑/ etc / passwd,则至少要使用vipw命令。

–Valmiky Arquissandas
14年8月14日在2:58

我的机器上没有chsh。另外,出于某些奇怪的原因,我的/ etc / passwd文件经常被默认文件覆盖。你知道为什么会这样吗?

–Georgii Oleinikov
14年8月14日在16:44

不要触摸/ etc / passwd。有更好的方法可以做到这一点,而无需弄乱passwd工具!

–安德鲁(Andrew)
17年9月12日在18:23

#3 楼

我来这里只是为了添加更多其他信息。
如果在运行Amazon的Amazon Linux AMI中安装zsh时遇到麻烦,例如运行时:

sudo chsh $(which zsh) : // chsh command not found


然后,您应该安装util-linux-user:

sudo yum install util-linux-user


(默认情况下,Amazon Linux AMI仅具有lchsh,但我不知道它是如何工作的。)。 >
然后运行以下命令,它应该可以工作:

sudo chsh -s $(which zsh) $(whoami)


评论


谢谢!这适用于AWS AMI :)

– Mayura
19-10-20在23:31

使用lchsh,只需执行sudo lchsh -i ec2-user。

–superhawk610
20-2-22在0:32



您可以跳过交互式。哪个git-shell |以lchsh git为例。

–reergymerej
20年7月2日在21:50

#4 楼

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

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


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

和平。

P.S.张贴图片没有10个声誉,因此所有文字说明都应如此。 :)

评论


您现在拥有所需的代表。 :P

–pradyunsg
16-3-21在8:43

#5 楼

一行

sudo chsh -s $(which zsh) $(whoami)


其他信息:
之后,您可能会想要做这样的事情

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc 


找到plugins =(git)
将zsh-autosuggestions和zsh-syntax-highlighting附加到plugins()这样的


source ~/.zshrc


#6 楼

我有一个Ubuntu 18.04 EC2实例。但是,当我尝试执行以下操作时:
ubuntu@ip-xxx:~$ chsh -s /bin/zsh         
Password: 
chsh: PAM: Authentication failure

我收到密码提示,但由于auth错误而失败,因为坦率地说,我不确定为sudo用户添加的内容。
因此,我尝试添加sudo,命令未给出任何错误。但是,当我稍后切换时,我仍然将BASH作为默认的SHELL。
对我有用的是以下命令:
ubuntu@ip-xxx:~$ sudo chsh -s $(which zsh) $(whoami)


这更改了当前用户的默认shell,并且保持不变每次我进入机器时都是这样。
成功! :)