折腾了半天,总算把 PowerShell 7 装明白了

0 阅读4分钟

先说下背景。我平时用电脑主要是写点小脚本、整理文件,之前一直用系统自带的 cmd,总觉得不太够用。后来听朋友提了好几次 PowerShell,说这东西比 cmd 强太多,还能跨平台。我一开始也没当回事,直到某天想批量改文件名,cmd 写起来太痛苦了,才想着试试 PowerShell。

去官网一看,好家伙,现在最新版本是 7.6.5,而且 Windows、Linux、macOS 都能用。我电脑是 Windows,直接下的安装包。说实话,下载之前我还担心会不会和系统自带的那个 PowerShell 冲突,查了一下发现,两个版本可以共存,装了新的不影响原来的,这才放心。

PowerShell 7 到底是个啥

简单说,PowerShell 是微软出的命令行脚本工具,比 cmd 升级了不止一点半点。它能敲命令管理系统,也能写脚本做自动化,很多运维和开发都用它批量处理任务。

我用了几天,感受比较深的是这几点:

  • 命令特别多,文件、网络、系统、服务什么的都能管,内置命令上千条
  • 支持管道操作,一个命令的输出直接喂给下一个命令,组合起来很灵活
  • 跨平台,Windows、macOS、Linux 都能跑,写一次脚本多平台用

和系统里其他命令行工具比,它的定位也不一样。Windows 自带的那个 5.1 是老版本,只能 Windows 用,日常简单操作还行;cmd 就更基础了,功能有限。PowerShell 7 是单独装的,功能全,适合进阶用户。

下载安装包

下载这块,我是直接拿的安装包,里面 Windows、Linux、macOS 的都有,Github 上的。文件不大,100 MB 左右,下载安装几分钟就能搞定。

为了方便大家下载,我已经给大家整理好了资源。资源链接放在下面,自取就好,如果链接失效,可以在评论区留言,我看到了会及时更新。

夸克网盘下载

Windows 上装的时候,卡了我一下

双击 .msi 文件启动安装程序,点 Next,这个没啥好说的。到了选安装路径那一步,我保持默认了,其实装到 D 盘也行,看个人习惯。

然后有一个地方,我一开始差点漏掉,就是那个"Add PowerShell to PATH environment variable"的勾选框。这一步有点反直觉,我以为默认会勾上,结果没有。不勾的话,之后在命令行里输 pwsh 是启动不了的,必须勾上,其他保持默认就行。

继续点 Next 和 Install,等它装完,点 Finish 退出。然后去开始菜单里找"PowerShell 7 (x64)"就能打开了。

Linux 和 macOS 的装法,顺手也记一下

我主要用 Windows,但既然官方支持跨平台,我顺手把 Linux 和 macOS 的装法也记下来了,万一以后用得上。

Linux 上(以 Ubuntu 为例)推荐用包管理器装,打开终端,依次执行下面这些命令:

# 更新包列表
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

卸载的话,一条命令 sudo apt-get remove powershell 就行。如果是 CentOS 那种 Red Hat 系列,用 yum 或者 dnf 装对应的 .rpm 包。

macOS 的话,两种方式。一种是手动下 .pkg 文件,Intel 芯片选 x64,Apple Silicon 选 arm64,双击打开一路点继续和安装就行。另一种是用 Homebrew,终端执行 brew install powershell,装完输 pwsh 启动。

上手用起来,几个常用命令先记住

Windows 用户在开始菜单点"PowerShell 7 (x64)",Linux 和 macOS 用户在终端输 pwsh 回车,就能进入命令行界面。

进去之后,先试一条命令,查看当前路径,输入 Get-Location 回车,就能看到自己在哪个目录了。

PowerShell 的命令格式跟 cmd 不太一样,是"动词-名词"的结构,比如 Get-ChildItem、Get-Location,语义清晰,其实挺好记的。我整理了几个常用的,对照着看:

命令功能类似 CMD 命令
Get-ChildItem列出当前目录的文件和文件夹dir
Set-Location切换目录cd
Get-Content查看文件内容type
Copy-Item复制文件或文件夹copy
Remove-Item删除文件或文件夹del
Get-Process查看正在运行的进程tasklist
Get-Help查看命令帮助文档help /?

跑第一个脚本,其实挺简单的。在桌面新建一个记事本文件,输入以下内容,保存为 hello.ps1:

Write-Host "Hello, PowerShell!"
Get-Date

然后在 PowerShell 里切到文件所在的目录,输入 .\hello.ps1(Windows)或者 ./hello.ps1(Linux/macOS)回车,它就会输出 "Hello, PowerShell!" 和当前日期时间。

想深入写脚本的话,需要掌握变量($name = "小明")、管道操作(Get-Process | Where-Object CPU -gt 10)、条件判断和循环(if/else、foreach/for)、函数定义(function SayHello { ... })、文件与系统操作、错误处理(try/catch)这些。写脚本建议用 VS Code 或 Sublime Text,别用记事本,语法高亮和调试功能能省不少时间。

新手容易踩的几个坑

我装完用下来,有几个地方想提醒一下:

  1. 电脑上现在有两个 PowerShell:系统自带的 5.1 和新装的 7。日常用 7,功能更全;如果跑的是依赖 5.1 的老脚本,用系统自带版本打开。

  2. 要改系统设置、装服务这类操作,需要右键开始菜单选"终端(管理员)"打开,普通窗口没权限,命令会报"拒绝访问"。

  3. PowerShell 命令不区分大小写,Get-Process 和 get-process 一样。命令名记不住,输入 Get-Command 可以查看全部内置命令。

  4. PowerShell 权限很大,删除类命令(Remove-Item)执行前一定看清路径,重要文件先备份,避免误删。

最后说一句

PowerShell 7 确实比 cmd 强不少,查文件、管进程、看系统信息都能用命令搞定,还能写脚本批量自动化。对我这种日常折腾命令行的人来说,还是挺值得装的。新手上手可以先敲几条查看命令(Get-Process、Get-ChildItem),再试试管道组合,配合 Get-Help 看帮助,很快就能上手了。