在 macOS 上安装 PowerShell

PowerShell 7 或更高版本需要 macOS 11 或更高版本。 GitHub 版本页面上提供有所有可用包。 安装包以后,从终端运行 pwsh。 安装之前,请查看以下支持的版本列表。

注意

PowerShell 7.4 是会删除旧版 PowerShell 7 的就地升级。 PowerShell 的预览版可以与其他版本的 PowerShell 并行安装。 如果需要与以前的版本并行运行 PowerShell 7.4,请使用二进制存档方法重新安装以前的版本。

安装 PowerShell 的最新稳定版本

可采用多种方法在 macOS 上安装 PowerShell。 选择下列方法之一:

如果未找到 brew 命令,则需要按照说明安装 Homebrew。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 brew 后,即可安装 PowerShell。

以下命令将安装 PowerShell 的最新稳定版本:

brew install powershell/tap/powershell

最后,验证安装是否正常运行:

pwsh

PowerShell 新版本发布后,更新 Homebrew 公式并升级 PowerShell:

brew update
brew upgrade powershell

备注

可从 PowerShell (pwsh) 主机调用上面的命令,但是调用后必须退出 PowerShell 并重启以完成升级,并刷新 $PSVersionTable 中显示的值。

安装 PowerShell 的最新稳定版本

安装 Homebrew 后,可以安装 PowerShell。

brew install powershell/tap/powershell-preview

运行以下命令以启动 PowerShell 预览版:

pwsh-preview

PowerShell 新版本发布后,更新 Homebrew 公式并升级 PowerShell:

brew update
brew upgrade powershell-preview

备注

可能会从 PowerShell (pwsh) 主机调用上面的命令,但是调用后必须退出 PowerShell 并重新启动以完成升级。 然后刷新 $PSVersionTable 中显示的值。

安装 PowerShell 的最新 LTS 版本

brew install powershell/tap/powershell-lts

现在可以验证你的安装

pwsh

发布新版本的 PowerShell 时,请运行以下命令。

brew upgrade powershell-lts

备注

无论使用 cask 还是 tap 方法,在更新到较新版本的 PowerShell 时,请使用最初安装 PowerShell 所使用的相同方法。 如果使用其他方法,则打开新的 pwsh 会话时将继续使用较旧版本的 PowerShell。

如果决定使用其他方法,可以使用 Homebrew link 方法来解决此问题。

通过直接下载安装

从版本 7.2 开始,PowerShell 支持 Apple M 系列基于 Arm 的处理器。 从版本页中将安装包下载到计算机。 指向当前版本的链接包括:

可以双击文件并按照提示操作,或者使用以下命令从终端安装。 更改文件的名称以匹配下载的文件。

sudo installer -pkg ./Downloads/powershell-7.4.6-osx-x64.pkg -target /

如果在 macOS Big Sur 11.5 或更高版本上运行,则安装包时可能会收到以下错误消息:

无法打开“powershell-7.4.6-osx-x64.pkg”,因为 Apple 无法检查其是否有恶意软件。

可通过两种方法解决此问题:

使用查找器

  1. 在查找器中查找包。
  2. 控制单击(在按住 Ctrl 的同时单击)包。
  3. 从上下文菜单中选择“打开”。

从命令行中

  1. 运行 sudo xattr -rd com.apple.quarantine ./Downloads/powershell-7.4.6-osx-x64.pkg。 如果使用 PowerShell 7 或更高版本,可以使用 Unblock-File cmdlet。 包括 .pkg 文件的完整路径。
  2. 按平常一样安装包。

备注

这是一个与包公证相关的已知问题,以后将得到解决。

作为 .NET 全局工具安装

如果你已安装 .NET Core SDK,则可以轻松地安装 PowerShell 作为 .NET 全局工具

dotnet tool install --global PowerShell

dotnet 工具安装程序将 ~/.dotnet/tools 添加到 PATH 环境变量中。 不过,当前运行的 shell 没有更新后的 PATH。 应该可以通过键入 pwsh 从新 shell 启动 PowerShell。

二进制存档

已对 macOS 平台提供 PowerShell 二进制 tar.gz 存档,以启用高级部署方案。 使用此方法安装时,还必须手动安装所有依赖项。

备注

你可以使用此方法安装任何版本的 PowerShell,包括最新版本:

在 macOS 上安装二进制存档

版本页中将安装包下载到计算机。 指向当前版本的链接包括:

使用以下命令从二进制存档安装 PowerShell。 更改下载 URL 以匹配要安装的版本。

# Download the powershell '.tar.gz' archive
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.4.6/powershell-7.4.6-osx-x64.tar.gz

# Create the target folder where powershell is placed
sudo mkdir -p /usr/local/microsoft/powershell/7

# Expand powershell to the target folder
sudo tar zxf /tmp/powershell.tar.gz -C /usr/local/microsoft/powershell/7

# Set execute permissions
sudo chmod +x /usr/local/microsoft/powershell/7/pwsh

# Create the symbolic link that points to pwsh
sudo ln -s /usr/local/microsoft/powershell/7/pwsh /usr/local/bin/pwsh

卸载 PowerShell

如果使用 Homebrew 安装 PowerShell,请使用以下命令进行卸载:

brew uninstall --cask powershell

如果通过直接下载安装 PowerShell,则必须手动删除 PowerShell:

sudo rm -rf /usr/local/bin/pwsh /usr/local/microsoft/powershell

若要删除其他 PowerShell 路径,请参阅本文档的路径一节,并使用 sudo rm 删除路径。

备注

如果使用 Homebrew 安装,则不需要执行此操作。

路径

  • $PSHOME/usr/local/microsoft/powershell/7
    • macOS 安装包会创建一个符号链接 /usr/local/bin/pwsh,该链接指向 $PSHOME 位置中的 pwsh
  • 用户配置文件是从 ~/.config/powershell/profile.ps1 中读取的
  • 默认配置文件是从 $PSHOME/profile.ps1 中读取的
  • 用户模块是从 ~/.local/share/powershell/Modules 中读取的
  • 共享模块是从 /usr/local/share/powershell/Modules 中读取的
  • 默认模块是从 $PSHOME/Modules 中读取的
  • PSReadline 历史记录将记录到 ~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt

PowerShell 采用 macOS 上的 XDG Base Directory 规范

支持的版本

Microsoft 在 PowerShell 到达支持终止日期或 macOS 版本到达支持终止日期之前仍然支持 PowerShell。

  • macOS 12 (Monterey) x64 和 Arm64
  • macOS 13 (Ventura) x64 和 Arm64
  • macOS 14 (Sonoma) x64 和 Arm64

Apple 确定 macOS 的支持生命周期。 有关详细信息,请参阅以下部分:

安装支持

Microsoft 支持本文档中的安装方法。 其他源可能会提供其他安装方法。 尽管这些工具和方法可能有效,但 Microsoft 无法支持这些方法。

其他资源