Versun

对待生命,不妨大胆一点,因为我们终将失去它


created: 2024-11-17, updated: 2025-02-08

macOS设置默认shell为Nushell

macos-shell-nushell-7073b322.png 595 Bytes
macos-shell-nushell-cdd9e06b.png 595 Bytes
不建议设置为登录默认shell,很多环境问题不好解决,本人已改为默认的zsh


使用Nushell有一段时间了,今天总算下定决心将其设置为默认shell ,因此记录下macOS设置默认shell的过程

macos-shell-nushell-2737b034.png 595 Bytes
注意!如果你之前没有使用过Nushell,则非常不建议将其设置为默认shell,请先熟悉并使用一段时间后再做决定!

  1. 安装Nushell:brew install nushell

  2. 设置环境变量:
    首先查看当前已有的环境变量:$env | reject config | transpose key val | each {|r| echo $"$env.($r.key) = '($r.val)'"} | str join (char nl)
    正常情况下,要删除$env.PWD$env.SHELL这两个变量,然后剩余的手动添加到nushell到env.nu配置文件中:
    vim /Users/YourUserName/Library/Application Support/nushell/env.nu

  3. 添加Nushell到/etc/shells中:sudo echo "/opt/homebrew/bin/nu" >> /etc/shells
    如果该命令报错:zsh: permission denied: /etc/shells
    则可以手动修改:sudo vim /etc/shells

  4. 修改默认shell:chsh -s /opt/homebrew/bin/nu
    如果命令报错:chsh: /opt/homebrew/bin/nu: non-standard shell
    则检查第二步是否完成

  5. 验证:echo $SHELL

  6. 注销重新登录即可

PS:由于nushell的配置文件在Application Support文件夹下,所以我还创建了一个软链接到~/.config/nushell下,方便备份和编辑
ln -s $nu.env-path ~/.config/nushell/env.nu
ln -s $nu.config-path ~/.config/nushell/config.nu