谁说 Windows 下没有好看使用的命令行工具?本文将介绍关于 Windows Terminal 的美化和使用。

# 介绍

Windows Terminal 是一款新式、快速、高效、强大且高效的终端应用程序,适用于命令行工具和命令提示符,PowerShellWSLShell 用户。主要功能包括多个选项卡、窗格、Unicode、和 UTF-8 字符支持,GPU 加速文本渲染引擎以及自定义主题、样式和配置。

这是一个开源项目,Github 仓库 (opens new window)

# 安装

安装好 Windows Terminal 后,输入:

# 安装 oh-my-posh 和 posh-git
Install-Module oh-my-posh -Scope CurrentUser
Install-Module posh-git -Scope CurrentUser
# 打开 PowerShell 配置文件
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE

然后在记事本打开的窗口里添加配置:

Import-Module oh-my-posh
Import-Module posh-git
Set-Theme Paradox

保存后就能看到变化了,但是还有点小问题,有乱码!那就安装下 Fira Code 吧。

# 安装字体

首先进入 Fira Code 仓库的 releases (opens new window) 里下载最新字体文件。下载完成后,解压并双击 .ttf 文件进行安装。

最后打开 Windows Terminal 的设置,修改配置文件:




 




{
  "profiles": {
    "defaults": {
      "fontFace": "Fira Code",
    }
  }
}

至此,一个比较好看的命令行工具已经呈现在我们眼前,让我们在加把劲,让她更好看!

# 美化

点击查看 Windows Terminal 配置文件
{
  "$schema": "https://aka.ms/terminal-profiles-schema",
  "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
  "profiles": {
    "defaults": {
      "colorScheme": "Cyberdyne", // 设置主题名称
      "background": "#191323",    // 背景颜色
      "commandline": "powershell.exe", // 此处终端打开PS
      "cursorColor": "#FFFFFF",   // 光标颜色
      "cursorShape": "bar",       // 光标形状(默认为bar,即条状)
      "fontFace": "Fira Code",    // 字体
      "fontSize": 14,             // 字号
      "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", // 唯一标识符,随机生成
      "name": "PowerShell",       // 在下拉菜单里显示的名称
      "tabTitle": "PowerShell",   // 在选项卡上显示的名称
      "startingDirectory" : "."   // 起始目录
    },
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name": "PowerShell",
        "commandline": "powershell.exe",
        "hidden": false
      },
      {
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name": "CMD",
        "commandline": "cmd.exe",
        "hidden": false
      },
      {
        "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
        "hidden": false,
        "name": "Azure Cloud Shell",
        "source": "Windows.Terminal.Azure"
      },
      {
        "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
        "hidden": false,
        "name": "WSL",
        "source": "c:\\WINDOWS\\System32\\wsl.exe"
      }
    ]
  },
  "schemes": [
    {
      "name": "Cyberdyne",
      "black": "#080808",
      "red": "#ff8373",
      "green": "#00c172",
      "yellow": "#d2a700",
      "blue": "#0071cf",
      "purple": "#ff90fe",
      "cyan": "#6bffdd",
      "white": "#f1f1f1",
      "brightBlack": "#2e2e2e",
      "brightRed": "#ffc4be",
      "brightGreen": "#d6fcba",
      "brightYellow": "#fffed5",
      "brightBlue": "#c2e3ff",
      "brightPurple": "#ffb2fe",
      "brightCyan": "#e6e7fe",
      "brightWhite": "#ffffff",
      "background": "#151144",
      "foreground": "#00ff92"
    }
  ],
  "keybindings": [
    // 复制黏贴默认 Ctrl+Shift+C and Ctrl+Shift+V
    {
      "command": {
        "action": "copy",
        "singleLine": false
      },
      "keys": "ctrl+c"
    },
    {
      "command": "paste",
      "keys": "ctrl+v"
    },
    // 打开新窗口
    {
      "command": {
        "action": "splitPane",
        "split": "auto",
        "splitMode": "duplicate"
      },
      "keys": "alt+shift+d"
    }
  ]
}

这是 Windows Terminal 的配置文件,主要分为以下几大配置:

我设置了主题为 Cyberdyne,更加好看了~哈哈。

# 毛玻璃效果

我们来为 profiles.list 里的 PowerShell 添加毛玻璃效果吧:

点击查看 Windows Terminal 配置文件








 
 










{
  // ...略
  "profiles": {
    // ...略
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        // ...略
        "useAcrylic": true,          // 是否启用亚克力效果
        "acrylicOpacity": 0.5,       // 亚克力不透明度
        "colorScheme" : "Cyberdyne", // 主题
        "background": "#191323",     // 背景色
        "cursorColor" : "#FFFFFF"    // 光标颜色
      },
      // ...略
    ]
  },
  // ...略
}

# 背景图

我们同样以 PowerShell 为例,添加背景图:

点击查看 Windows Terminal 配置文件








 
 
 
 







{
  // ...略
  "profiles": {
    // ...略
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        // ...略
        "backgroundImage" : "C:/Path/To/File/.png", // 图片位置,支持.jpg、.png、.gif文件
        "backgroundImageOpacity" : 0.25,            // 透明度
        "backgroundImageAlignment" : "center",      // 对齐方式:center、left、top、right、bottom、topLeft等
        "backgroundImageStretchMode" : "uniformToFill" // 背景图像拉伸模式:none 不拉伸、fill 拉伸铺满、uniform 按比例拉伸、uniformToFill 按比例拉伸铺满
      },
      // ...略
    ]
  },
  // ...略
}

# 怀旧效果

我们以 CMD 为例,添加怀旧式命令提示符:

点击查看 Windows Terminal 配置文件








 































{
  // ...略
  "profiles": {
    // ...略
    "list": [
      {
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        // ...略
        "experimental.retroTerminalEffect": true,
        "colorScheme" : "Retro"
      },
      // ...略
    ]
  },
  "schemes": [
    {
      "name": "Retro",
      "background": "#000000",
      "black": "#00ff00",
      "blue": "#00ff00",
      "brightBlack": "#00ff00",
      "brightBlue": "#00ff00",
      "brightCyan": "#00ff00",
      "brightGreen": "#00ff00",
      "brightPurple": "#00ff00",
      "brightRed": "#00ff00",
      "brightWhite": "#00ff00",
      "brightYellow": "#00ff00",
      "cyan": "#00ff00",
      "foreground": "#00ff00",
      "green": "#00ff00",
      "purple": "#00ff00",
      "red": "#00ff00",
      "white": "#00ff00",
      "yellow": "#00ff00"
      }
    ]
  // ...略
}

至此,Windows Terminal 的美化就介绍完了,接下来,让我们来让她更好用吧~

# 使用技巧

# 添加右键菜单

新建一个 wt.reg 注册表文件,复制以下代码:

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsTerminal\\terminal.ico"[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\{{ 你的用户名 }}\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

如果没有 terminal.ico 图标,可以从官方仓库 (opens new window)中下载。

双击运行 wt.reg 文件,点击确定就可以在右键中看到 Windows Terminal here 选项了!

# 窗格

通过窗格,你可以在同一个选项卡中并行运行多个命令行应用程序,主要快捷键有:

  • Alt + Shift + plus:打开垂直窗格。
  • Alt + Shift + -:打开水平窗格。
  • Ctrl + Shift + w:关闭当前窗格。
  • Alt + Shift + ↑↓←→:改变当前窗格大小。
  • Alt + ↑↓←→:移动选择窗格。
  • Alt + 单击下拉菜单:添加不同 Shell 窗格。

# 添加自定义 Shell

我们以自定义 SSH 远程为例,在 profiles.list 中添加一段代码:

点击查看 Windows Terminal 配置文件














 







{
  // ...略
  "profiles": {
    "list": [
      // ...略
      {
        "guid": "{5dd4202b-5f35-4951-b969-6924c8077d55}",
        "name": "Bingblue",
        "tabTitle": "Bingblue",
        "suppressApplicationTitle": true,
        "useAcrylic": true,
        "acrylicOpacity": 0.7,
        "background": "#3C0315",
        "colorScheme": "Raspberry",
        "commandline": "ssh -p 22 root@122.51.109.178",
        "icon": "%USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsTerminal\\b.png",
        "hidden": false
      },
    ]
  }
}

点击保存后就能在 Windows Terminal 下拉菜单中看到自定义 Shell 了~

但是每次都要输入密码,很麻烦,让我们直接设置免密登陆吧!

因为我的服务器是 Ubuntu,所以直接在用户下的 .ssh 文件夹下的 authorized_keys 文件中添加本机的 id_rsa.pub 公钥就行。

再次打开自定义 Shell 直接就默认登陆了,完美!这就是生产力啊!

# 最后

完整的 Windows Terminal 配置文件 如下:

点击查看 Windows Terminal 配置文件
{
  "$schema": "https://aka.ms/terminal-profiles-schema",
  "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
  "profiles": {
    "defaults": {
      "colorScheme": "Cyberdyne",
      "background": "#191323",
      "cursorColor": "#FFFFFF",
      "fontFace": "Fira Code",
      "fontSize": 14,
      "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
      "startingDirectory" : "."
    },
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name": "PowerShell",
        "commandline": "powershell.exe",
        "useAcrylic": true,
        "acrylicOpacity": 0.6,
        "colorScheme": "Cyberdyne",
        "hidden": false
      },
      {
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name": "CMD",
        "commandline": "cmd.exe",
        "experimental.retroTerminalEffect": true,
        "colorScheme": "Retro",
        "hidden": false
      },
      {
        "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
        "name": "Ubuntu",
        "tabTitle": "Ubuntu",
        "suppressApplicationTitle": true,
        "useAcrylic": true,
        "acrylicOpacity": 0.6,
        "background": "#3C0315",
        "colorScheme": "Raspberry",
        "padding": "5, 5, 5, 5",
        "source": "Windows.Terminal.Wsl",
        "hidden": false
      },
      {
        "guid": "{5dd4202b-5f35-4951-b969-6924c8077d55}",
        "name": "Bingblue",
        "tabTitle": "Bingblue",
        "suppressApplicationTitle": true,
        "useAcrylic": true,
        "acrylicOpacity": 0.7,
        "background": "#3C0315",
        "colorScheme": "Raspberry",
        "commandline": "ssh -p 22 root@122.51.109.178",
        "icon": "%USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsTerminal\\b.png",
        "hidden": false
      },
      {
        "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
        "name": "Azure Cloud Shell",
        "source": "Windows.Terminal.Azure",
        "hidden": false
      }
    ]
  },
  "schemes": [
    {
      "name": "Raspberry",
      "background": "#3C0315",
      "black": "#282A2E",
      "blue": "#0170C5",
      "brightBlack": "#676E7A",
      "brightBlue": "#80c8ff",
      "brightCyan": "#8ABEB7",
      "brightGreen": "#B5D680",
      "brightPurple": "#AC79BB",
      "brightRed": "#BD6D85",
      "brightWhite": "#FFFFFD",
      "brightYellow": "#FFFD76",
      "cyan": "#3F8D83",
      "foreground": "#FFFFFD",
      "green": "#76AB23",
      "purple": "#7D498F",
      "red": "#BD0940",
      "white": "#FFFFFD",
      "yellow": "#E0DE48"
    },
    {
      "name": "Retro",
      "background": "#000000",
      "black": "#00ff00",
      "blue": "#00ff00",
      "brightBlack": "#00ff00",
      "brightBlue": "#00ff00",
      "brightCyan": "#00ff00",
      "brightGreen": "#00ff00",
      "brightPurple": "#00ff00",
      "brightRed": "#00ff00",
      "brightWhite": "#00ff00",
      "brightYellow": "#00ff00",
      "cyan": "#00ff00",
      "foreground": "#00ff00",
      "green": "#00ff00",
      "purple": "#00ff00",
      "red": "#00ff00",
      "white": "#00ff00",
      "yellow": "#00ff00"
    },
    {
      "name": "Cyberdyne",
      "black": "#080808",
      "red": "#ff8373",
      "green": "#00c172",
      "yellow": "#d2a700",
      "blue": "#0071cf",
      "purple": "#ff90fe",
      "cyan": "#6bffdd",
      "white": "#f1f1f1",
      "brightBlack": "#2e2e2e",
      "brightRed": "#ffc4be",
      "brightGreen": "#d6fcba",
      "brightYellow": "#fffed5",
      "brightBlue": "#c2e3ff",
      "brightPurple": "#ffb2fe",
      "brightCyan": "#e6e7fe",
      "brightWhite": "#ffffff",
      "background": "#151144",
      "foreground": "#00ff92"
    },
    {
      "name": "Dracula",
      "background": "#272935",
      "black": "#21222C",
      "blue": "#BD93F9",
      "cyan": "#8BE9FD",
      "foreground": "#F8F8F2",
      "green": "#50FA7B",
      "purple": "#FF79C6",
      "red": "#FF5555",
      "white": "#F8F8F2",
      "yellow": "#FFB86C",
      "brightBlack": "#6272A4",
      "brightBlue": "#D6ACFF",
      "brightCyan": "#A4FFFF",
      "brightGreen": "#69FF94",
      "brightPurple": "#FF92DF",
      "brightRed": "#FF6E6E",
      "brightWhite": "#F8F8F2",
      "brightYellow": "#FFFFA5"
    }
  ],
  "keybindings": [
    {
      "command": {
        "action": "copy",
        "singleLine": false
      },
      "keys": "ctrl+c"
    },
    {
      "command": "paste",
      "keys": "ctrl+v"
    },
    {
      "command": {
        "action": "splitPane",
        "split": "auto",
        "splitMode": "duplicate"
      },
      "keys": "ctrl+n"
    }
  ]
}

本次文章到此就结束了,如有还有什么不会的欢迎加QQ群: 215259343 (opens new window)交流,期待你的加入~