PowerShell入门
2019-01-20 本文已影响55人
Mexplochin
PowerShell快捷键
命令 | 快捷键 |
---|---|
ALT+F7 | 清除命令的历史记录 |
PgUp PgDn | 显示当前会话的第一个命令和最后一个命令 |
End | 将光标移至当前命令的末尾 |
Del | 从右开始删除输入的命令字符 |
Esc | 清空当前命令行 |
F4 | 删除命令行至光标右边指定字符处 |
Home | 光标移至命令行最左端 |
Ctrl+C | 取消正在执行的命令 |
Ctrl+左/右方向键 | 在单词之间移动光标 |
Ctrl+Home | 删除光标最左端的所有字符 |
Tab | 自动补齐命令或者文件名 |
重定向与管道
-
重定向:命令的输出保存到文件中,'>'为覆盖,'>>'追加
如"Powershell Routing" >test.txt
将字符串输入到test.txt文件,并覆盖原内容 -
管道:把上一条命令的输出作为下一条命令的输入
如ls | sort -Descending Name | Format-Table Name,Mode
通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出
数学运算
除基本加(+)、减(-)、乘(*)、除(/)、模(%)运算以及外,还能自动识别KB,MB,GB,TB,PB等计算机容量单位并进行相关计算。
外部命令
- netstat查看网络端口状态
- ipconfig查看自己的网络配置
- route print查看路由信息
- cmd /c 接收cmd命令参数 可以通过Cmd /c help 查找可用的Cmd控制台命令
- 字符串前加& 执行字符串表示的命令 如
&"ls"
cmdlet命令别名
- 查询别名所指的真实cmdlet命令
Get-Alias -name ls
或get-alias ls
或$alias:ls
- 查看所有以Remove打头的cmdlet的命令的别名
ls alias: | where {$_.Definition.Startswith("Remove")}
- 查看所有别名和指向cmdlet的别名的个数
ls alias: | Group-Object definition | sort -Descending Count
- 创建别名
Set-Alias -Name Edit -Value notepad
- 删除别名
del alias:Edit
- 保存别名
通过Export-Alias将别名导出到文件Export-Alias alias.ps1
通过Import-Alias将别名导入 PoshImport-Alias alias.ps1
若显示异常,提示别名已经存在,可以使用Force强制导入Import-Alias -Force alias.ps1
- 利用函数扩展别名 即将经常使用的参数默认设定在别名 以$args作为参数占位符
Posh> function test-conn { Test-Connection -Count 2 -ComputerName $args}
Posh> Set-Alias tc test-conn
调用优先级
- 别名:控制台首先会寻找输入是否为一个别名,如果是,执行别名所指的命令。因此我们可以通过别名覆盖任意powershell命令,因为别名的优先级最高。
- 函数:如果没有找到别名,会继续寻找函数,函数类似别名,只不过它包含了更多的powershell命令。因此可以自定义函数扩充cmdlet 把常用的参数给固化进去。
- 命令:如果没有找到函数,控制台会继续寻找命令,即cmdlet,powershell的内部命令。
- 脚本:没有找到命令,继续寻找扩展名为“.ps1”的Powershell脚本。
- 文件:没有找到脚本,会继续寻找文件,如果没有可用的文件,控制台会抛出异常