我正在学习使用Rails进行开发,并发现了zsh的强大功能。但是,对于其他一些任务,我希望使用普通bash。

尽管它们是相同的,但在某些情况下,我只是对bash的布局感到满意。

我如何来回切换,或打开和关闭zsh ?


当前回答

在Mac OS Catalina默认的交互shell是zsh。 从bash更改shell为zsh:

chsh -s /bin/zsh

然后你需要输入Mac密码。退出终端,重新打开。要检查是否成功更改为ssh,发出以下命令。

echo $SHELL

如果结果是/bin/zsh,则任务完成。

要将其更改为bash,在终端上发出以下命令。

chsh -s /bin/bash

使用echo $SHELL再次验证它。那么结果应该是/bin/bash.

其他回答

如果这只是暂时的转换

您可以像上面提到的那样使用exec,但这是一种永久的解决方案。

可以使用CHSH -s /bin/bash和CHSH -s /bin/zsh切换到bash和zsh

对我来说,解决办法是:

编辑:

sudo vi /etc/passwd

找到你的用户,对我来说就是:

ubuntu:x:1000:1001::/home/ubuntu:/bin/sh

对你来说可能是:

ubuntu:x:1000:1001::/home/ubuntu:/bin/zsh

并更改为:

ubuntu:x:1000:1001::/home/ubuntu:/bin/bash

如果您希望bash是默认的,或者如果您希望它默认为zsh,则使用上面的行。

您应该能够在终端中输入bash以切换到bash,然后输入zsh以切换到zsh。至少对我有用。

在Mac OS Catalina默认的交互shell是zsh。 从bash更改shell为zsh:

chsh -s /bin/zsh

然后你需要输入Mac密码。退出终端,重新打开。要检查是否成功更改为ssh,发出以下命令。

echo $SHELL

如果结果是/bin/zsh,则任务完成。

要将其更改为bash,在终端上发出以下命令。

chsh -s /bin/bash

使用echo $SHELL再次验证它。那么结果应该是/bin/bash.

ZSH有一个内置的命令模拟,可以通过设置适当的选项来模拟不同的shell,尽管CSH永远不会被完全模拟。

emulate bash
perform commands
emulate -R zsh

-R标志将该shell的所有选项恢复为默认值。

参见:zsh手册