PowerShell 是微软推出的命令行脚本工具,它是 Windows 自带"命令提示符"(cmd)的升级版,功能强得多:既能敲命令管理系统,又能写脚本做自动化,很多系统管理员、运维人员和开发者都用它批量处理任务。
PowerShell 适合想提升电脑操作效率、学习脚本自动化、从事运维和开发工作的用户,它的主要特点:
- 命令强大:上千个内置命令(cmdlet)覆盖文件、网络、系统、服务等方方面面;
- 支持管道:一个命令的输出可以直接喂给下一个命令,组合出复杂操作;
- 跨平台:Windows、macOS、Linux 都能用,脚本写一次多平台运行。
和系统里其他命令行工具相比,它们的分工不一样,下面是主要区别:
| 工具 | 是否自带 | 功能定位 | 适合人群 |
| PowerShell | 需单独安装 | 跨平台脚本自动化,命令强大 | 运维、开发、进阶用户 |
| Windows PowerShell 5.1 | Windows 自带 | 老版本,仅限 Windows | 日常简单操作 |
| CMD 命令提示符 | Windows 自带 | 基础命令,功能有限 | 简单命令 |
目前 PowerShell 的最新版本是 7.6.5,PowerShell 7 和系统自带的 5.1 可以共存,装了 7 不影响原来的。
PowerShell下载
PowerShell 7 安装包:PowerShell7(源自 Github,Windows+Linux+maxOS)
Windows安装PowerShell
1)双击 .msi 文件启动安装程序,点击 Next:
2)进入安装路径选择界面。建议保持默认路径,也可以安装到非系统盘(如 D 盘):
3)一定要勾选"Add PowerShell to PATH environment variable",这样才能在任何命令行窗口中直接使用 pwsh 命令启动,其它保持默认即可:
4)继续点击"Next"和"Install",等待安装完成。完成后点击"Finish"退出安装程序,在开始菜单里找到"PowerShell 7 (x64)"即可启动。
Linux安装PowerShell(以Ubuntu为例)
Linux 上安装 PowerShell 推荐使用包管理器,以 Ubuntu(Debian 系列)为例,打开终端依次执行以下命令:
# 更新包列表 sudo apt-get update # 安装必备依赖 sudo apt-get install -y wget apt-transport-https software-properties-common # 获取 Ubuntu 版本号 source /etc/os-release # 下载并注册微软软件源 wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb # 更新包列表并安装 PowerShell sudo apt-get update sudo apt-get install -y powershell # 启动 PowerShell pwsh #卸载 PowerShell sudo apt-get remove powershell
安装完成后,在终端输入 pwsh 即可启动 PowerShell 7。如果是 Red Hat 系列(如 CentOS、Fedora),使用 yum 或 dnf 安装对应的 .rpm 包。
macOS安装PowerShell
macOS 上有两种安装方式:手动下载 .pkg 安装包,或者通过 Homebrew 安装。
下载 .pkg 文件(Intel 选 x64,Apple Silicon 选 arm64),双击打开它,按提示一路点击"继续"和"安装"即可。安装完成后,在启动台中找到"PowerShell"或通过终端输入 pwsh 启动。
也可以使用 Homebrew 安装,执行如下命令:
brew install powershell # 启动 PowerShell pwsh
如果之前安装过旧版本,brew 会自动更新到最新版。
PowerShell基础使用
Windows 用户在开始菜单点击"PowerShell 7 (x64)",Linux 和 macOS 用户在终端输入 pwsh 回车即可启动。
1)执行基本命令
启动后看到蓝色(或深色)的命令行界面,就可以输入命令了。比如,输入下面的命令可以直接查看当前所在的路径:
# 查看当前路径 Get-Location
PowerShell 的命令格式和传统 CMD 不太一样,用的是"动词-名词"的结构,比如 Get-ChildItem、Get-Location,语义清晰,方便记忆。以下是几个常用的 PowerShell 命令及其对应功能:
| 命令 | 功能 | 类似 CMD 命令 |
| Get-ChildItem | 列出当前目录的文件和文件夹 | dir |
| Set-Location | 切换目录 | cd |
| Get-Content | 查看文件内容 | type |
| Copy-Item | 复制文件或文件夹 | copy |
| Remove-Item | 删除文件或文件夹 | del |
| Get-Process | 查看正在运行的进程 | tasklist |
| Get-Help | 查看命令帮助文档 | help /? |
2)运行第一个脚本
在桌面新建一个记事本文件(或任意文本编辑器),输入以下内容并保存为 hello.ps1:
Write-Host "Hello, PowerShell!" Get-Date
在 PowerShell 7 中切换到文件所在目录,输入 .\hello.ps1(Windows)或 ./hello.ps1(Linux/macOS)回车即可运行。PowerShell 会输出"Hello, PowerShell!"和当前日期时间。
自己动手编写 PowerShell 脚本文件,需要系统学习以下几方面的知识:
| 知识点 | 说明 | 示例 |
| 变量与数据类型 | 变量以 $ 开头,支持字符串、数字、数组等 | $name = "小明" |
| 管道操作 | 用 | 将命令输出传给下一个命令继续处理 | Get-Process | Where-Object CPU -gt 10 |
| 条件判断与循环 | if/else 分支判断,foreach/for 批量处理 | if ($age -gt 18) { ... } |
| 函数定义 | 用 function 封装可复用的代码块 | function SayHello { ... } |
| 文件与系统操作 | 读写文件、管理进程和服务 | Get-Content、Set-Service |
| 错误处理 | 用 try/catch 捕获异常,防止脚本崩溃 | try { ... } catch { ... } |
以上是编写 PowerShell 脚本的核心知识体系。掌握这些内容后,你就可以根据自己的需求编写自动化脚本了。另外,写脚本时建议用 VS Code、Sublime Text 而不是记事本,语法高亮和调试功能能帮你省不少时间。
PowerShell新手注意事项
1)电脑上同时存在两个 PowerShell:系统自带的 5.1 和新装的 7。日常使用建议用 7,功能更全;如果运行的是依赖 5.1 的老脚本,就用系统自带版本打开。
2)需要修改系统设置、安装服务等操作时,右键开始菜单选择"终端(管理员)"打开,普通窗口没有管理员权限,命令会报"拒绝访问"。
3)PowerShell 命令不区分大小写,Get-Process 和 get-process 一样;命令名记不住可以输入 Get-Command 查看全部内置命令。
4)PowerShell 权限很大,删除类命令(Remove-Item)执行前一定看清路径,重要文件先备份,避免误删。