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


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

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


    一、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
    
    • 1

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

    Get-Alias
    
    • 1

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

    Set-Alias -Name gs -Value Get-Service
    
    • 1

    这样,每次你键入 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
    
    • 1

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

    在这里插入图片描述


    3.1 基础命令

    1. Get-Command

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

    Get-Command *process*
    
    • 1
    2. Get-Help

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

    Get-Help Get-Process
    
    • 1

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

    3. Set-Variable

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

    Set-Variable -Name myVar -Value "Hello, PowerShell!"
    
    • 1
    4. Get-Variable

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

    Get-Variable myVar
    
    • 1
    5. Remove-Variable

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

    Remove-Variable myVar
    
    • 1
    6. Clear-Variable

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

    Clear-Variable myVar
    
    • 1

    3.2 管理命令

    1. Get-Process

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

    Get-Process
    
    • 1

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

    Get-Process -Name notepad
    
    • 1
    2. Stop-Process

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

    Stop-Process -Name notepad
    
    • 1
    3. Restart-Service

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

    Restart-Service -Name wuauserv
    
    • 1
    4. Get-Service

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

    Get-Service
    
    • 1

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

    Get-Service -Name wuauserv
    
    • 1
    5. Start-Service 和 Stop-Service

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

    Stop-Service -Name wuauserv
    
    • 1

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

    Start-Service -Name wuauserv
    
    • 1
    6. Get-EventLog

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

    Get-EventLog -LogName System -Newest 10
    
    • 1

    3.3 实用工具命令

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

    1. Sort-Object

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

    Get-Process | Sort-Object -Property ProcessName
    
    • 1
    2. Measure-Object

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

    Get-Content -Path "C:\path\to\file.txt" | Measure-Object -Line
    
    • 1
    3. ConvertTo-Json 和 ConvertFrom-Json

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

    Get-Process | ConvertTo-Json
    
    • 1

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

    $jsonData | ConvertFrom-Json
    
    • 1
    4. Select-Object

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

    Get-Process | Select-Object -Property ProcessName, Id
    
    • 1
    5. Where-Object

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

    Get-Process | Where-Object {$_.WorkingSet64 -gt 100MB}
    
    • 1
    6. Out-File

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

    Get-Process | Out-File -Path "C:\path\to\file.txt"
    
    • 1
    7. Compare-Object

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

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

    3.4 提供程序命令

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

    1. Get-PSProvider

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

    Get-PSProvider
    
    • 1
    2. Get-PSDrive

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

    Get-PSDrive
    
    • 1

    在这里插入图片描述

    3. New-PSDrive

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

    New-PSDrive -Name HKMyCustom -PSProvider Registry -Root HKEY_CURRENT_USER\Software\MyCustomPath
    
    • 1
    4. Remove-PSDrive

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

    Remove-PSDrive -Name HKMyCustom
    
    • 1
    5. Set-Location 和 Get-Location

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

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

    Set-Location -Path HKMyCustom:
    
    • 1

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

    6. Get-Item 和 Set-Item

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

    Get-Item -Path HKMyCustom:\SomeKeyName
    
    • 1

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

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

    3.5 模块和包命令

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

    1. Import-Module

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

    Import-Module -Name MyModule
    
    • 1
    2. Remove-Module

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

    Remove-Module -Name MyModule
    
    • 1
    3. Get-Module

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

    Get-Module -ListAvailable
    
    • 1
    4. Install-Module

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

    Install-Module -Name PSReadline
    
    • 1
    5. Uninstall-Module

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

    Uninstall-Module -Name PSReadline
    
    • 1
    6. Find-Module

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

    Find-Module -Name *Azure*
    
    • 1
    7. Save-Module

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

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

    3.6 调试命令

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

    1. Set-PSBreakpoint (sbp)

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

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

    Set-PSBreakpoint -Script myscript.ps1 -Line 10
    
    • 1
    2. Get-PSBreakpoint

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

    Get-PSBreakpoint
    
    • 1
    3. Remove-PSBreakpoint (rbp)

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

    Remove-PSBreakpoint -ID 1
    
    • 1
    4. Get-PSCallStack

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

    Get-PSCallStack
    
    • 1
    5. Trace-Command

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

    Trace-Command -Name Metadata -Expression { Get-ChildItem } -PSHost
    
    • 1
    6. Enter-PSHostProcess 和 Exit-PSHostProcess

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

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

    Enter-PSHostProcess -Id 1234
    
    • 1

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

    Exit-PSHostProcess
    
    • 1

    3.7 远程命令

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

    1. Enter-PSSession

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

    Enter-PSSession -ComputerName RemoteServer
    
    • 1

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

    2. Exit-PSSession

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

    Exit-PSSession
    
    • 1
    3. Invoke-Command

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

    Invoke-Command -ComputerName RemoteServer -ScriptBlock { Get-Process }
    
    • 1
    4. New-PSSession

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

    $session = New-PSSession -ComputerName RemoteServer
    
    • 1
    5. Remove-PSSession

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

    Remove-PSSession -Session $session
    
    • 1
    6. Export-PSSession

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

    Export-PSSession -Session $session -OutputModule RemoteFunctions
    
    • 1
    7. Enable-PSRemoting 和 Disable-PSRemoting

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

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

    Enable-PSRemoting
    
    • 1

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

    Disable-PSRemoting
    
    • 1

    四、特殊操作符

    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服务端程序。

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


    ~

  • 相关阅读:
    AVS感知无损压缩标准概述——视觉无损质量等级视频浅压缩
    Python基础篇--【2022全新总结】
    放眼看政策!2022年武汉市光谷招贤令奖励补贴政策以及申报条件!
    macOS配置Maven和环境变量
    uniapp - 微信小程序实现腾讯地图位置标点展示,将指定地点进行标记选点并以一个图片图标展示出来(详细示例源码,一键复制开箱即用)
    ARM接口编程—RTC(exynos 4412平台)
    Python实现排序
    Redis的介绍安装以及启动与使用、数据类型、Redis管道、Django使用Redis
    前端工作总结249-uni-关闭onshow的加载方法uni.hideLoading
    Python笔记 · self,cls,实例方法,静态方法,类方法
  • 原文地址:https://blog.csdn.net/weixin_43764974/article/details/132255181