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 7

winget search Microsoft.PowerShell
winget install --id Microsoft.Powershell --source winget

Oh My Posh

Oh My Posh 官网

安装

winget install JanDeDobbeleer.OhMyPosh -s winget

Oh My Posh 更新很快,有时会被杀毒软件误报,可以考虑将可执行文件路径 (Get-Command oh-my-posh).Source 加入杀毒软件的白名单。

更新

winget install JanDeDobbeleer.OhMyPosh -s winget

安装字体

oh-my-posh font install  # 在管理员权限下运行

官方推荐 MesloLGM NF 字体

启用 Oh My Posh

notepad $PROFILE  # 编辑 PowerShell 配置文件

向配置文件中添加如下内容:

oh-my-posh init pwsh | Invoke-Expression

Oh My Posh 的主题文件夹位置保存在环境变量 $Env:POSH_THEMES_PATH 中。可以通过命令以下命令查看。

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"

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) # 命令替换

PowerShell cmdlets

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

cmdlet 是原生 PowerShell 命令

PowerShell 命令不区分大小写

帮助系统

PowerShell 中的三个核心 Cmdlets:

  • 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

Command Syntax

方括号表示可选项

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

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

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

Get-Process -Name Explorer, Winlogon, Services

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

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

-Option ReadOnly

Microsoft Docs: about_Command_Syntax

About Parameter

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 的所有参数的信息

Appendix

Windows Commands

Windows Commands

常用命令

REM 注释
HELP [command] REM man
ECHO REM 显示消息,或将命令回显打开或关闭
CD REM 显示当前目录的名称或将其更改
CLS REM 清除屏幕
START REM 启动单独的窗口以运行指定的程序或命令
SET Path REM 显示环境变量 Path
SET var=val REM 设置环境变量 var 的值为 val
TYPE REM cat
COPY REM cp
MOVE REM mv RENAME [drive:][path]filename1 filename2 REM 重命名文件
REPLACE [drive1:][path1]filename [drive2:][path2] REM 替换文件 DIR REM ls
MKDIR REM mkdir
DEL REM rm
RMDIR /S REM rmdir, 递归删除
MKLINK REM 创建符号链接和硬链接
ATTRIB REM 显示或更改文件属性
ICACLS REM chmod, 显示、修改、备份或还原文件和目录的 ACL
TREE [drive:][path] REM 显示目录结构
TASKLIST REM ps
TASKKILL REM kill
PATH [[drive:]path[;...]][;%PATH%] REM 将 %PATH% 包括在新的路径设置中会将旧路径附加到新设置
SHUTDOWN /s /t 30 REM 允许通过本地或远程方式正确关闭计算机
SC query sshd REM 查询服务的状态
CMD REM 打开另一个 Windows 命令解释程序窗口
EXIT REM 退出 CMD.EXE 程序(命令解释程序)

ACL: Access Control List

windows 命令: net 与 sc 的区别 | 简书

流程控制命令

FOR        REM 为一组文件中的每个文件运行一个指定的命令
IF REM 在批处理程序中执行有条件的处理操作
LABEL REM 创建、更改或删除磁盘的卷标
GOTO REM 将 Windows 命令解释程序定向到批处理程序中某个带标签的行

感兴趣的命令

ATTRIB      REM 显示或更改文件属性
CALL REM 从另一个批处理程序调用这一个
CHCP REM 显示或设置活动代码页,中国地区默认是 936 (GBK),可以设置为 65001 (UTF-8)
CHKDSK REM 检查磁盘并显示状态报告
COMP REM 比较两个或两套文件的内容
DOSKEY REM alias
FC REM 比较两个文件或两个文件集并显示它们之间的不同
FIND REM 在一个或多个文件中搜索一个文本字符串
FINDSTR REM 在多个文件中搜索字符串
MODE REM 配置系统设备(也可以查看代码页)
MORE REM 逐屏显示输出
PAUSE REM 暂停批处理文件的处理并显示消息
POPD REM 还原通过 PUSHD 保存的当前目录的上一个值
PUSHD REM 保存当前目录,然后对其进行更改
RECOVER REM 从损坏的或有缺陷的磁盘中恢复可读信息
REM 记录批处理文件或 CONFIG.SYS 中的注释(批注)
ROBOCOPY REM 复制文件和目录树的高级实用工具
SETLOCAL REM 开始本地化批处理文件中的环境更改
SCHTASKS REM 安排在一台计算机上运行命令和程序
SORT REM 对输入排序
SYSTEMINFO REM 显示计算机的特定属性和配置
XCOPY REM 复制文件和目录树

常用环境变量

%CD%  REM 当前工作目录
%USERPROFILE% REM 用户主目录
%PATH%
%PATH:str1=str2% REM 环境变量替换增强

%USERPROFILE% 包含了驱动器名,而 %HOMEPATH% 则不包含驱动器名

Windows 注册表

Windows registry for advanced users - Windows Server | Microsoft Learn

PowerShell 使用的更多相关文章

  1. 在PowerShell中使用curl(Invoke-WebRequest)

    前言 习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool.然而命令行真的会比界面快的多,如果你是一个码农. situation:接到需求分析bug,需要访 ...

  2. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

  3. <译>通过PowerShell工具跨多台服务器执行SQL脚本

    有时候,当我们并没有合适的第三方工具(大部分需要付费)去管理多台数据库服务器,那么如何做最省力.省心呢?!Powershell一个强大的工具,可以很方便帮到我们处理日常的数据库维护工作 .简单的几步搞 ...

  4. 利用PowerShell复制SQLServer账户的所有权限

    问题 对于DBA或者其他运维人员来说授权一个账户的相同权限给另一个账户是一个很普通的任务.但是随着服务器.数据库.应用.使用人员地增加就变得很枯燥乏味又耗时费力的工作.那么有什么容易的办法来实现这个任 ...

  5. PowerShell 数组以及XML操作

    PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrAr ...

  6. linux下mono,powershell安装教程

    1简介 简单来说pash就是bash+powershell 2官网 https://github.com/Pash-Project/Pash 3下载fedora20---lxde桌面---32位版. ...

  7. Windows下PowerShell监控Keepalived

    一.背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell来完成发邮件预警. 二 ...

  8. 使用PowerShell收集多台服务器的性能计数器

    写在前面     当管理多台Windows Server服务器时(无论是DB.AD.WEB以及其他的应用服务器),当出现性能或其他问题后,参阅性能计数器都是一个非常好的维度从而推测出问题可能出现的原因 ...

  9. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  10. 使用PowerShell 监控运行时间和连接情况

    概念 Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境.你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆. powershell需要.N ...

随机推荐

  1. 2.3T NPU强势登场!NXP i.MX 8M Plus开启工业新篇章,14纳米!

                    更多产品详情以及购买咨询 可添加如下客服人员微信 (即刻添加,马上咨询) 更多i.MX 8M Plus产品资料 可长按二维码识别下载 如需选购,请登录创龙科技天猫旗舰店 ...

  2. Springboot整合Apollo

    一.Apollo作用 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址-- 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善 ...

  3. RAG工程实践拦路虎之一:PDF格式解析杂谈

    背景 PDF(Portable Document Format)是一种广泛用于文档交换的文件格式,由Adobe Systems开发.它具有跨平台性.固定布局和易于打印等特点,因此在商业.学术和个人领域 ...

  4. Java常见问题-多线程

    现在有 T1.T2.T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行? 这个多线程问题比较简单,可以用 join 方法实现. 在 Java 中 Lock 接口比 ...

  5. SpringCloud 微服务与微服务对接心德

    导读 先简单介绍下背景,公司里的项目,有一块需要与公司里的其他项目组对接.我们这边用的注册中心Nacos,对方用的eureka,之前都是自己写接口,然后服务中引入这个接口工程,都是注册到同一个注册中心 ...

  6. Jingle Bio:产品出海的最重要一课是「重营销轻技术」?

    名字: Jingle Bio 开发者 / 团队: Luo Baishun 平台: Web 请简要介绍下这款产品 Jingle Bio 是一款不需要任何编程基础就可以轻松驾驭的个人网站制作工具,你可以使 ...

  7. PHP转Go系列 | ThinkPHP与Gin框架之OpenApi授权设计实践

    大家好,我是码农先森. 我之前待过一个做 ToB 业务的公司,主要是研发以会员为中心的 SaaS 平台,其中涉及的子系统有会员系统.积分系统.营销系统等.在这个 SaaS 平台中有一个重要的角色「租户 ...

  8. 精品 IDEA 插件大汇总!值得收藏

    轻松提高 Java 开发效率 俗话说,工欲善其事,必先利其器.想要提升编程开发效率,必须选择一款顺手的开发工具. 对于 Java 开发者,JetBrains IDEA 无疑是目前最主流的开发工具,既简 ...

  9. sql server 编写函数,去除小数点后多余的0

    sql server 编写函数,去除小数点后多余的0 要在 SQL Server 中编写一个函数来去除小数点后多余的零,你可以使用以下示例的方法: CREATE FUNCTION dbo.Remove ...

  10. Mac下浏览器跨域配置方法

    open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/hooli ...