【问题标题】:Which shell I am using in mac我在 mac 中使用哪个 shell
【发布时间】:2017-09-11 01:05:34
【问题描述】:

我的 mac 中的默认 shell 是 bash。
我尝试通过命令chsh -s /bin/zsh将其更改为ZSH。

现在,当我尝试检查 shell 类型时,我得到了不同的响应。

COMMAND-1

输入:echo $SHELL
输出:/bin/zsh

COMMAND-2

输入:ps $o
输出:7655 ttys002 0:00.03 -bash

COMMAND-3

输入:ps -p $$ | awk '$1 == PP {print $4}' PP=$$
输出:-bash

我不确定我使用的是哪个 shell。 我是否需要做一些额外的事情来将我的 shell 更改为 ZSH

【问题讨论】:

  • 你在运行chsh后注销并登录了吗?或者,至少,重启你的终端。
  • 在终端首选项的常规选项卡中,“Shell opens with”是否设置为“Default login shell?”
  • 不清楚$o 在您的第二个命令中做了什么 - $o 的值是多少?
  • 您是否将zsh 及其路径放在/etc/shells 中?
  • 它已经在那里了。

标签: bash macos shell unix zsh


【解决方案1】:

macOS 的终端允许您在其首选项中指定 shell。默认情况下,它设置为使用您的登录 shell,但看起来您已经覆盖它以使用 Bash。

在终端首选项的常规选项卡中,将其设置为“默认登录 shell”,以防止您的登录 shell 被覆盖:

另外,请确保您的配置文件设置的 Shell 选项卡中未选中“运行命令”复选框:

【讨论】:

  • 常规设置 - 截至目前 2021 年 12 月 - 已更改
【解决方案2】:

假设您使用的是标准 Terminal.app,并且您已验证它确实配置为使用您的默认登录 shell,如 NobodyNada's helpful answer 中所述:

要查看什么 shell当前正在运行(可能是也可能不是您的默认 shell),请使用:

ps -o comm= $$

要查看你的默认外壳是什么外壳,请运行:

echo $SHELL

【讨论】:

  • 我如何另外确保我的.zshrc 文件正在运行?我现在没有看到我的别名工作......
  • @CharlieParker,如果zsh 是您的默认shell,则~/.zshrc 应该在交互式会话中自动获取。您可以在其中放置echo 命令进行诊断。如果您需要进一步的帮助,请创建一个新问题帖。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2011-05-12
相关资源
最近更新 更多