【黑客基礎】Windows PowerShell 指令碼學習(上)

Globalizationa發表於2021-01-05

視訊地址:【黑客基礎】Windows PowerShell 指令碼學習

2019.12.05 學習筆記

1、$PSVersionTable :檢視PowerShell的版本資訊。
2、PowerShell 介面:
  • 開始介面搜尋 “PowerShell” ,點選 “PowerShell.exe” 或者 “PowerShell ISE”。
  • cmd 命令介面輸入 “PowerShell”。
3、PowerShell 快捷鍵
  • Alt + F7 :清除命令等歷史記錄,相當於 cls 命令。
  • Ctrl + PgUp :上翻頁。
  • Ctrl + PgDn :下翻頁。
  • 上下箭頭鍵 :切換命令列等歷史記錄。
  • 左/右箭頭鍵 :左右移動游標。
  • Ctrl + Home :
  • Ctrl + End :
  • ESC:清空當前命令列。
  • Tab :自動補齊並選擇補齊命令或檔名。
  • Enter :執行當前的命令。
  • Ctrl + C :取消正在執行等命令。
  • Backspace :從右刪除命令列字元。
  • F2 :自動補充歷史命令到指定字元。
  • F4 :刪除命令列至游標右邊指定等字元處。
  • F7 :對話方塊顯示命令列歷史記錄。
  • F8 :檢索包含指定字元的命令列歷史記錄。
  • F9 :根據命令列等歷史記錄編號選擇命令,歷史記錄編號可以通過 F7 檢視。
4、PowerShell 的管道
  • PowerShell 的管道是基於物件的,和Linux Shell 基於文字不同。
  • 管道:前一個命令的輸出作為下一個命令的輸入。
  • 重定向:
    • “>” 表示輸出到某檔案,覆蓋檔案原有的內容,如果檔案不存在則自動建立。
    • “>>” 表示新增到某檔案內容的結尾。
5、PowerShell 的運算子
  • 支援四則運算
  • 支援數值的進位制轉換
  • 支援邏輯運算
6、PowerShell 使用外部命令
  • PowerShell 是 cmd 的擴充套件,cmd 的命令在 PowerShell 中基本都可以使用執行。

  • netstat -ano :檢視埠資訊,同 cmd 命令。

  • ipconfig :檢視網路配置資訊,同 cmd 命令。

  • route print :列印路由資訊,同 cmd 命令。

  • start :開啟應用程式。

  • notepad :開啟文字編輯器,同 cmd 命令。

  • calc :開啟計算器,同 cmd 命令。

  • &"command" :開啟PowerShell 外部命令,PowerShell 專用。

  • $env:path :輸出 path 環境變數的內容。

  • $env:path = $env:path + "dir_path" :臨時新增 path 環境變數。

7、PowerShell 的命令集
  • Get-Command :獲取 PowerShell 所有的命令。
  • PowerShell 的命令型別有 Alias 、Function 、Cmdlet 三種。
  • Alias :別名。
  • Function :函式。
  • Cmdlet :PowerShell 內部命令,以動-名詞的格式命名。
  • Get-Help :獲取命令的幫助資訊。
  • Get-process :獲取系統的程式資訊。
  • Get-Alias :獲取別名對應的命令資訊。
  • Get-History :獲取命令列使用命令的歷史資訊。
  • Get-Date:獲取當前的日期時間資訊。
8、PowerShell 的別名
  • Get-Help :獲取命令的幫助資訊,包含命令的別名資訊。
  • Get-Alias :獲取別名對應的命令資訊。
  • Get-Alias -name "ls" :獲取別名是“ls”的PowerShell命令。
  • Get-Alias | where {$_.definition.startswith("Remove")} :獲取以“Remove”開頭命令的別名資訊。
  • Get-Alias | Group-Object definition | sort -descending Count :根據命令別名的個數倒序顯示命令及其別名。
9、自定義別名
  • Set-Alias :定義命令的別名。
    • Set-Alias -name txt -value notepad
    • -name :指定命令的別名。
    • -value :指定需要定義別名的命令。
  • del alias:txt :刪除別名“txt”。
  • Export-Alias :匯出別名,Export-Alias demo.ps1
  • Import-Alias :匯入別名,Import-Alias demo.ps1,不成功可以使用“-force”引數進行強制匯入。
10、PowerShell 變數
  • PowerShell 使用 $ 符號來定義變數,不需要指定變數型別。
  • $var_name
  • $var_name = value
  • PowerShell 對大小寫不敏感。
  • 定義變數使用特別的變數名需要使用花括號將變數名括起來。
  • 變數的賦值可以是別名、命令、表示式等。
  • 多個變數可以同時賦值。
11、變數操作
  • 兩個變數的值互換:

    • $tempt = $var1
      $var_1 = $var_2
      $var_2 = $tempt
      
    • $var_1,$var_2 = $var_2,$var_1
      
  • ls variable:: 檢視當前使用的變數。

  • ls variable:var_name: 檢視變數 $var_name 的資訊,支援正規表示式。

  • Test-Path variable:var_name :檢視變數 $var_name 是否存在,返回布林值。

  • del variable:var_name :刪除指定的變數。

  • Clear-Variable :清除指定的變數。

  • Remove-Variable:刪除指定的變數。

12、PowerShell 自動化變數
  • 自動化變數是由 PowerShell 自己建立和維護的,一些變數是隻讀而不能寫入的。
  • $home :使用者根目錄路徑。
  • $pid :當前介面程式的ID。
  • $$ :上一個執行的命令。
  • $? :上一個命令執行的狀態,返回布林值。
  • $_ :當前變數。
  • $null :空值,空變數。
13、PowerShell 環境變數
  • ls env: :檢視環境變數資訊。
  • env:var_name :顯示指定的環境變數資訊,支援正規表示式。
  • env:varname=value :建立新增一個環境變數。
  • del env:var_name :刪除指定的環境變數,支援正規表示式。
  • [environment]::setenvironmentvariable("PATH","D:\","User"):設定使用者的 $PATH 變數,永久生效。
  • [environment]::getenvironmentvariable("PATH","User"):獲取環境變數 $PATH 。
14、PowerShell 指令碼執行策略
  • PowerShell 指令碼以 .ps1 字尾。
  • Get-Executionpolicy :檢視命令列的指令碼執行許可權,返回 Restricted 表示禁止。
  • Set-Executionpolicy RemoteSigned :允許命令列執行 PowerShell 指令碼。
15、PowerShell 指令碼呼叫
  • 切換到桌面:cd desktop
  • & “PowerShell_script_path” :執行指令碼。
  • .bat 指令碼檔案呼叫PowerShell 指令碼:powershell "& 'PowerShell_script_path'"

相關文章