PowerShell 是 Windows 自带的现代化命令行工具 + 脚本语言,一个功能强化版的shell(shell的本质是一个命令解释器,能够让用户用文字命令控制电脑程序,是用户与内核交互的界面)。
powershell的特点
-
基于 .NET:这是 PowerShell 最核心的区别。它处理的是**.NET 对象**,而不是文本字符串。
-
动词-名词 结构:几乎所有的核心命令(称为 Cmdlet)都遵循
动词-名词的格式,例如Get-Service、Stop-Process。这使得命令非常容易预测和学习。 -
极其强大的管道:由于传递的是对象,PowerShell 的管道不仅可以传递数据,还可以传递数据的所有属性和方法。这允许你执行极其复杂的级联操作。
-
面向对象:你可以直接访问对象的属性(如文件的大小、进程的 CPU 使用率)和方法(如停止进程、重启服务)。
-
深度集成 Windows:PowerShell 可以深入管理 Windows 的各个方面,包括注册表、WMI(Windows 管理规范)、服务、进程、网络、用户账户等。
-
跨平台 (PowerShell Core):现代版本的 PowerShell (PowerShell 6.0 及更高版本,称为 PowerShell Core) 是开源且跨平台的,可以运行在 Windows、Linux 和 macOS 上。
常用powershell命令
1:#:在powershell中用于注释
2:powershell中不区分大小写
文件/文件夹操作
列出当前目录文件
Get-ChildItem
#别名
ls
dir
进入文件夹
cd 文件夹名
#返回上一级
cd ..
#一个..表示一级,两级用../..,依次叠加
创建文件
New-Item 文件名
#别名
ni 文件名
创建文件夹
mkdir 文件夹名
复制文件
Copy-Item 源文件 目标路径
#别名
cp a.txt d:\
移动文件
Move-Item a.txt d:\
#别名
mv a.txt d:\
删除文件
Remove-Item test.txt
#别名
rm test.txt
查看文件内容
Get-Content test.txt
#别名
gc test.txt
进程/系统信息
查看所有进程
Get-Process
ps
查看指定进程
Get-Process qq
进程信息中的属性列
Handles:句柄数,指进程当前打开的系统资源(如文件、注册表项、线程、事件等)的句柄数量。句柄是操作系统用来追踪资源的唯一标识符,数值越高说明该进程正在操作的资源越多。
NPM(K):非分页池内存(单位:KB),这是内核为驱动程序和系统组件分配的内存,这部分内存不能被交换到虚拟内存(页面文件),必须常驻物理内存。数值过高可能意味着驱动或内核模块存在内存泄漏。
PM(K):私有内存(单位:KB),指进程独占使用的物理内存,这部分内存不能被其他进程共享。它是衡量进程实际占用内存大小的重要指标,也是判断内存泄漏或资源占用异常的关键数据。
WS(K):工作集内存(单位:KB),指进程当前在物理内存中实际使用的内存总量,包括共享内存和私有内存。它反映的是操作系统为该进程分配的“活跃”内存,数值会随进程活动动态变化。
CPU(s):CPU 时间(单位:秒),指该进程自启动以来累计占用的 CPU 时间总和,不是实时占用率。例如 2.14 表示该进程总共使用了 2.14 秒的 CPU 时间。
Id:进程 ID,操作系统为每个进程分配的唯一数字标识符,用于在系统中精确识别和管理进程。例如任务管理器或命令行中通过 ID 来结束特定进程。
SI:会话 ID,指该进程所属的用户会话编号。在多用户或远程桌面环境中,不同用户的进程会运行在不同的会话中,SI 用于区分这些会话。
ProcessName:进程名称,即进程对应的可执行文件名(不含 .exe 后缀),如
chrome、notepad、explorer等,是识别进程身份的最直观信息。
结束进程
# 结束进程
Stop-Process -Name 进程名
Stop-Process -Id 1234
查看系统服务
Get-Service
启动/停止服务
Start-Service 服务名
Stop-Service 服务名
查看电脑信息
Get-ComputerInfo
网络相关
查看IP
ipconfig
ping
#Test-Connection返回结构化信息,更直观
Test-Connection www.baidu.com
ping www.baidu.com
查看端口占用
netstat -ano
查看DNS
Get-DnsClientServerAddress
磁盘、用户、权限
# 查看磁盘
Get-PSDrive
# 查看磁盘空间
Get-Volume
# 查看当前用户
whoami
$env:USERNAME
# 以管理员运行 PowerShell
Start-Process powershell -Verb RunAs
实用小命令
# 清屏
cls
# 查看历史命令
history
# 查找命令,看所有命令
Get-Command 关键字
# 帮助(非常重要)
Get-Help 命令名
Get-Help Get-Process
管道
|就是管道符- 作用:把前面命令的输出,传给后面命令当输入
# 找出占用内存最大的5个进程
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
# 导出进程到 CSV
Get-Process | Export-Csv process.csv
#Where-Object (别名 ?):按条件过滤。
ls | ? Length -gt 100MB (找出大于 100MB 的大文件)
#Select-Object (别名 select):挑选你关心的属性。
ps | select ProcessName, Id, CPU (只看这三列数据)
#Export-Csv:一键导出报表。
Get-Service | Export-Csv D:\services.csv (把所有服务存成 Excel 表格)
#ConvertTo-Json:转换成 JSON 格式,方便程序员对接。
Get-Service | ConvertTo-Json >D:\services.csv

1万+

被折叠的 条评论
为什么被折叠?



