连接 SSH 后,我从 bash 运行 zsh - 如何仅用一个命令退出两者?

连接 SSH 后,我从 bash 运行 zsh - 如何仅用一个命令退出两者?

我在我的服务器上运行 zsh 并且我想为该exit命令添加别名,因为每当我尝试终止我的 SSH 会话时我都必须退出zsh并退出bash

我尝试过alias exit='exit;exit',但没有成功。

我不想改变我的开始方式zsh,但我认为这不是一个很好的解决方案。我已附加zsh/etc/profile

如何避免输入exit两次来终止我的 SSH 会话?

答案1

bash是该系统上您帐户的默认登录 shell。要更改它,请按照 @KevinPanko 的建议进行操作。然后bash不会启动,只有zsh。考虑到通过/etc/profile,您总是zsh在此刻启动(而不仅仅是有时),这可能是最好的方法。


或者,您可以使用exec内置命令bash来替换您的bash进程。man bash状态:

exec ... [command [arguments]]

如果指定了命令,它将替换 shell。不会创建新进程。参数将成为命令的参数。

因此你可以zsh像这样运行:

exec zsh

之后,如果您退出zsh,您将退出正在运行的唯一 shell,并立即退出。

答案2

chsh命令允许您更改帐户的登录 shell。

如果它尚未存在,您可能需要将其添加/bin/zsh到您的文件中。/etc/shells

答案3

要解决此问题,只需将以下脚本添加到文件中.bashrc

if test -t 1; then
  exec zsh
fi

注意:在 Ubuntu 10.04 和 Debian 10 上执行,但我相信它也适用于其他 Linux 破坏。

相关内容