安装 Windows Terminal

win10 1903 以上才能安装 商店安装

安装 Power Shell 7

https://github.com/PowerShell/PowerShell/releases

安装图标字体

Nerd Font

安装scoop

# 保证允许本地脚本的执行

set-executionpolicy remotesigned -scope currentuser

# 安装

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

安装 Powershell 插件

PSReadLine、posh-git、oh-my-posh

# 1.命令行补全

Install-Module PSReadLine  -Scope CurrentUser

# 2.git 插件

Install-Module posh-git  -Scope CurrentUser

# 3.美化包 oh-my-posh 类似 oh-my-zsh 

Install-Module oh-my-posh -Scope CurrentUser

安装时系统会提问是否继续,输入A(全部允许)

配置文件

notepad.exe $Profile
#------------------------------- Import Modules BEGIN -------------------------------

# 引入 posh-git

Import-Module posh-git



# 引入 oh-my-posh

Import-Module oh-my-posh



# 引入 ps-read-line

Import-Module PSReadLine



# 设置 PowerShell 主题

# Set-PoshPrompt ys

Set-PoshPrompt paradox

#------------------------------- 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

#-------------------------------    Set Network END     -------------------------------