搜索
您的当前位置:首页正文

Powershell学习1_初识powershell

来源:知库网

Windows PowerShell 是专门为系统管理员设计的 Windows 命令行 ShellPowerShell 包括可以单独或组合使用的交互提示和脚本编写环境。Windows PowerShell 引入了cmdlet的概念,内置于shell的命令行工具,可以分别使用每个cmdletWindows PowerShell包括100多个基本核心cmdlet,允许访问计算机上的文件系统。


Powershell是什么

  • 微软态度。微软在推行powershell,包括office在内的多款自家软件,底层都是调用powershell来实现。
  • 兼容cmd。原先cmd的所有命令在powershell中都能够使用,在其基础上添加命令
  • 统一的命令格式和自包含文档,动词-名词的形式,如Get-Command,Get-Process,Get-Help
  • powershell命令统一使用cmdlet的格式,相对于shell中的命令更容易记住;

Powershell功能及启动

功能

  1. 与标准的windows命令和程序兼容
  2. 全新的命令格式:cmdlets
  3. 支持对象和面向对象
  4. 适合管理员应用
  5. 多语言支持

启动

1、cmd -——> powershell

2、start ——>All Program ——>附件——>Windows PowerShell——>Windows PowerShell


Powershell 重要概念

  • PowerShell 快速编辑模式和标准模式

标准模式:鼠标右击选择标记后才能实现复制和粘切功能。

快速编辑模式:可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能。

  • 输出是基于对象的:

powershell cmdlet旨在处理对象,对象是结构化信息,不仅是屏幕上出现的字符串,还包含一些额外信息。

  • 命令系列是可扩展的:

以往cmd相对于shell有很多的不足,比如命令偏少、部分命令功能偏弱,对正则表达式不支持等。现在PowerShell 中的本机命令称为 cmdlet(command-let)。 可以使用编译的代码或脚本创建自己的 cmdlet 模块和函数。 模块可以向 shell 添加 cmdlet 和提供程序。 PowerShell 还支持类似于 UNIX shell 脚本和 cmd.exe 批处理文件的脚本。

  • 处理控制台输入和显示

当键入命令时,会直接处理命令行输入。 PowerShell 还会对你在屏幕上看到的输出进行格式设置。


Powershell快捷键

快捷键 作用
ALT+F7 清除命令的历史记录
End 将光标移动到命令的末尾
Del 从右开始删除输入的命令字符
Esc 清空当前命令行
F2 自动补充历史命令至指定字符
F4 删除命令行至光标右边指定字符
F7 对话框显示命令行历史记录
F8 检索包含指定字符命令行历史记录
F9 根据命令行的历史记录编号选择命令
Home 光标移动至命令行最左端
Backspace 从右删除命令行字符
Ctrl + Home 删除光标最左端的所有字符
Tab 自动补全命令或文件名

常用命令

  • 查看powershell版本
get-host  # 完整信息 

$host.version  # powershell版本号

$PSVersionTable.PSVERSION  # 同上版本号
  • 查看命令用法
Get-Help -Name command(Get-Process)
  • 新建目录
New-Item test -type Directory
  • 新建文件
New-Item test 

管道和重定向

  • 管道:将上条命令的输出作为下条命令的输入

  • 重定向:将命令的输出保存到文件中,>代表覆盖 、 >>代表追加


面向对象

  • Linux的设计思想决定所有的输入和输出都尽可能是文本格式,这样可以方便各进程间的合作,要求各个程序提供一定强度的文本解析能力。
  • Windows的思想与此不同,PowerShell中很多输入输出都不是普通的文本plain text,而是一个个对象objects。因此,PowerShell不仅是一种交互环境,也是强大语言的Runtime,而这种语言甚至是面向对象的。
  • 命令执行结果
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   2852     550   107332      39376              2908   0 360EntClient
   1384     126   178740      24636  13,438.73  12016   1 360EntClient
    959     124    86552      15472     192.17  11972   1 360tray
    757      64   245852       9284      22.78  13860   1 AcroRd32
    ...

结果看似文本,实际上是数组,每个数组的元素又是Process类型的对象。Powershell中所有的类都是继承自Object,且支持GetType()函数。

image.png

结果看似文本,实际上是数组,每个数组的元素又是Process类型的对象。Powershell中所有的类都是继承自Object,且支持GetType()函数。

image.png
Top