Last active
November 16, 2024 14:58
-
-
Save YahuiWong/735b5d6be4ebf2a6b5e84b539066e288 to your computer and use it in GitHub Desktop.
Microsoft.PowerShell_profile.ps1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 引入 posh-git | |
Import-Module posh-git | |
# # 引入 oh-my-posh | |
# Import-Module oh-my-posh | |
# scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json | |
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression | |
# oh-my-posh font install | |
# 引入 ps-read-line | |
Import-Module PSReadLine | |
# # 设置 PowerShell 主题 | |
# Set-PoshPrompt -Theme gmay | |
#------------------------------- Import Modules END ------------------------------- | |
#------------------------------- Set Hot-keys BEGIN ------------------------------- | |
# 设置预测文本来源为历史记录 | |
Set-PSReadLineOption -PredictionSource History | |
# 每次回溯输入历史,光标定位于输入内容末尾 | |
Set-PSReadLineOption -HistorySearchCursorMovesToEnd | |
# 设置 Tab 为菜单补全和 Intellisense | |
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete | |
# 设置 Ctrl+d 为退出 PowerShell | |
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function ViExit | |
# 设置 Ctrl+z 为撤销 | |
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo | |
# 设置向上键为后向搜索历史记录 | |
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward | |
# 设置向下键为前向搜索历史纪录 | |
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward | |
#------------------------------- Set Hot-keys END ------------------------------- | |
#------------------------------- Functions BEGIN ------------------------------- | |
# Python 直接执行 | |
$env:PATHEXT += ";.py" | |
# 更新系统组件 | |
function Update-Packages { | |
# update pip | |
Write-Host "Step 1: 更新 pip" -ForegroundColor Magenta -BackgroundColor Cyan | |
$a = pip list --outdated | |
$num_package = $a.Length - 2 | |
for ($i = 0; $i -lt $num_package; $i++) { | |
$tmp = ($a[2 + $i].Split(" "))[0] | |
pip install -U $tmp | |
} | |
# update TeX Live | |
$CurrentYear = Get-Date -Format yyyy | |
Write-Host "Step 2: 更新 TeX Live" $CurrentYear -ForegroundColor Magenta -BackgroundColor Cyan | |
tlmgr update --self | |
tlmgr update --all | |
# update Chocolotey | |
Write-Host "Step 3: 更新 Chocolatey" -ForegroundColor Magenta -BackgroundColor Cyan | |
choco outdated | |
} | |
#------------------------------- Functions END ------------------------------- | |
#------------------------------- Set Alias BEGIN ------------------------------- | |
# 1. 编译函数 make | |
function MakeThings { | |
nmake.exe $args -nologo | |
} | |
Set-Alias -Name make -Value MakeThings | |
# 2. 更新系统 os-update | |
Set-Alias -Name os-update -Value Update-Packages | |
# 3. 查看目录 ls & ll | |
function ListDirectory { | |
(Get-ChildItem).Name | |
Write-Host("") | |
} | |
Set-Alias -Name ls -Value ListDirectory | |
Set-Alias -Name ll -Value Get-ChildItem | |
# 4. 打开当前工作目录 | |
function OpenCurrentFolder { | |
param | |
( | |
# 输入要打开的路径 | |
# 用法示例:open C:\ | |
# 默认路径:当前工作文件夹 | |
$Path = '.' | |
) | |
Invoke-Item $Path | |
} | |
Set-Alias -Name open -Value OpenCurrentFolder | |
#------------------------------- Set Alias END ------------------------------- | |
#------------------------------- Set Network BEGIN ------------------------------- | |
# 1. 获取所有 Network Interface | |
function Get-AllNic { | |
Get-NetAdapter | Sort-Object -Property MacAddress | |
} | |
Set-Alias -Name getnic -Value Get-AllNic | |
# 2. 获取 IPv4 关键路由 | |
function Get-IPv4Routes { | |
Get-NetRoute -AddressFamily IPv4 | Where-Object -FilterScript {$_.NextHop -ne '0.0.0.0'} | |
} | |
Set-Alias -Name getip -Value Get-IPv4Routes | |
# 3. 获取 IPv6 关键路由 | |
function Get-IPv6Routes { | |
Get-NetRoute -AddressFamily IPv6 | Where-Object -FilterScript {$_.NextHop -ne '::'} | |
} | |
Set-Alias -Name getip6 -Value Get-IPv6Routes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment