PowerShell 入门到进阶:从基础到实战 (1)

259 阅读2分钟

PowerShell 入门到进阶:从基础到实战 (1)

一、认识 PowerShell

1.1 什么是 PowerShell?

PowerShell 是微软开发的跨平台命令行工具和脚本语言,结合了 shell 和编程语言的功能。它基于 .NET 框架,能够直接操作对象(而非纯文本),支持 Windows、Linux 和 macOS 系统。PowerShell 的核心优势在于:

  • 对象驱动:通过对象模型直接操作系统资源(如进程、文件、服务)。
  • 跨平台:支持 Windows、Linux 和 macOS。
  • 自动化能力:通过脚本实现系统管理、部署和维护的自动化。

1.2 安装与启动

  • Windows:默认安装 Windows PowerShell,推荐升级到 PowerShell 7+(跨平台版本)。

  • Linux/macOS:通过包管理器(如 apt、brew)安装 PowerShell。

  • 启动方式

    • Windows:开始菜单搜索 PowerShell
    • Linux/macOS:终端输入 pwsh

二、PowerShell 的强大之处

2.1 对象驱动操作

传统命令行工具(如 CMD)返回的是文本,而 PowerShell 返回的是结构化对象。例如:

# 获取进程信息并筛选名称包含 "explorer" 的进程
Get-Process | Where-Object { $_.Name -like "*explorer*" }

2.2 脚本语言与自动化

PowerShell 支持函数、类、模块等高级编程特性。例如,编写一个简单的脚本:

# 创建脚本文件:hello.ps1
Write-Host "Hello, World!"

运行脚本:

.\hello.ps1

2.3 模块化与扩展性

PowerShell 的模块(Module)允许开发者封装功能。例如,安装 Azure 管理模块:

Install-Module -Name Az
Import-Module Az

三、PowerShell 快捷键

3.1 常用快捷键

操作快捷键
补全命令Tab
历史命令↑ / ↓
清屏Clear 或 Ctrl+L
注释# 开头
多行输入按 Enter 继续输入

3.2 Windows PowerShell ISE 快捷键

操作快捷键
运行脚本F5
设置断点F9
调试到光标Ctrl+F8
查看输出Ctrl+O

四、PowerShell 管道与重定向

4.1 管道(Pipeline)

管道 | 将前一个命令的输出作为下一个命令的输入。例如:

# 获取所有运行中的服务并排序
Get-Service | Where-Object { $_.Status -eq "Running" } | Sort-Object Name

4.2 重定向输出

将命令结果保存到文件或控制台:

# 将进程列表保存到文件
Get-Process > processes.txt

# 同时输出到控制台和文件
Get-Process | Tee-Object -FilePath processes.txt

五、PowerShell 数学运算

5.1 基本运算

PowerShell 支持算术运算符(+, -, *, /, %):

# 计算表达式
$sum = 10 + 20
$product = 5 * 3
Write-Host "Sum: $sum, Product: $product"

5.2 变量与复杂运算

结合变量和数学函数:

# 计算圆的面积
$radius = 5
$area = [math]::PI * $radius * $radius
Write-Host "Area: $area"

六、PowerShell 执行外部命令

6.1 直接调用

可以直接调用系统命令(如 notepadping):

# 打开记事本
notepad

# 检查网络连通性
Test-Connection google.com

6.2 使用 Start-Process

通过 Start-Process 更灵活地启动外部程序:

# 以管理员身份运行记事本
Start-Process notepad.exe -Verb RunAs

# 启动浏览器并打开网页
Start-Process chrome.exe -ArgumentList "https://www.microsoft.com"

七、PowerShell 命令集

7.1 核心命令

命令功能
Get-Command列出所有可用命令
Get-Help获取命令帮助(例如:Get-Help Get-Process
Get-Member查看对象属性和方法(例如:`Get-Date

7.2 文件与目录操作

命令功能
Get-ChildItem列出目录内容(别名:ls/dir
New-Item创建新文件或目录(例如:New-Item -ItemType File -Path test.txt
Copy-Item复制文件或目录(例如:Copy-Item file.txt newfile.txt

7.3 系统管理

命令功能
Get-Service查看服务状态
Restart-Computer重启计算机
Stop-Process终止进程(例如:Stop-Process -Name notepad

7.4 示例:综合脚本

# 自动清理临时文件
$tempPath = "$env:TEMP"
Get-ChildItem -Path $tempPath -Recurse | Remove-Item -Force
Write-Host "Temporary files cleaned."

总结

PowerShell 是系统管理和自动化任务的强大工具。通过对象驱动、脚本编写、管道和模块化扩展,用户可以高效完成复杂的操作。无论是初学者还是高级用户,掌握 PowerShell 都能显著提升工作效率。