表签
PowerShell
1. 使用 Windows PowerShell 编写脚本
- Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。
- Powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。快速编辑模式和标准模式的切换可以通过控制台标题栏->鼠标右击->属性->选项->编辑选项 。
- Powershell标准模式 鼠标右击选择标记后才能实现复制和粘切功能。
- Powershell快速编辑模式 可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能。
- Powershell的快捷键和cmd,linux中的shell,都比较像。
快捷键 | 功能 |
---|---|
ALT+F7 | 清除命令的历史记录 |
PgUp PgDn | 显示当前会话的第一个命令和最后一个命令 |
Enter | 执行当前命令 |
End | 将光标移至当前命令的末尾 |
Del | 从右开始删除输入的命令字符 |
Esc | 清空当前命令行 |
F2 | 自动补充历史命令至指定字符(例如历史记录中存在Get-Process,按F2,提示"Enter char to copy up to",键入‘s’,自动补齐命令:Get-Proce) |
F4 | 删除命令行至光标右边指定字符处 |
F7 | 对话框显示命令行历史记录 |
F8 | 检索包含指定字符的命令行历史记录 |
F9 | 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看 |
左/右方向键 | 左右移动光标 |
上/下方向键 | 切换命令行的历史记录 |
Home | 光标移至命令行最左端 |
Backspace | 从右删除命令行字符 |
Ctrl+C | 取消正在执行的命令 |
Ctrl+左/右方向键 | 在单词之间移动光标 |
Ctrl+Home | 删除光标最左端的所有字符 |
Tab | 自动补齐命令或者文件名 |
2. Powershell管道和重定向
管道(|)
把上一条命令的输出作为下一条命令的输入。
例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。
ls | sort -Descending Name | Format-Table Name,Mode
重定向(>),(>>)
把命令的输出保存到文件中,‘>’为覆盖,’>>’追加。\
"Powershell Routing" >test.txt
"Powershell Routing" >>test.txt
- 我们可以把powershell当成一个计算器。象键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出。常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持。
PowerShell也能自动识别计算机容量单位,包括KB,MB,GB,TB,PB
3. Powershell 能够像CMD一样很好的执行外部命令。
- 通过netstat查看网络端口状态
netstat
- 通过IPConfig查看自己的网络配置
ipconfig
- route print查看路由信息
route print
- 启动CMD控制台
键入cmd或者cmd.exe,退出cmd可以通过命令exit。
cmd
exit
- 查找可用的Cmd控制台命令
Cmd.exe 通过 /c 来接收命令参数,在Cmd中help可以查看可用的命令,所以可以通过Cmd /c help 查找可用的Cmd控制台命令
cmd /c help
- 启动外部程序
为什么可以通过notpad打开记事本,不能通过wordpad打开写字板?因为notepad.exe位于C:Windows\system32 这个目录,而这个目录已经默认被包含在Powershell的环境变量
$env:Path
中。而wordpad.exe 所在的“%ProgramFiles%\Windows NT\Accessories\wordpad.exe“目录却没有包含,可以先进入这个目录,再运行wordpad,或者将wordpad所在的目录加入到环境变量中,$env:Path=$env:Path+”%ProgramFiles%\Windows NT\Accessories”
。 - 默认键入一个字符串,powershell会将它原样输出,如果该字符串是一个命令或者启动程序,在字符串前加‘&’可以执行命令,或者启动程序。
&"ls"
- cmdlets是Powershell的内部命令,cmdlet的类型名为System.Management.Automation.CmdletInfo。
4. 终端文字配色
修改cmd的颜色
color=xy其中x(前景色)和y(背景色)分别可以取以下几种值:
0 = 黑色 8 = 灰色 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 浅绿色 B = 淡浅绿色 4 = 红色 C = 淡红色 5 = 紫色 D = 淡紫色 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色
例如color=28直接输入color会恢复至默认设置。
修改powershell的颜色 先大致介绍一下powershell的相关信息。powershell自己拥有很多cmdlet,将很多命令做了alias,例如‘dir’和‘ls’都指向get-childitem,这样无论你习惯win还是linux的命令行,都可以用了。powershell的脚本语法有自身特点,支持一些.net语法,可以自己写一些函数实现某些功能,这里介绍的主要是修改颜色的一些方法。首先,个性化的配置需要每次启动都生效,那么就需要有个用户配置文件。默认的powershell启动时加载配置文件可以在以下路径中寻找。