当zsh被设置为Mac上的登录shell时,当它由iTerm启动时,zsh不会认为它是作为登录shell运行的,尽管它是以‘-zsh’(‘-’作为arg的第一个字符)启动的,这意味着它应该作为登录shell启动。
因此,当我将登录shell设置为bash时,bash会识别$0中的第一个‘-’,并作为登录shell运行,但zsh不会,尽管它似乎应该这样做。
有没有办法让zsh识别arg中的‘-’,或者让iTerm使用--login命令行参数运行外壳?
发布于 2013-02-24 02:33:03
在iTerm ->首选项登录配置文件选项卡登录常规部分中,将命令设置为:/ -> /zsh ->
发布于 2009-12-01 04:13:33
chsh -s $(which zsh)
系统将提示您输入密码,但一旦您更新了设置,在该计算机上启动的任何新iTerm/Terminal会话都将默认为zsh。
发布于 2016-03-03 11:37:50
用于在启动时更改外壳的命令是chsh -s <path_to_shell>
。mac中的默认zsh
安装在bin
目录中,因此如果您想要更改为默认shell,则可以使用以下命令
chsh -s /bin/zsh
如果您使用的是不同版本的zsh
,那么您可能需要将该版本添加到/etc/shells
中,以避免出现非标准外壳消息。例如,如果您想要home-brew版本的zsh
,那么您必须将/usr/local/bin/zsh
添加到前面提到的文件中,这可以在一个命令sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
中完成,然后运行
chsh -s /usr/local/bin/zsh
或者,如果您想在一个命令中完成所有操作,只需复制并粘贴此命令(如果您已经安装了zsh
sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh
https://stackoverflow.com/questions/1276703
复制相似问题