Powershell介绍以及常用命令

7,415 阅读1分钟

Powershell介绍

在不同的操作系统中,会有不同的命令提示符。在Mac中,默认使用的就是Bash,也有好多人通过oh my zsh使用zsh。而在Windows系统,命令行提示符有CMD.exe和Powershell两种。

Powershell是cmd的超集,换句话说,cmd能做的事情,Powershell都能做,可以直接在Powershell中执行CMD的命令,而且Powershell还能额外做许多cmd不能做的事情。

PowerShell里的变量使用

变量可以临时保存数据,使用的时候可以把把数据存在变量中,以便进一步操作。

变量名格式

在powershell中变量名均是以美元符””开始,剩余字符可以是数字、字母、下划线的任意字符,并且powershell变量名大小写不敏感(”开始,剩余字符可以是数字、字母、下划线的任意字符,并且powershell变量名大小写不敏感(a和$A 是同一个变量)。
某些特殊的字符在powershell中有特殊的用途,一般不推荐使用这些字符作为变量名。当然你硬要使用,请把整个变量名后缀用花括号括起来。

PS C:\test> ${"I"like $}="test"
PS C:\test> ${"I"like $}
test
查找正在使用的变量
PS C:\Users> ls variable:

Name                           Value
----                           -----
"I"like $                      test
...
设置变量
PS D:\> $a = 5
PS D:\> $a * 4
20
PS D:\> "sdf".substring(2)
f
PS D:\> $str = "powershell"
PS D:\> $str.substring($str.indexOf("s"))
shell

powershell支持.net的方法:截取字符串、if语句判断等这些都没有问题。可以根据自己需要来去使用。

常用的变量知识大概这么多,其它更多变量知识可以参考Powershell 定义变量

PowerShell常用命令

Start-Process,别名:start + 路径, 打开当前文件夹
# 把路径存储为变量,打开路径地址的文件
PS D:\> $variable = "D:\"
PS D:\> start $variable

# 以管理员身份启动Powershell
PS D:\> start -FilePath "powershell" -Verb RunAs
Get-ChildItem,别名:ls、dir, 列出文件夹下所有文件
PS D:\> ls


    目录: D:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2020/1/20     11:58                Downloads
...
Get-History,别名:history、h,列出之前的操作命令
PS D:\> history

  Id CommandLine
  -- -----------
   1 Start D:
   2 Start D
   3 ${"I"like $}="test"
   ...
Get-Process, 别名:ps,查找进程, 可以通过进程名称或者进程ID来获取特定进程
 ➜  ~  ps wechat

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   1255      81   153952     183020     220.53   5832   2 WeChat
new-item,别名:ni <filename.txt>, 创建一个新的文本文件
PS D:\> ni test.txt
    目录: D:\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2020/7/25     16:29              0 test.txt
remove-item,别名: rm、del, 删除或删除文件
PS D:\> rm test.txt
copy-item,别名:cp,\copy, 复制文件
PS D:\> cp test.txt test1.txt
get-location,别名:pwd, 当前目录位置
PS D:\> pwd
Path
----
D:\
GET-HELP, 缩写help,查看命令的帮助
get-help get-process
其他命令
  • get-date, 别名:date,获取系统当前时间
  • Get-Command,别名:gcm, 查找所有命令,可以通过通配符查找,如:get-command *process
  • write-output, 别名:echo、 write, 把东西输出发送到管道,从那里它可以通过管道传输到另一个cmdlet或者变量
  • write-host 直接输出到控制台
  • get-content,别名:cat, 输出文件内容到控制台
  • Install-Module module-name -Scope CurrentUser,从在线库中找到包并安装包到本地
  • Import-Module module-name,导入包
  • chcp, 修改当前的编码方式,默认936(GB2312),可以通过chcp 65001设置为UTF-8格式

更多可以查看PowerShell官方文档

write-output 与 write-host 区别
$a = 'Testing Write-OutPut'  | Write-Output
$b = 'Testing Write-Host' | Write-Host

Get-Variable a,b
编辑器
  • Windows Terminal,微软新出的命令行工具,界面很好用,可以直接在Store中下载安装,如果想配置好看的Terminal主题和git配置,可以点击链接查看
  • CMDER, 默认安装了很多好用的配置,比如git,也附带了好看的主题,喜欢的可以直接官网下载安装。