Linux下载、安装PowerShell-v7.6.4(附安装包powershell-7.6.4-linux-x64.tar.gz)

1. PowerShell 简介
PowerShell 是由 Microsoft 开发的一款跨平台自动化与配置管理框架(automation and configuration tool/framework),最初由 Jeffrey Snover 主导设计。Snover 在 2002 年发布了著名的"Monad 宣言",奠定了 PowerShell 面向对象管道的核心理念。2006 年 PowerShell v1.0 随 Windows 正式发布,2016 年 8 月 Microsoft 将其开源并推向跨平台(Windows、Linux、macOS),采用 MIT 许可证。截至目前,PowerShell 在 GitHub 上拥有约 54,000 颗星(Star),位列全球前 400 名,是自动化运维领域最受欢迎的开源项目之一。
PowerShell 的核心特色在于它不仅仅是一个命令行 Shell(command-line shell)——它同时包含一个强大的脚本语言(scripting language)和一个用于处理 cmdlet 的完整框架。与传统基于文本流的 Shell 不同,PowerShell 的管道传递的是 .NET 对象(object),而非纯文本。这意味着你可以直接在管道中对结构化数据(JSON、CSV、XML 等)进行过滤、排序和转换,无需繁琐的文本解析。此外,PowerShell 原生支持 REST API 调用和对象模型操作,在云原生和 DevOps 场景中尤为高效。
PowerShell 7.x 是当前活跃开发的版本线,基于 .NET(原 .NET Core)构建,具有真正的跨平台一致性——同一套脚本可以在 Windows、Linux 和 macOS 上运行,无需修改。相比之下,Windows PowerShell 5.1 基于 .NET Framework,仅支持 Windows 且已停止功能开发。PowerShell 7.x 还集成了 SSH 远程管理、模块化包管理和对 Docker 容器的原生支持。
2. v7.6.4 版本亮点
该版本汇集了 3 位贡献者 的 4 条 贡献。
v7.6.4 是一个构建与打包改进(Build and Packaging Improvements)版本,核心变更如下:
更新至 .NET SDK 10.0.302:本次发布将底层 SDK 升级至 .NET 10.0.302,以获得最新的运行时优化和安全修复。
构建流程优化:
- 更新发布分支配置(#27685)
- 修复 Wix 打包过程中为公共源错误调用凭据提供程序的问题(#27666)
- 将 NuGet 发布流程拆分为独立阶段,在推送 git 标签之后执行,提高发布可靠性(#27652)
- PMC 发布流程中确保下载 deb_arm 构件(#27653)
3. 获取安装包
如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/224R(内含 powershell-7.6.4-linux-x64.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。
适用于 Linux x86_64(amd64)。
Linux安装PowerShell-v7.6.4(powershell-7.6.4-linux-x64).zip
├── powershell-7.6.4-linux-x64.tar.gz
├── Linux安装PowerShell-v7.6.4(powershell-7.6.4-linux-x64).pdf
├── README/
│ ├── README.md
│ └── README-中文版.md
├── 发布说明/
│ ├── RELEASE-NOTES.md
│ └── RELEASE-NOTES-中文版.md
└── LICENSE.txt4. 快速开始
将 powershell-7.6.4-linux-x64.tar.gz 解压到目标目录,然后运行 pwsh 可执行文件:
# 解压
tar xzf powershell-7.6.4-linux-x64.tar.gz -C /usr/local/
# 启动 PowerShell
/usr/local/pwsh
# 查看版本
$PSVersionTable常用命令
# 获取所有 cmdlet
Get-Command
# 列出目录内容
Get-ChildItem
# 查看进程
Get-Process
# 管道过滤
Get-Process | Where-Object { $_.CPU -gt 10 }
# JSON 处理
Get-Content data.json | ConvertFrom-Json | Select-Object name, value