从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)

古之立大事者,不惟有超世之才,亦必有坚忍——苏轼

写在前面

众所周知,Windows 的命令行已经多少年没有更新多了,颜值还存留在90年代呢。已经远远的跟不上时代的潮流了。

Windows 10 自带的 powershell 虽然比 传统的 cmd 稍微强上这么一丢丢,但是也不尽人意。

对于一个程序员来说,没有一个好的命令行工具就是相当于吃饭没有好的碗筷是一样的道理,这篇博客,就从 0 开始打造一个完美的终端工具。

上效果图

软件介绍与安装

这里我们用到了两个软件,分别是 PowerShellWindows Terminal

PowerShell

PowerShell 是微软公司开发的一款命令行工具,我们先来看一下 Windows 自带的 PowerShell

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第1张图片

如果打开的话是一个蓝色的窗口。而我们今天用的是

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第2张图片

是这一款,虽然两款类似,却有着很大的差别。

下载与安装

PowerShell 7 在 GitHub 上是开源的 点我进入 GitHub,所以我们可以在 GitHub 上直接下载,点我进入下载界面

这里我下载的是 PowerShell-7.0.4-win-x64.msi 这一款,安装的话直接下一步安装即可,如有需要可以自行修改安装地址。

Windows Terminal

Windows Terminal 是微软新出的一个终端管理器,这一程序把目前 Windows 上的 PowerShell 、CMD 以及 Windows Linux 子系统(WSL)三大环境实现了统一。而且我们可以自行添加 环境 例如 Git。

下载与安装

Windows Terminal 的安装有两种方式,第一种方式是通过 微软应用商店直接下载安装即可

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第3张图片

由于微软商店下载东西可能会失败,还可以通过另一种方式进行安装

另一种方式是在 GitHub 上下载文件,通过命令行的方式进行安装。点我进入下载地址

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第4张图片

这里下载的的是第一个,由于后缀名是 .msixbundle , 需要使用 Add-AppxPackage 命令来安装

Add-AppxPackage ./Microsoft.WindowsTerminal_1.0.1401.0_8wekyb3d8bbwe.msixbundle

安装完毕的界面如下:

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第5张图片

到此为止两款应用就已经安装完毕了,开始我们的配置之旅

值得注意的是,目前 Windows Terminal 只支持 Windows 1903 以上的版本。

主题美化

安装美化主题

在使用 Windows Terminal 之前,我们先安装使用 PowerShell, 安装 Posh - gitOh - my - posh

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

安装前提是已经安装了 Git,如果您还没有,先为 Windows安装 Git。

安装过程中需要输入 Y

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第6张图片

安装完成后,输入使用 PowerShell 执行如下命令

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE

输入完毕命令之后会打开一个记事本,在记事本中输入

Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme pararussel


Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete

Set-Theme 后面跟的是主题名字

如下图

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第7张图片

保存 关闭之后我们重启 软件。

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第8张图片

此时我们的第一步就已经配置完成了!

如果想要过去更多的主题,可以键入

Get-Theme

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第9张图片

然后 通过

 Set-Theme 主题名字

这种方式来测试那种主题好看,

在这里插入图片描述

然后根据自己的需要,来定制自己的主题。

只需要重新执行

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE

然后替换主题名字即可

有的电脑可以对主题的字体有些不适配,这里安装 Powerline 字体就好了,参考 GitHub 仓库 中的 README.md 文件即可。

大概执行的命令如下

// 克隆仓库
git clone https://github.com/powerline/fonts.git --depth=1
// 切换目录
cd fonts/
// 安装字体
.\install.ps1
// 删除仓库
cd ..
rm fonts

或者安装 Cascadia Code PLCascadia Mono PL,这两者包含 Powerline 字形 可以在 GitHub 上下载,传送地址

Windows Terminal 自定义配置

现在就可以去配置个性配置了,如下图

从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第10张图片

然后来配置 JSON 文件,我的配置如下

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", //设置默认的shell。通过独立ID(guid)设置
    "copyOnSelect": false,
    "copyFormatting": false,
    "profiles": {
        "defaults": {
            // 默认配置,将会应用全部
            "colorScheme": "OneDark", // 配色
            "closeOnExit": true, //关闭窗口的时候退出所有挂载的程序
            "cursorColor": "#FFFFFF", //光标颜色
            "cursorShape": "bar", //光标形状(默认为bar,即条状)
            "fontSize": 14 // 字体大小
        },
        "list": [
                        {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false, //是否隐藏
                "name": "PowerShell",
                "source": "Windows.Terminal.PowershellCore",
                "fontFace": "Cascadia Code PL", // 字体样式
                // "startingDirectory": "./",//在当前路径下启动
                "backgroundImage": "D:\\1.jpg", //背景图片路径
                "backgroundImageOpacity": 0.05, //背景图片的透明度(只是图片透明,背景不透明并不会透明到看到窗口下层的东西)
                /* 
                    背景图像填充方式 
                    * none -> 显示原始大小,会留白
                    * fill -> 充满,图像完整显示 会变形
                    * uniform -> 图像放到最大,不变形会留白
                    * uniformToFill -> 图像不变形,当道最大 并填充所有空白
                */
                "backgroundImageStretchMode": "uniformToFill",
                "useAcrylic": true //背景毛玻璃效果
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "命令提示符",
                "commandline": "cmd.exe",
                "hidden": false
            },
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": true  // 隐藏
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            }
        ]
    },
    "schemes": [ //配色方案
        {
            "name": "OneDark",
            "black": "#1e2127",
            "red": "#e06c75",
            "green": "#98c379",
            "yellow": "#d19a66",
            "blue": "#61afef",
            "purple": "#c678dd",
            "cyan": "#56b6c2",
            "white": "#abb2bf",
            "brightBlack": "#5c6370",
            "brightRed": "#e06c75",
            "brightGreen": "#98c379",
            "brightYellow": "#d19a66",
            "brightBlue": "#61afef",
            "brightPurple": "#c678dd",
            "brightCyan": "#56b6c2",
            "brightWhite": "#ffffff",
            "background": "#1e2127",
            "foreground": "#abb2bf"
        }
    ],
    "actions": [ //快捷键设置
        {
            "command": {
                "action": "copy",
                "singleLine": false
            },
            "keys": "ctrl+c" // ctrl + c 复制
        },
        {
            "command": "paste",
            "keys": "ctrl+v" // ctrl + v 复制
        },
        {
            "command": "find",
            "keys": "ctrl+shift+f" // ctrl shift f 查找
        },
        {
            "command": {
                "action": "splitPane",
                "split": "auto",
                "splitMode": "duplicate"
            },
            "keys": "alt+shift+d" //   alt+shift+d 分割窗口
        }
    ]
}

更多配置项查看 微软官方文档

配色方案

推荐两个配色方案的网站

  • Windows Terminal Themes

    从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第11张图片

  • TerminalSplash
    从0开始打造一个完美的 Windows 终端(PowerShell + Windows Terminal)_第12张图片

写在最后

俗话说欲先善其事必先利器,为了码代码的心情,赶紧配置一个属于自己的终端工具吧

你可能感兴趣的:(随手小记,git,windows,cmd,powershell,windows,terminal)