PowerShell 使用

Practice

常用命令

vim $PROFILE  # 编辑配置文件
Get-ChildItem *> $null  # 抛弃所有输出
whoami
Remove-Item -Recurse -Force <dir>  # rm -rf
Start-Process <dir>  # macOS 中的 open,alias start
Get-Help <string> -Online
Get-Command <string>  # sh 中的 which
Get-Command pwsh | Select-Object Source  # 只输出 Get-Command 返回对象的 Source 属性;Select-Object 也可以用 select 代替
Get-Service sshd
Start-Service sshd
Set-Service -StartupType Automatic sshd
Update-Help -UICulture en-US  # 更新 PowerShell 帮助文档
Unblock-File course.ps1  # 取消阻止从 Internet 下载的文件

Get-Content 命令也可以显示变量值:Get-Content Env:PATH

常用环境变量

$env:http_proxy="http://127.0.0.1:7890";$env:https_proxy="http://127.0.0.1:7890"  # 设置环境变量
$env:http_proxy="";$env:https_proxy=""  # 清除环境变量
$env:Path -split ';' | sls python  # 查看环境变量并筛选 python
$env:Path += ';C:\Tools'
$env:USERNAME

配置文件位置:$PROFILE

about_Profiles

about_PowerShell_Config

about_Environment_Variables

关于脚本:about_Scripts

PowerShell 101

PowerShell 101

PowerShell 101 中文版

什么是 101 课程 我们常说的 "101课程",通常是指 XXXX 的入门级课程。在美国,数字 "101" 是大学课程中普遍使用的介绍性课程编号,是对某一个主题的综览课程。

因为许多教程的第一章或者导论部分都会用 "101" 做标注,这个词汇渐渐的就被引申了出来,用来表示基础入门级课程,变成了一个代号,也就是基础课程的同义词。

什么是 101 课程 | 博客园

管理当前位置

变量

注释

$a = 1  # 单行注释

<#
多行注释
$b = 2
#>

变量

变量名以 $ 开始,不区分大小写:

$a = 1
$b = 2
$result = $a * $b
$result  # 输出变量

自动变量

变量名 描述
$? 上一个命令的退出状态,如果上一个命令执行成功,则 $? 的值为 True,否则为 False
$args 传递给脚本的参数,是一个数组
$HOME 用户主目录
$PWD 当前工作目录

PowerShell 自动变量 | 易百教程

字符串

$s1 = '$a * $b = $result'  # 单引号字符串中的变量不会被解析
$s2 = "$a * $b = $result"  # 双引号字符串中的变量会被解析
$s3 = "line1`nline2"  # PowerShell 使用 ` 作为转义符
$s4 = $(Get-Date)  # 命令替换

cmdlet

PowerShell 命令被称作 cmdlet (发音 command-let),每个 cmdlet 的名字由一个动词-名词对组成,例如 Get-Process。当你要查找一个 cmdlet 时,可以指定筛选 cmdlet 的动词或者名词。

cmdlet 是原生 PowerShell 命令
PowerShell 命令不区分大小写

帮助系统

PowerShell 中的三个核心 cmdlet

  • Get-Command
  • Get-Help
  • Get-Member

Get-Help

help *process*  # help process
help Get-Help -Full
help Get-Help -Online
help Get-Help -Parameter Name
help Get-Help -Examples

Update-Help

函数 help 的使用体验要比 cmdlet Get-Help 更好,help 一次只显示一页内容,使用空格键翻页。

Update-Help 失败

Update-Help -UICulture en-US

解决 powershell 7.1 的 Get-Help 找不到对应的详细帮助 | CSDN

Get-Command

Get-Command 用来定位命令

Get-Command -Verb Get
Get-Command -Noun Process
Get-Command -Name Get-Process

Get-Command -Name *service* -CommandType Cmdlet, Function, Alias  # 使用通配符搜索时最好限制一下命令类型
# 更好的做法是指定 Verb 或 Noun 或同时指定

Get-Command | Get-Random | Get-Help -Full  # Learn a PowerShell command a day

Microsoft Docs: PowerShell 101

Reference

语法

方括号表示可选项

尖括号是内容占位符,表示参数的 .NET 类型

类型后面的 [] 表示该参数可以接受多个值,用逗号分隔:

Get-Process [-Name] <string[]>

Get-Process -Name Explorer, Winlogon, Services

花括号表示枚举,表示参数的可选值:

-Option {None | ReadOnly | Constant | Private | AllScope}

-Option ReadOnly

Microsoft Docs: about_Command_Syntax

参数

Microsoft Docs: about_Parameters

参数名和参数值可以用空格分隔,也可以用冒号分隔:

-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>

使用 Get-Help cmdlet 获取命令参数信息:

Get-Help Get-ChildItem

Get-Help Get-Member -Parameter *  # 获取关于 Get-Member 的所有参数的信息
posted @ 2024-06-06 02:26  Undefined443  阅读(37)  评论(0)    收藏  举报