简介

最近因电脑系统故障而重装系统,借此机会正好使用 Windows 全新的 Terminal(终端) + PowerShell 7 + Scoop 来打造 Windows 系统下最强终端,之前一直用的 Git for Windows 提供的 Git Bash,安装 Zsh + Oh My Zsh 优化体验,但是 Zsh 毕竟是 UNIX/类UNIX 系统的命令行解释器,在 Windows 系统上体验终归不是最优的。

Windows Terminal 是一个现代、功能强大的终端应用程序,支持多标签页、自定义主题、Unicode 和 UTF-8 字符、以及与 PowerShell、CMD 和 WSL 的无缝集成。

PowerShell 作为微软开发任务自动化和配置管理框架,最初就是为 Windows 系统设计(现在也支持 Linux 和 MacOS),且通过强大的脚本语言,适合更灵活更复杂的自动化任务。

Scoop 是一个用于 Windows 的命令行安装器,简化了软件的安装、更新和管理过程,并支持无管理员权限安装。新系统的软件开发环境也在本文中通过 Scoop 来管理安装。

安装

按照以下步骤,一步一步打造 Windows Terminal + PowerShell 7 + Scoop 最强 Windows 终端

Scoop

执行策略

以管理员身份打开 Windows Terminal/PowerShell,执行以下命令

1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

安装路径

Scoop 可以自定义 Scoop 安装路径与使用 Scoop 安装的软件路径:

  • Scoop 本身和安装软件的路径为:C:\Users\[username]\scoop
  • Scoop 全局安装软件的路径为:C:\ProgramData\scoop

在开始安装 Scoop 前,可以提前设置环境变量来决定其安装路径

对于 Scoop 本身和安装软件的路径,打开 Windows Terminal/PowerShell,执行以下命令

1
2
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

对于 Scoop 全局安装软件的路径,以 管理员身份 打开 Windows Terminal/PowerShell,执行以下命令

1
2
$env:SCOOP_GLOBAL='D:\Scoop\Global'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

开始安装

打开 Windows Terminal/PowerShell,执行以下命令

1
2
3
4
5
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 或者短命令
iwr -useb get.scoop.sh | iex

# https://get.scoop.sh 地址实际是 https://raw.githubusercontent.com/scoopinstaller/install/master/install.ps1,若网络环境无法访问 GitHub,可以使用第三方 GitHub 加速服务

详细教程:使用 Scoop 管理 Windows 下的软件和开发环境 · Dejavu’s Blog

Windows Terminal

Windows 11 自带新版本 Windows Terminal,无需额外安装,若某些 LTSC 版本系统没有,建议直接从 微软应用商店 安装最新稳定版

PowerShell 7

PowerShell 7 直接在 [Releases](Releases · PowerShell/PowerShell) 页面下载最新版本的安装包(根据系统架构选择,例如:Windows 11 x64 选择 PowerShell-x-win-x64.msi.msi 格式),双击运行安装程序,在 Optional Actions 勾选以下三项:

  • 添加到系统环境变量
  • 注册到 Windows 事件日志报表
  • 开启远程处理

image-20241118160856468

下一步选择 PowerShell 更新选项,勾选以下两个选项后续可以通过 Microsoft Update 更新 PowerShell

image-20241118160919429

Nerd Font

oh-my-posh 内置主题里的图标、符号需要安装额外的字体才能完美显示,这里我们选择 Nerd Font 字体, Nerd Fonts 是一个专为开发者设计的字体聚合器和修补工具,它增强了原有字体的功能

sankey-glyphs-combined-diagram

可以在 Nerd Fonts 官网 挑选喜欢的字体,然后在 Releases 页面下载对应的字体文件安装

本文中演示使用的是 Nerd Fonts 修补过的 JetBrainsMono 字体

PSReadLine

PSReadLine 是一个 PowerShell 模块,可以让 PowerShell 的命令行更好用,这里我们通过 Scoop 安装

1
2
3
4
5
# 添加 extras bucket
scoop bucket add extras

# 安装 PSReadLine
scoop install PSReadLine

posh-git

posh-git 是一个 PowerShell 模块,可以让 git 更好用,这里我们通过 Scoop 安装

1
2
# 通过 scoop 安装 posh-git
scoop install posh-git

oh-my-posh

oh-my-posh 是一个全平台终端美化工具,可以让 PowerShell 终端更美观,这里我们通过 Scoop 安装

1
2
# 通过 scoop 安装 oh-my-posh
scoop install oh-my-posh