【Powershell 】(Windows下)常用命令 | 命令别名 | 运行Windows命令行工具 | 运行用户程序(vim、gcc、gdb)

news2025/1/12 8:53:18

微软官方Powershell文档:https://learn.microsoft.com/zh-cn/powershell/

命令详细说明,在PDF的最后面:
在这里插入图片描述


  • 一、Powershell及命令简介
    • 1.1 命令格式
    • 1.2 命令的别名
  • 二、cmdlet别名
  • 三、cmdlet分类介绍
    • 3.1 基础命令
        • 1. Get-Command
        • 2. Get-Help
        • 3. Set-Variable
        • 4. Get-Variable
        • 5. Remove-Variable
        • 6. Clear-Variable
    • 3.2 管理命令
        • 1. Get-Process
        • 2. Stop-Process
        • 3. Restart-Service
        • 4. Get-Service
        • 5. Start-Service 和 Stop-Service
        • 6. Get-EventLog
    • 3.3 实用工具命令
        • 1. Sort-Object
        • 2. Measure-Object
        • 3. ConvertTo-Json 和 ConvertFrom-Json
        • 4. Select-Object
        • 5. Where-Object
        • 6. Out-File
        • 7. Compare-Object
    • 3.4 提供程序命令
        • 1. Get-PSProvider
        • 2. Get-PSDrive
        • 3. New-PSDrive
        • 4. Remove-PSDrive
        • 5. Set-Location 和 Get-Location
        • 6. Get-Item 和 Set-Item
    • 3.5 模块和包命令
        • 1. Import-Module
        • 2. Remove-Module
        • 3. Get-Module
        • 4. Install-Module
        • 5. Uninstall-Module
        • 6. Find-Module
        • 7. Save-Module
    • 3.6 调试命令
        • 1. Set-PSBreakpoint (sbp)
        • 2. Get-PSBreakpoint
        • 3. Remove-PSBreakpoint (rbp)
        • 4. Get-PSCallStack
        • 5. Trace-Command
        • 6. Enter-PSHostProcess 和 Exit-PSHostProcess
    • 3.7 远程命令
        • 1. Enter-PSSession
        • 2. Exit-PSSession
        • 3. Invoke-Command
        • 4. New-PSSession
        • 5. Remove-PSSession
        • 6. Export-PSSession
        • 7. Enable-PSRemoting 和 Disable-PSRemoting
  • 四、特殊操作符
        • 1. 算术操作符
        • 2. 赋值操作符
        • 3. 比较操作符
        • 4. 逻辑操作符
        • 5. 位操作符
        • 6. 重定向操作符
        • 7. 特殊操作符
        • 8. 类型操作符
  • 五、运行Windows命令行工具
    • 5.1 常用命令行工具
        • 1. ipconfig
        • 2. netstat
        • 3. ping
        • 4. tracert
        • 5. nslookup
        • 6. sfc
        • 7. chkdsk
        • 8. systeminfo
        • 9. gpupdate
        • 10. tasklist
    • 5.2 对应的cmdlet
  • 六、运行用户程序
    • 6.1 vim(nvim)
    • 6.2 gcc / gdb

一、Powershell及命令简介

PowerShell 是一种用于自动化的命令行 shell脚本语言

Wikipedia 包含以下关于 shell 的描述:

shell 通过提示用户输入、解释其输入,然后处理基础操作系统的输出来管理用户系统交互(非常类似于读取–求值–打印循环 [即 REPL])。

与其他 shell(如 bash 或 cmd.exe)类似,PowerShell 使你能够在系统上运行任何可用的命令,而不仅仅是 PowerShell 命令。

PowerShell 命令称为 cmdlet(读作 command-let)。 cmdlet 是 PowerShell 命令,而不是独立的可执行文件。 如果不先运行 PowerShell,则 PowerShell 命令无法在其他 shell 中运行。

PowerShell 是新式命令 shell,其中包括其他常用 shell 的最佳功能。 与大多数仅接受并返回文本的 shell 不同,PowerShell 接受并返回 .NET 对象。 shell 有多项功能可用于优化交互式用户体验。

1.1 命令格式

PowerShell 的命令遵循一个特定的命名约定,即“动词-名词”格式。这种结构使得命令易于阅读和理解。以下是 PowerShell cmdlet 的组成部分:

  1. 动词 (Verb): 描述 cmdlet 执行的操作。例如,GetSetNewRemove 等。

  2. 名词 (Noun): 描述 cmdlet 操作的对象或资源。例如,ItemServiceProcess 等。

  3. 参数 (Parameters): 提供给 cmdlet 的额外信息,以影响其操作。参数通常以 - 开头,例如 -Name-Path 等。

  4. 参数值 (Parameter Values): 跟在参数后面的具体值。例如,在 Get-Service -Name "wuauserv" 中,"wuauserv"-Name 参数的值。

以下是一些 PowerShell cmdlet 的示例:

  • Get-Service: 获取系统上运行的所有服务的列表。
  • Get-Process: 获取当前运行的所有进程的列表。
  • New-Item: 创建一个新的项目,如文件或文件夹。
  • Remove-Item: 删除一个项目,如文件或文件夹。

此外,PowerShell 还支持使用管道 (|) 将一个 cmdlet 的输出传递给另一个 cmdlet 作为输入。例如,Get-Process | Where-Object {$_.CPU -gt 100} 会获取所有 CPU 使用率超过 100 的进程。

1.2 命令的别名

PowerShell 中的许多命令(cmdlet)都有别名。别名是一个或多个 cmdlet 的短名称,它们提供了一种快速键入常用命令的方法,而不必完整地键入整个 cmdlet 名称。

例如:

  • Get-Command 的别名是 gcm
  • Get-Help 的别名是 helpman
  • Get-Process 的别名是 ps
  • Get-Item 的别名是 gi

你可以使用 Get-Alias cmdlet 来查看所有可用的别名。例如,要查看 Get-Command 的所有别名,你可以运行:

Get-Alias -Definition Get-Command

如果你想查看所有的别名及其对应的 cmdlet,你可以简单地运行:

Get-Alias

此外,你还可以使用 Set-Alias cmdlet 来创建自己的别名。例如,如果你想为 Get-Service 创建一个别名 gs, 你可以运行:

Set-Alias -Name gs -Value Get-Service

这样,每次你键入 gs 时,它都会运行 Get-Service cmdlet。

此外,可以使用Tab补全命令。

二、cmdlet别名

这些别名是7.36版本中,使用Get-Alias命令获取的。

有少许别名可能与Linux bash命令相同,但参数一般不同。

别名 (Alias)cmdlet 名称 (Cmdlet Name)作用 (Description)
?Where-Object过滤对象
%ForEach-Object对每个对象执行操作
acAdd-Content添加内容到文件
catGet-Content获取文件内容
cd, chdirSet-Location更改当前位置
clcClear-Content清除内容
clear, clsClear-Host清除控制台输出
clhyClear-History清除命令历史
cliClear-Item清除项目
clpClear-ItemProperty清除项目属性
clvClear-Variable清除变量
cnsnConnect-PSSession连接到 PSSession
compareCompare-Object比较对象
copy, cp, cpiCopy-Item复制项目
cppCopy-ItemProperty复制项目属性
cvpaConvert-Path转换路径
dbpDisable-PSBreakpoint禁用断点
del, eraseRemove-Item删除项目
diffCompare-Object比较对象
dirGet-ChildItem获取子项目列表
dnsnDisconnect-PSSession断开 PSSession
ebpEnable-PSBreakpoint启用断点
echoWrite-Output输出内容
epalExport-Alias导出别名
epcsvExport-Csv导出为 CSV
eraseRemove-Item删除指定项目
etsnEnter-PSSession进入 PSSession
exsnExit-PSSession退出 PSSession
fcFormat-Custom自定义格式化
fhxFormat-Hex格式化为十六进制
flFormat-List列表格式化
foreachForEach-Object对每个对象执行操作
ftFormat-Table表格格式化
fwFormat-Wide宽格式化
galGet-Alias获取别名
gbpGet-PSBreakpoint获取断点
gcGet-Content获取内容
gcbGet-Clipboard获取剪贴板内容
gciGet-ChildItem获取子项目
gcmGet-Command获取命令
gcsGet-PSCallStack获取调用堆栈
gdrGet-PSDrive获取驱动器
gerrGet-Error获取错误
ghyGet-History获取历史
giGet-Item获取项目
ginGet-ComputerInfo获取计算机信息
gjbGet-Job获取作业
glGet-Location获取当前位置
gmGet-Member获取成员
gmoGet-Module获取模块
gpGet-ItemProperty获取项目属性
gpsGet-Process获取进程
gpvGet-ItemPropertyValue获取项目属性值
groupGroup-Object对象分组
gsnGet-PSSession获取 PSSession
gsvGet-Service获取服务
gtzGet-TimeZone获取时区
guGet-Unique获取唯一值
gvGet-Variable获取变量
h, historyGet-History获取历史
icmInvoke-Command调用命令
iexInvoke-Expression调用表达式
ihyInvoke-History调用历史命令
iiInvoke-Item调用项目
ipalImport-Alias导入别名
ipcsvImport-Csv导入 CSV
ipmoImport-Module导入模块
irmInvoke-RestMethod调用 REST 方法
iwrInvoke-WebRequest调用 Web 请求
killStop-Process停止进程
lsGet-ChildItem获取子项目
manhelp获取帮助
mdmkdir创建目录
measureMeasure-Object测量对象
miMove-Item移动项目
mountNew-PSDrive创建新驱动器
moveMove-Item移动项目
mpMove-ItemProperty移动项目属性
mvMove-Item移动项目
nalNew-Alias创建新别名
ndrNew-PSDrive创建新驱动器
niNew-Item创建新项目
nmoNew-Module创建新模块
nsnNew-PSSession创建新 PSSession
nvNew-Variable创建新变量
ogvOut-GridView输出到网格视图
ohOut-Host输出到主机
popdPop-Location弹出位置
psGet-Process获取进程
pushdPush-Location推送位置
pwdGet-Location获取当前位置
rInvoke-History调用历史命令
rbpRemove-PSBreakpoint删除断点
rcjbReceive-Job接收作业
rcsnReceive-PSSession接收 PSSession
rdRemove-Item删除项目
rdrRemove-PSDrive删除驱动器
renRename-Item重命名项目
riRemove-Item删除项目
rjbRemove-Job删除作业
rm, rmdirRemove-Item删除项目
rmoRemove-Module删除模块
rniRename-Item重命名项目
rnpRename-ItemProperty重命名项目属性
rpRemove-ItemProperty删除项目属性
rsnRemove-PSSession删除 PSSession
rvRemove-Variable删除变量
rvpaResolve-Path解析路径
sajbStart-Job开始作业
salSet-Alias设置别名
sapsStart-Process开始进程
sasvStart-Service开始服务
sbpSet-PSBreakpoint设置断点
scbSet-Clipboard设置剪贴板内容
selectSelect-Object选择对象
setSet-Variable设置变量
shcmShow-Command显示命令
siSet-Item设置项目
slSet-Location设置位置
sleepStart-Sleep开始休眠
slsSelect-String选择字符串
sortSort-Object排序对象
spSet-ItemProperty设置项目属性
spjbStop-Job停止作业
sppsStop-Process停止进程
spsvStop-Service停止服务
startStart-Process开始进程
stzSet-TimeZone设置时区
svSet-Variable设置变量
teeTee-Object分叉对象
typeGet-Content获取内容
whereWhere-Object过滤对象
wjbWait-Job等待作业
writeWrite-Output输出内容

三、cmdlet分类介绍

如果你想了解一个命令的说明和参数,可以使用Get-Help 命令名称 的格式获取,Get-Help的别名是man,例如你要获取Get-Help这个命令的帮助文档,可以使用:

man man

帮助文档是英文的,如果你有困难,可以去文章开头的微软中国官网搜索该命令,有中文的详细解释。

在这里插入图片描述


3.1 基础命令

1. Get-Command

Get-Command 是一个非常有用的 cmdlet,它可以列出所有可用的 cmdlet、函数、脚本和别名。例如,要查找与进程相关的所有命令,可以使用:

Get-Command *process*

2. Get-Help

Get-Help cmdlet 为用户提供了关于 cmdlet 和函数的详细信息。例如,要获取 Get-Process cmdlet 的帮助信息,可以使用:

Get-Help Get-Process

此外,-Examples-Detailed-Full 参数可以提供更多的信息。

3. Set-Variable

Set-Variable cmdlet 允许用户创建或修改一个变量。例如,要创建一个名为 “myVar” 的变量并为其赋值 “Hello, PowerShell!”,可以使用:

Set-Variable -Name myVar -Value "Hello, PowerShell!"

4. Get-Variable

Set-Variable 相对应,Get-Variable cmdlet 可以获取一个或多个变量的值。例如,要获取 “myVar” 的值,可以使用:

Get-Variable myVar

5. Remove-Variable

Remove-Variable cmdlet 允许用户删除一个或多个变量。例如,要删除 “myVar” 变量,可以使用:

Remove-Variable myVar

6. Clear-Variable

Clear-Variable cmdlet 用于清除变量的值,但不删除变量本身。例如,要清除 “myVar” 变量的值,可以使用:

Clear-Variable myVar

3.2 管理命令

1. Get-Process

Get-Process cmdlet 允许用户获取当前运行的进程信息。

Get-Process

这将列出所有当前运行的进程。你还可以通过指定进程名称来获取特定的进程信息,例如:

Get-Process -Name notepad

2. Stop-Process

Stop-Process cmdlet 用于终止一个或多个进程。例如,要终止名为 “notepad” 的进程,可以使用:

Stop-Process -Name notepad

3. Restart-Service

Restart-Service cmdlet 允许用户重新启动一个或多个服务。例如,要重新启动 “wuauserv” 服务(Windows Update 服务),可以使用:

Restart-Service -Name wuauserv

4. Get-Service

Get-Service cmdlet 提供了关于系统服务的信息。它可以列出所有服务或特定服务的状态。

Get-Service

要获取特定服务的信息,例如 “wuauserv”,可以使用:

Get-Service -Name wuauserv

5. Start-Service 和 Stop-Service

这两个 cmdlet 分别用于启动和停止服务。例如,要停止 “wuauserv” 服务,可以使用:

Stop-Service -Name wuauserv

要启动该服务,可以使用:

Start-Service -Name wuauserv

6. Get-EventLog

Get-EventLog cmdlet 允许用户读取和查询事件日志。例如,要获取系统日志中的最近 10 条事件,可以使用:

Get-EventLog -LogName System -Newest 10

3.3 实用工具命令

PowerShell 的实用工具命令提供了一系列功能,使用户能够进行文本和数据处理、文件操作、数据转换等任务。这些命令非常适合日常的数据处理和分析任务。以下是一些常用的实用工具命令及其功能介绍:

1. Sort-Object

Sort-Object cmdlet 用于对对象进行排序。例如,要按名称对进程进行排序,可以使用:

Get-Process | Sort-Object -Property ProcessName

2. Measure-Object

Measure-Object cmdlet 用于计算对象的数量、平均值、总和等。例如,要计算文本文件中的行数,可以使用:

Get-Content -Path "C:\path\to\file.txt" | Measure-Object -Line

3. ConvertTo-Json 和 ConvertFrom-Json

这两个 cmdlet 用于将对象转换为 JSON 格式,或从 JSON 格式转换为对象。例如,要将进程列表转换为 JSON 格式,可以使用:

Get-Process | ConvertTo-Json

反之,要从 JSON 格式转换为 PowerShell 对象,可以使用:

$jsonData | ConvertFrom-Json

4. Select-Object

Select-Object cmdlet 允许用户选择对象的特定属性。例如,要仅选择进程的名称和 ID,可以使用:

Get-Process | Select-Object -Property ProcessName, Id

5. Where-Object

Where-Object cmdlet 用于过滤对象。例如,要选择使用内存超过 100 MB 的进程,可以使用:

Get-Process | Where-Object {$_.WorkingSet64 -gt 100MB}

6. Out-File

Out-File cmdlet 用于将输出重定向到文件。例如,要将进程列表保存到文件中,可以使用:

Get-Process | Out-File -Path "C:\path\to\file.txt"

7. Compare-Object

Compare-Object cmdlet 用于比较两个对象集合的差异。例如,要比较两个文本文件的内容,可以使用:

Compare-Object $(Get-Content -Path "C:\path\to\file1.txt") $(Get-Content -Path "C:\path\to\file2.txt")

3.4 提供程序命令

PowerShell 提供程序是一种特殊的适配器,使得各种数据存储(如文件系统、注册表和证书存储)可以像文件系统一样被访问。这意味着你可以使用相同的命令(如 Get-ItemSet-Location 等)来操作这些不同的数据源。以下是与提供程序相关的一些常用命令及其功能介绍:

1. Get-PSProvider

Get-PSProvider cmdlet 显示所有已加载的 PowerShell 提供程序。执行此命令将列出如 FileSystemRegistryCertificate 等提供程序。

Get-PSProvider

2. Get-PSDrive

Get-PSDrive cmdlet 列出所有当前会话中的驱动器,包括由提供程序支持的驱动器。例如,除了常规的文件系统驱动器(如 C:、D:)之外,你还可能看到注册表驱动器(如 HKLM、HKCU)。

Get-PSDrive

在这里插入图片描述

3. New-PSDrive

New-PSDrive cmdlet 允许你创建一个新的 PowerShell 驱动器。例如,你可以创建一个指向特定注册表路径的新驱动器:

New-PSDrive -Name HKMyCustom -PSProvider Registry -Root HKEY_CURRENT_USER\Software\MyCustomPath

4. Remove-PSDrive

Remove-PSDrive cmdlet 用于删除之前使用 New-PSDrive 创建的驱动器。

Remove-PSDrive -Name HKMyCustom

5. Set-Location 和 Get-Location

这两个 cmdlet 用于导航到不同的 PowerShell 驱动器和路径。Set-Location(或其别名 cd)用于更改当前位置,而 Get-Location(或其别名 pwd)用于获取当前位置。

例如,要导航到之前创建的注册表驱动器,可以使用:

Set-Location -Path HKMyCustom:

然后,使用 Get-Location 可以确认你当前的位置。

6. Get-Item 和 Set-Item

这两个 cmdlet 用于获取和设置提供程序位置的项。例如,要获取注册表键的值,可以使用:

Get-Item -Path HKMyCustom:\SomeKeyName

要设置该键的值,可以使用:

Set-Item -Path HKMyCustom:\SomeKeyName -Value "NewValue"

3.5 模块和包命令

在 PowerShell 中,模块是一个包含多个函数、cmdlet、提供程序和变量的包。这些模块可以被导入到 PowerShell 会话中,以增强其功能。包则是通过包管理器(如 PowerShellGet)分发的模块或脚本。以下是与模块和包相关的一些常用命令及其功能介绍:

1. Import-Module

Import-Module cmdlet 允许你导入一个模块,使其在当前会话中可用。例如,要导入名为 “MyModule” 的模块,可以使用:

Import-Module -Name MyModule

2. Remove-Module

Remove-Module cmdlet 用于从当前会话中卸载模块。例如,要卸载 “MyModule”,可以使用:

Remove-Module -Name MyModule

3. Get-Module

Get-Module cmdlet 显示已导入或可用的模块。使用 -ListAvailable 参数可以列出所有可用的模块:

Get-Module -ListAvailable

4. Install-Module

Install-Module cmdlet 允许你从 PowerShell 库或其他存储库安装模块。例如,要安装 “PSReadline” 模块,可以使用:

Install-Module -Name PSReadline

5. Uninstall-Module

Uninstall-Module cmdlet 用于从系统中卸载模块。例如,要卸载 “PSReadline” 模块,可以使用:

Uninstall-Module -Name PSReadline

6. Find-Module

Find-Module cmdlet 允许你在 PowerShell 库中搜索模块。例如,要查找与 “Azure” 相关的所有模块,可以使用:

Find-Module -Name *Azure*

7. Save-Module

Save-Module cmdlet 允许你下载模块但不安装它。这对于在没有互联网连接的环境中手动安装模块很有用。例如,要下载 “PSReadline” 模块,可以使用:

Save-Module -Name PSReadline -Path C:\path\to\directory

3.6 调试命令

在开发和运行 PowerShell 脚本时,可能会遇到错误或异常。为了帮助用户识别和解决这些问题,PowerShell 提供了一组调试命令。这些命令允许用户设置断点、检查变量的值、跟踪执行流程等,从而更容易地找到和修复问题。以下是与调试相关的一些常用命令及其功能介绍:

1. Set-PSBreakpoint (sbp)

Set-PSBreakpoint cmdlet 允许用户在脚本、行或命令上设置断点。当执行到断点时,脚本的执行将暂停,允许用户检查当前的状态。

例如,要在 “myscript.ps1” 脚本的第 10 行设置断点,可以使用:

Set-PSBreakpoint -Script myscript.ps1 -Line 10

2. Get-PSBreakpoint

Get-PSBreakpoint cmdlet 显示当前设置的所有断点。

Get-PSBreakpoint

3. Remove-PSBreakpoint (rbp)

Remove-PSBreakpoint cmdlet 允许用户删除一个或多个断点。例如,要删除 ID 为 1 的断点,可以使用:

Remove-PSBreakpoint -ID 1

4. Get-PSCallStack

Get-PSCallStack cmdlet 显示当前的调用堆栈。这对于理解脚本的执行流程和确定当前执行的位置非常有用。

Get-PSCallStack

5. Trace-Command

Trace-Command cmdlet 允许用户跟踪特定命令的执行,以获取详细的调试信息。例如,要跟踪 “Get-ChildItem” 命令的执行,可以使用:

Trace-Command -Name Metadata -Expression { Get-ChildItem } -PSHost

6. Enter-PSHostProcess 和 Exit-PSHostProcess

这两个 cmdlet 允许用户进入和退出另一个 PowerShell 进程的会话,这对于调试运行中的脚本非常有用。

例如,要进入进程 ID 为 1234 的 PowerShell 进程,可以使用:

Enter-PSHostProcess -Id 1234

退出该进程的会话后,可以使用:

Exit-PSHostProcess

3.7 远程命令

PowerShell 的远程功能允许用户从一个计算机连接到另一个计算机,并在远程计算机上执行命令和脚本。这对于管理大型网络、自动化跨多台机器的任务或简单地从一个位置访问另一个位置的资源非常有用。以下是与远程相关的一些常用命令及其功能介绍:

1. Enter-PSSession

Enter-PSSession cmdlet 允许用户启动一个交互式会话到远程计算机。例如,要连接到名为 “RemoteServer” 的远程计算机,可以使用:

Enter-PSSession -ComputerName RemoteServer

在此会话中,你可以执行命令就像在远程计算机的本地会话中一样。

2. Exit-PSSession

当你完成远程会话并想返回到本地计算机时,可以使用 Exit-PSSession cmdlet。

Exit-PSSession

3. Invoke-Command

Invoke-Command cmdlet 允许用户在一个或多个远程计算机上执行命令或脚本。例如,要在 “RemoteServer” 上执行 “Get-Process” 命令,可以使用:

Invoke-Command -ComputerName RemoteServer -ScriptBlock { Get-Process }

4. New-PSSession

New-PSSession cmdlet 允许用户创建一个或多个持久的远程会话。这些会话可以用于多次远程命令调用,而不必每次都重新建立连接。

$session = New-PSSession -ComputerName RemoteServer

5. Remove-PSSession

Remove-PSSession cmdlet 用于关闭并删除之前使用 New-PSSession 创建的远程会话。

Remove-PSSession -Session $session

6. Export-PSSession

Export-PSSession cmdlet 允许用户从远程会话导出命令、函数、别名和其他信息,并将它们保存为一个模块。这对于在本地计算机上使用远程计算机的功能非常有用。

Export-PSSession -Session $session -OutputModule RemoteFunctions

7. Enable-PSRemoting 和 Disable-PSRemoting

这两个 cmdlet 用于启用或禁用计算机上的 PowerShell 远程功能。

要启用远程功能,可以使用:

Enable-PSRemoting

要禁用远程功能,可以使用:

Disable-PSRemoting

四、特殊操作符

PowerShell 提供了一系列特殊操作符,用于执行各种任务,如比较、模式匹配、数组操作等。以下是 PowerShell 中可用的特殊操作符及其详细介绍:

1. 算术操作符

  • -:减法
  • +:加法
  • *:乘法
  • /:除法
  • %:取余

2. 赋值操作符

  • =:赋值
  • +=:增加并赋值
  • -=:减少并赋值
  • *=:乘以并赋值
  • /=:除以并赋值

3. 比较操作符

  • -eq:等于
  • -ne:不等于
  • -gt:大于
  • -lt:小于
  • -ge:大于或等于
  • -le:小于或等于
  • -like:使用通配符进行字符串比较
  • -notlike:不使用通配符进行字符串比较
  • -match:使用正则表达式进行匹配
  • -notmatch:不使用正则表达式进行匹配

4. 逻辑操作符

  • -and:逻辑与
  • -or:逻辑或
  • -not:逻辑非
  • !:逻辑非的简写形式

5. 位操作符

  • -band:位与
  • -bor:位或
  • -bxor:位异或
  • -bnot:位非
  • -shl:左移
  • -shr:右移

6. 重定向操作符

  • >:将输出重定向到文件,覆盖文件内容
  • >>:将输出追加到文件
  • 2>:将错误输出重定向到文件
  • 2>&1:将错误输出和正常输出合并

7. 特殊操作符

  • -contains:检查数组是否包含特定值
  • -notcontains:检查数组是否不包含特定值
  • -in:检查值是否在数组中
  • -notin:检查值是否不在数组中
  • -replace:使用正则表达式替换字符串
  • -split:使用正则表达式分割字符串
  • -join:连接数组中的元素为一个字符串

8. 类型操作符

  • -is:检查对象是否为特定类型
  • -isnot:检查对象是否不为特定类型
  • -as:尝试将对象转换为特定类型

五、运行Windows命令行工具

5.1 常用命令行工具

PowerShell 不仅支持其自己的 cmdlets,还支持传统的 Windows 命令行工具。这意味着你可以在 PowerShell 会话中直接运行这些工具,而无需切换到命令提示符(CMD)。以下是一些常用的 Windows 命令行工具及其简要描述:

1. ipconfig

ipconfig 是一个用于查看和管理 Windows IP 配置的工具。

  • 基本用法ipconfig 显示计算机的所有网络接口的 IP 地址、子网掩码和默认网关。
  • 参数
    • /all:显示所有网络接口的详细信息。
    • /release:释放指定适配器的 IP 地址。
    • /renew:更新指定适配器的 IP 地址。
    • /flushdns:清除 DNS 解析器缓存。
    • /displaydns:显示 DNS 解析器缓存的内容。
    • /registerdns:刷新所有 DHCP 租约并重新注册 DNS 名称。

2. netstat

netstat 用于显示活动的网络连接、端口和网络统计信息。

  • 基本用法netstat 显示活动的网络连接。
  • 参数
    • -a:显示所有活动的网络连接和监听的端口。
    • -b:显示在创建每个连接或监听端口时涉及的可执行文件。
    • -n:以数字形式显示地址和端口号。
    • -o:显示与每个连接关联的所有者的进程 ID。

3. ping

ping 工具用于测试网络连接的可达性。

  • 基本用法ping [目标主机名或 IP] 向指定的主机或 IP 发送 ICMP 请求。
  • 参数
    • -t:持续发送 ping 请求,直到用户中断。
    • -a:解析主机名。
    • -n [次数]:发送指定次数的 echo 请求。
    • -l [大小]:发送指定大小的数据。

4. tracert

tracert 是一个用于诊断路由路径的工具。

  • 基本用法tracert [目标主机名或 IP] 显示数据包从源计算机到指定目标的路由路径。
  • 参数
    • -d:不解析地址。
    • -h [最大跃点数]:指定最大跃点数。
    • -j [主机列表]:沿途经过的主机列表。

5. nslookup

nslookup 是一个用于查询 DNS 名称和 IP 地址的工具。

  • 基本用法nslookup [主机名] 查询指定主机名的 IP 地址。
  • 参数
    • -type:查询的资源记录类型,如 A、MX、PTR 等。
    • -debug:在响应中显示详细的开发信息。

6. sfc

sfc 是系统文件检查器,用于扫描和修复 Windows 系统文件。

  • 基本用法sfc /scannow 扫描并尝试修复任何损坏的系统文件。
  • 参数
    • /verifyonly:仅扫描并验证系统文件的完整性。
    • /offbootdir:指定启动目录。
    • /offwindir:指定 Windows 目录。

7. chkdsk

chkdsk 是一个用于检查和修复磁盘错误的工具。

  • 基本用法chkdsk [驱动器:] 检查指定的驱动器。
  • 参数
    • /f:修复磁盘上的错误。
    • /r:查找坏扇区并恢复可读信息。
    • /x:强制卷在检查前先卸载。

8. systeminfo

systeminfo 工具用于显示详细的系统信息。

  • 基本用法systeminfo 显示操作系统、硬件和网络配置的详细信息。
  • 参数
    • /s [计算机名]:指定要查看的远程系统。
    • /u [用户名]:指定用户名进行身份验证。

9. gpupdate

gpupdate 是一个用于手动更新组策略的工具。

  • 基本用法gpupdate 更新组策略。
  • 参数
    • /force:强制重新应用所有设置。
    • /logoff:如果需要,完成后注销用户。

10. tasklist

tasklist 工具用于显示当前运行的进程列表。

  • 基本用法tasklist 显示所有当前运行的进程及其详细信息。
  • 参数
    • /s [计算机名]:指定要查看的远程系统。
    • /u [用户名]:指定用户名进行身份验证。
    • /fi [过滤条件]:按照指定的条件显示任务列表。

这些命令行工具在日常的系统管理和故障排查中都非常有用。了解它们的参数和用法可以帮助你更有效地使用这些工具。

5.2 对应的cmdlet

Windows ToolPowerShell Cmdlet
ipconfigGet-NetIPAddress
netstatGet-NetTCPConnection
pingTest-Connection
tracertTest-NetConnection -TraceRoute
nslookupResolve-DnsName
sfcRepair-WindowsImage
chkdskRepair-Volume
systeminfoGet-ComputerInfo
gpupdateInvoke-GPUpdate
tasklistGet-Process

六、运行用户程序

除此,之外,我们自己安装的一些命令行应用也可以在Powershell中运行。

在Powershell中使用下列工具时,请先安装,并且添加到环境变量。

在Windows下,很多功能并不需要在终端中完成,使用图形化界面可能更省事,本文只是做个介绍


6.1 vim(nvim)

nvim是vim的一个分支,更加友好,我之前的文章专门介绍过。

这里去github下载Windows版本的nvim使用。

和在Linux终端中的使用方式一样。


示例:

在这里插入图片描述
在这里插入图片描述

6.2 gcc / gdb

我是使用MinGW(Minimalist GNU for Windows)安装的gcc和gdb。

使用示例: 一个tcp服务端程序。

编译和运行
在这里插入图片描述
调试
在这里插入图片描述


~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[HDLBIts] Exams/m2014 q4j

Implement the following circuit: ("FA" is a full adder) module top_module (input [3:0] x,input [3:0] y, output [4:0] sum);assign sumxy; endmodule

C数据结构与算法——无向图(邻接矩阵) 应用

实验任务 (1) 掌握图的邻接矩阵存储及基本算法&#xff1b; (2) 掌握该存储方式下的DFS和BFS算法。 实验内容 实现图的邻接矩阵存储结构实现基于邻接矩阵的相关算法及遍历算法 实验源码 #include <malloc.h> #include <stdio.h>#define MAXSIZE 1000 #define …

SpringBoot07——VueX

共享组件之间的数据&#xff0c;集中管理 这一部分某人要打ow我就跳过没看了&#xff0c;哼&#xff0c;都怪某人

【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值

数据预处理 &#x1f4ab;数据预处理的重要性&#x1f4ab;处理缺失值⭐️识别表格中的数据⭐️计算每列缺失值的数量⭐️删除含有缺失值的样本或特征⭐️填充缺失值 &#x1f4ab;处理异常值⭐️异常值的鉴别⭐️异常值的处理 &#x1f4ab;将数据集划分为训练数据集和测试数据…

华为网络篇 RIP的Slient-Interface-26

难度1复杂度 1 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 在默认情况下&#xff0c;RIP会在所有的接口泛洪路由更新信息&#xff08;整个路由表&#xff09;&#xff0c;这里有一个问题&#xff0c;当RIP路由器连接的是一个末端网络时…

基层社会治理平台建设方案[113页PPT]

导读&#xff1a;原文《基层社会治理平台建设方案[113页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需获取完…

Python(八十二)字符串的常用操作——替换与合并

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

FreeRTOS(二值信号量)

资料来源于硬件家园&#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量的定义与应用 1、二值信号量的定义 2、二值信号量的应用 三、二值信号量的运作机制 1、FreeRTOS任务间二值…

应用冷启bindservice耗时

背景&#xff1a;sdk初始化的时候耗时过长&#xff0c;而sdk,init方法中只有一个bindservice及一些变量的初始化&#xff0c;却好事100ms 查看trace发现binderservice耗时只占init耗时的一小部分&#xff0c;但是init逻辑并没有其他代码。 这里servicebind返回快的另一原因是se…

【Java】线程数据共享和安全 -ThreadLocal

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理线程数据共享和安全 -ThreadLocal&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf…

CAN-FD总线通信应用理解

传统的车载CAN总线最高支持500 kbit/s的传输速率,每帧只能承载8 bytes的数据,由于传输速率和数据长度的限制,在自动驾驶和智能网联对网络通信的高要求背景下,使用传统 CAN 通信势必会导致总线负载率过高从而导致网络拥堵,传统CAN总线通信的瓶颈逐渐凸显。 2011年,为满足带…

并发相关面试题

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 如何理解volatile关键字 在并发领域中&#xff0c;存在三大特性&#xff1a;原子性、有序性、可见性。volatile关键字用来修饰对象的属性…

HCIP学习--BGP2

目录 前置内容 BGP宣告问题 BGP自动汇总问题 BGP 的认证 BGP的聚合(汇总) 标准的BGP聚合配置 非标准的BGP聚合 路由传递干涉策略 抑制列表 Route-map 分发列表 前缀列表 BGP在MA网络中下一跳问题-ICMP重定向 查看与某个邻居收发的路由 配置 有条件打破IBGP水平…

MyBatis框架:创建Mapper接口和映射文件,实现基本增删改查

目录 1、Mapper接口和映射文件关系 2、Mapper接口和映射文件的命名规则 2.1 Mapper接口的命名规则 2.2 映射文件的命名规则 3、Mapper接口和映射文件的创建及增删改查的实现 3.1 Mapper接口和映射文件的创建 3.2 增删改查的实现 3.2.1表结构 3.2.2 创建表User对应的实体…

excel 之 VBA

1、excel和VBA 高效办公&#xff0c;把重复性的工作写成VBA代码&#xff08;VB代码的衍生物&#xff0c;语法和VBA相同&#xff09;。 首先打开开发工具模式&#xff0c;如果没有选显卡&#xff0c;需要手动打开 打开程序编辑界面 快捷键 altF11一般操作 程序调试&#xf…

详解JAVA远程debug

目录 1.什么是远程debug&#xff1f; 2.远程debug普通JAVA程序 环境 测试程序 程序启动指令 编译器配置 3.远程debug JAVA Web程序 4.远程debug spring boot程序 1.什么是远程debug&#xff1f; 远程debug&#xff0c;也就是可以在本地debug远端部署的程序&#xff0c…

深入浅出:MyBatis的使用方法及最佳实践

这里写目录标题 添加MyBatis框架⽀持配置连接字符串和MyBatis配置连接字符串配置 MyBatis 中的 XML 路径 添加业务代码创建数据库和表添加用户实体类添加 mapper 接⼝添加 UserMapper.xml添加 Service层添加 Controller层 增删改操作增加操作删除操作修改操作 添加MyBatis框架⽀…

vue3+ts+vite全局配置Element-Plus主题色

概述 我找了很多博客&#xff0c;想全局配置Elmenet-Plus组件主题色&#xff0c;但都没有效果。所以有了这篇博客&#xff0c;希望能对你有所帮助&#xff01;&#xff01;&#xff01; 文章目录 概述一、先看效果二、创建全局颜色文件2.1 /src/styles 下新建 element-plus.sc…

王道机组难题分析

第四章 指令系统 大端方式&#xff1a;就是高地址存放高位&#xff0c; LSB的意思是&#xff1a;全称为Least Significant Bit&#xff0c;在二进制数中意为最低有效位 MSB的意思是&#xff1a;全称为Most Significant Bit&#xff0c;在二进制数中属于最高有效位 操作数可以理…

设备工单管理系统如何实现工单流程自动化?

设备工单管理系统属于工单系统的一种&#xff0c;基于其丰富的功能&#xff0c;它可以同时处理不同的多组流程&#xff0c;旨在有效处理发起人提交的事情&#xff0c;指派相应人员完成服务请求和记录全流程。该系统主要面向后勤管理、设备维护、物业管理、酒店民宿等服务行业设…