【黑客基礎】Windows PowerShell 指令碼學習(上)
阿新 • • 發佈:2019-12-06
視訊地址:【黑客基礎】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'"