PowerShell 跨平台安装指南:如何在 5 分钟装好 pwsh 并避开架构不匹配
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
装完 pwsh 一运行就报exec format error?多半是下载了与 CPU 架构不符的安装包。本文带你用 5 分钟完成 PowerShell 7 的跨平台安装(Windows / Linux / macOS),从选对包、跑通安装脚本,到装完验证,一条命令覆盖三端,架构自动匹配。
📦 项目速览
PowerShell 是微软开源的跨平台命令行外壳与脚本环境,基于 .NET 构建,用来做任务自动化和配置管理。它把原本只在 Windows 上可用的 cmdlet、管道和模块生态带到了 Linux 与 macOS,装好后统一用pwsh命令启动,脚本无需改动即可在三端复用。
各平台支持矩阵如下:
| 操作系统 | 支持架构 | 安装包格式 |
|---|---|---|
| Windows | x64 / x86 / ARM64 | .msi/.zip |
| Linux | x64(x86_64) | .tar.gz/.deb/.rpm |
| macOS | x64(Intel) | .pkg/.tar.gz |
⚡ 最快上手路径
以下每条命令执行完,你就能在对应系统的任意终端里直接敲出pwsh。安装脚本的完整逻辑可参考 tools/install-powershell.ps1。
Windows 下用官方脚本装 MSI
Set-ExecutionPolicy Bypass -Scope Process -Force iex "& { $(Invoke-WebRequest 'https://aka.ms/install-powershell.ps1') } -UseMSI"第一条只对本次进程临时放开脚本执行策略,第二条下载官方脚本并以 MSI 方式安装,装完重启终端生效。
Linux 下解压 tar 包并建符号链接
sudo mkdir -p /opt/powershell sudo tar zxf powershell-7.x-linux-x64.tar.gz -C /opt/powershell sudo ln -s /opt/powershell/pwsh /usr/bin/pwsh前两步把安装包解压到/opt/powershell,第三步在/usr/bin建符号链接,pwsh才在全局可用。
macOS 上安装并验证路径
sudo mkdir -p /usr/local/powershell sudo tar zxf powershell-7.x-osx-x64.tar.gz -C /usr/local/powershell sudo ln -s /usr/local/powershell/pwsh /usr/local/bin/pwsh与 Linux 同理,区别只是目录放在/usr/local下,链接指向/usr/local/bin/pwsh。
🔧 进阶安装与定制
需要锁定版本或自定义目录时,给安装脚本追加参数即可:
-Version 7.4.3:指定具体版本号,而不是默认的最新稳定版-Preview:安装预览版,目录会自动带-preview后缀,与稳定版并存-Destination 'D:\Tools\pwsh':自定义安装路径(Linux/macOS 默认~/.powershell)-AddToPath:自动把安装目录追加到 PATH,省去手动配环境变量-UseMSI:Windows 上改用 MSI 包安装,可配合/quiet静默部署
发行版用户也可以走包管理器路线,仓库为 Debian、RHEL 等各自提供了专用脚本,目录见 tools/,例如installpsh-debian.sh、installpsh-redhat.sh。
✅ 装完先做这三件事
1. 验证版本
pwsh -v期望输出形如:PowerShell 7.5.1,看到版本号即代表二进制与架构匹配成功。
2. 查看运行时详情
$PSVersionTable.PSVersion会打印大版本、小版本、修订号与平台(Windows/Darwin/Linux),排查兼容性问题时它就是第一手证据。
3. 跑一个最小"真活"
Get-Process | Sort-Object CPU -Descending | Select-Object -First 3列出 CPU 占用最高的三个进程。如果你能在这条管道里看到自己的进程列表,说明引擎、cmdlet、格式化输出整条链路都通了。
🧩 高频配置与扩展
1. 定制启动行为
notepad $PROFILE New-Item -ItemType File $PROFILE -Force # 文件不存在时先创建配置文件在每次启动pwsh时自动执行,适合放别名、默认目录、主题设置。
2. 开启实验性功能
Get-ExperimentalFeature Enable-ExperimentalFeature -Name PSAnsiRendering先列出可用特性,再按名字启用,重启会话生效,随时可用Disable-对应命令回退。
3. 扩展 cmdlet 生态
模块系统让第三方能力以verb-Noun形式并入命令集;若你想反过来给 PowerShell 开发自己的 cmdlet,可看 docs/cmdlet-example/ 里的 Visual Studio 实操示例,下面是示例中配置 powershell-core 包源的界面:
🚑 故障排查手册
症状:pwsh: command not found
- 可能原因:tar 包安装后没建符号链接,或 Windows 下安装路径未进 PATH
- 解法:Linux/macOS 执行
sudo ln -s /opt/powershell/pwsh /usr/bin/pwsh(路径按实际调整);Windows 重开一个终端再试,仍不行就重装并勾选-AddToPath
症状:exec format error或cannot execute binary file
- 可能原因:下载包的架构与 CPU 不符(比如在 ARM 机器上装了 x64 包)
- 解法:用
uname -m(Linux/macOS)或(Get-ComputerInfo).OsArchitecture(Windows)确认真实架构,再到发布页选对应文件
症状:macOS 首次运行pwsh被系统拦截
- 可能原因:macOS Gatekeeper 隔离标记
- 解法:
xattr -d com.apple.quarantine /usr/local/powershell/pwsh,删除标记后即可正常启动
🎯 收尾
安装只是起点,真正值钱的是你写下的第一条自动化脚本。现在就打开终端:
pwsh -NoLogo更多深入内容见 docs/,回归真实场景的脚本可参考 test/powershell/ 下的测试用例。
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考