admin 管理员组

文章数量: 887006

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


文章目录

      • Windows 终端
        • 一、安装
          • 1. Microsoft Store 安装 Windows 终端。
          • 2. GitHub安装 Windows 终端。
          • 3. 启动
        • 二、配置
          • 1、Windows 终端配置。
            • 2.1 settings.json结构
            • 2.2 参数说明
          • 2、自定义配置终端主题
        • 三、使用
          • 1、命令行语法
          • 2、选项和命令
          • 3、令行参数示例
            • 3.1 打开新的配置文件实例
            • 3.2 以一个目录为目标
            • 3.3 多个选项卡
            • 3.4 多个窗格
            • 3.5 选项卡标题
            • 3.6 选项卡焦点
          • 4、PowerShell 中多个命令的示例
            • 4.1 单引号括起来的参数
            • 4.2 转义的引号
            • 4.3 使用 `start`
          • 5、更多使用细则

认识全新的 Windows Terminal:微软最「爽」命令行工具!


Windows 终端

  • github项目地址:microsoft/terminal .
  • Microsoft商店:Windows Terminal .
  • 官方文档:https://docs.microsoft/zh-cn/windows/terminal/
一、安装
1. Microsoft Store 安装 Windows 终端。

打开 Windows 终端商店页面,选择获取。
浏览器会提示打开Microsoft Store,选择打开。在Microsoft Store页面选择获取/安装即可自动完成安装。
安装完成后,提示可以启动。

2. GitHub安装 Windows 终端。

对于无法从 Microsoft 商店安装终端的用户,可以从此存储库的发布页面手动下载终端构建。

🔴注意:如果您手动安装终端:

  • 终端不会自动更新时,新的版本被释放,所以你需要定期安装最新的终端版本,以接收所有最新的修复和改进!

具体安装方式可参考 github-terminal:Other install methods.

3. 启动
  1. 方式一:通过运行——> wt.exe 启动
    组合键Win+R :运行,输入 wt 回车

  2. 使用快速搜索
    使用组合键Win+Q打开搜索。或使用Win+S效果相同

    输入 wtwindows terminal 选择打开。

  3. 通过开始菜单引用列表启动
    打开开始菜单,鼠标点击‘W’索引将快速定位至首字母为w的程序列表处。选择windows terminal。

  4. 添加到右键启动菜单
    这里需要修改windows注册表,修改windows terminal配置文件等,过程比较繁琐。
    而在github是有一个仓库用于一键配置 wt 到右键菜单中。WindowsTerminalHere

    下载 .inf 文件,右键选择安装即可完成配置。在桌面或在资源管理器中单击鼠标右键即可找到Windows terminal选项。

二、配置

Windows 终端支持自定义主题,通过settings.json配置文件设置文本、颜色、背景和快捷方式等。

参考提供Microsoft的文档说明 https://docs.microsoft/zh-cn/windows/terminal/customize-settings/startup .

1、Windows 终端配置。

在下拉菜单中选择“设置”。 这会在默认文本编辑器中打开 settings.json 文件。

Windows 终端默认有三个terminal选择,powershell、cmd、和azure cloud shell。存放在“list”数组中,如果想添加新的 terminal 在这里添加即可。

详细的配置说明请参考: Windows 终端自定义设置。

2.1 settings.json结构
{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "copyOnSelect": false,	//如果启用,选择将自动复制到您的剪贴板中

    "copyFormatting": false,	// 如果启用,格式化的数据也会复制到您的剪贴板中
	
    "profiles":
    {
        "defaults":	//全局配置
        {
            // 将要应用于所有配置文件的设置放在这里。
			
        },
        "list":	// 各种terminal的详细配置 
        [
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false,
            },
            {
                // Make changes here to the cmd.exe profile.
				"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
				"name": "命令提示符",
				"commandline": "cmd.exe",
				"hidden": false,
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            }
        ]
    },

    //向此数组中添加自定义配色方案
	"schemes":[ 	// 配色方案
		{	
			"name" : "Frost",
			"background" : "#FFFFFF",
			"black" : "#3C5712",
			"blue" : "#17b2ff",
			"brightBlack" : "#749B36",
			"brightBlue" : "#27B2F6",
			"brightCyan" : "#13A8C0",
			"brightGreen" : "#89AF50",
			"brightPurple" : "#F2A20A",
			"brightRed" : "#F49B36",
			"brightWhite" : "#741274",
			"brightYellow" : "#991070",
			"cyan" : "#3C96A6",
			"foreground" : "#000000",
			"green" : "#6AAE08",
			"purple" : "#991070",
			"red" : "#8D0C0C",
			"white" : "#6E386E",
			"yellow" : "#991070"
		}
     ],

    "actions":	// 快捷键
    [
        // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json./*复制和粘贴绑定到defaults.json中的ctrl+Shift+C和Ctrl+Shift+v。*/
        // These two lines additionally bind them to Ctrl+C and Ctrl+V. /* 这两行还将它们绑定到Ctrl+C和Ctrl+V。*/
        // To learn more about selection, visit https://aka.ms/terminal-selection
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" }, // ctrl+c 快捷键
        { "command": "paste", "keys": "ctrl+v" },		// 快捷键 粘贴:ctrl+v

        // Press Ctrl+Shift+F to open the search box	// 快捷键 搜索:ctrl+shift+f
        { "command": "find", "keys": "ctrl+shift+f" },

        // Press Alt+Shift+D to open a new pane.		// 按Alt+Shift+D打开一个新的窗格。
        // - "split": "auto" makes this pane open in the direction that provides the most surface area.
        // - "splitMode": "duplicate" makes the new pane use the focused pane's profile.
        // To learn more about panes, visit https://aka.ms/terminal-panes
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }
    ]
}

2.2 参数说明

默认配置文件 defaultProfile

  • 设置通过键入、键入分配给的键绑定、在不指定配置文件的情况下运行或单击"+"图标打开的默认配置文件。ctrl+shift+t newTabwt new-tab
    • 属性名称: defaultProfile
    • 必要性:必填
    • 接受:作为字符串的GUID或配置文件名称
    • 默认值:PowerShell’s GUID

自动将选择复制到剪贴板

  • 设置为true时,创建时会立即将选择复制到剪贴板中。在这种情况下,右键单击鼠标始终会粘贴。当它被设置,选择仍然存在,并等待进一步的行动。使用鼠标右键单击将复制该选择。true、false
    • 属性名称: copyOnSelect
    • 必要性:可选
    • 接受:truefalse
    • 默认值: false

复制时的文本格式

  • 设置为true时,所选文本的颜色和字体格式也会复制到您的剪贴板中。设置为false时,只有纯文本被复制到剪贴板上。除此之外,还可以指定要复制的格式。
    • 属性名称: copyFormatting
    • 必要性:可选
    • 接受: true 、false、“all”、“none”、“html”、“rtf”
    • 默认值: false

主题

  • 这设置了应用程序的主题。 将使用与视窗相同的主题。“system”
    • 属性名称: theme
    • 必要性:可选
    • 接受: ,“system”“dark”“light”
    • 默认值: “system”

始终显示选项卡

  • 当设置为此选项卡时,始终显示选项卡。当它设置为并设置为时,选项卡始终显示在标题栏下方。当此选项卡设置为并设置为时,仅在通过键入或键入分配给的密钥绑定存在多个选项卡后才会显示选项卡。请注意,更改此设置将需要启动新的终端实例。true、false、showTabsInTitlebar、true、false、showTabsInTitlebar、false、ctrl+shift+tnewTab

    • 属性名称: alwaysShowTabs
    • 必要性:可选
    • 接受:truefalse
    • 默认值: true

隐藏标题栏

  • 设置为时,选项卡将移入标题栏,标题栏将消失。设置为时,标题栏位于选项卡上方。请注意,更改此设置将需要启动新的终端实例。truefalse

    • 属性名称: showTabsInTitlebar
    • 必要性:可选
    • 接受:true、false
    • 默认值: true

始终处于顶部模式

  • 设置为真时,Windows 终端窗口将在桌面上的所有其他窗口顶部启动。此状态也可以与键绑定切换。toggleAlwaysOnTop

    • 属性名称: alwaysOnTop
    • 必要性:可选
    • 接受: true, false
    • 默认值: false

选项卡宽度模式

  • 这设置选项卡的宽度。 使每个选项卡的宽度相同。 将每个选项卡大小为标题的长度。 将每个不活跃的选项卡缩小到图标的宽度,为活动选项卡留出更多空间来显示其完整标题。“equal”“titleLength”“compact”

    • 属性名称: tabWidthMode
    • 必要性:可选
    • 接受: ,“equal”“titleLength”“compact”
    • 默认值: “equal”

显示关闭所有选项卡弹出窗口

  • 设置为时,关闭打开多个选项卡的窗口需要确认。设置为时,关闭多个选项卡打开的窗口不需要确认。truefalse

    • 属性名称: confirmCloseAllTabs
    • 必要性:可选
    • 接受:truefalse
    • 默认值: true

创建自己的配色方案

  • 可以在 settings.json 文件的 schemes 数组中定义配色方案。 它们是使用以下格式写入的:

    • 除 name 以外,每个设置都接受十六进制格式("#rgb" 或 “#rrggbb”)的字符串形式的颜色。 cursorColor 和 selectionBackground 设置是可选的。

包含的配色方案

  • Windows 终端将这些配色方案包含在 defaults.json 文件中,可按住 alt 并选择设置按钮来访问该文件。 如果要在一个命令行配置文件中设置配色方案,请添加 colorScheme 属性,并将配色方案的 name 作为值。
"colorScheme": "COLOR SCHEME NAME"
2、自定义配置终端主题
参数说明
acrylicOpacity亚克力模糊效果透明度,值:0~1
closeOnExit关闭窗口时退出当前shell,值:true
colorScheme颜色主题名称,为[]schemes下的主题对象中name的值
commandline启动终端窗口时执行指定的程序/命令/脚本
cursorColor光标颜色,值:16进制码
cursorShape光标形状,值:bar
fontFace字体
fontSize字体大小
guid唯一标识符
historySize保留历史行数
icon指定显示在顶部tab以及下拉菜单中的图标
name指定该profiles对象的名称,将会显示在下拉菜单中
padding边距,值:0, 0, 0, 0,值设定顺序为左、上、右、下
snapOnInput键入时跳转到光标位置,值:true
startingDirectory启动时的路径
useAcrylic开启亚克力模糊,值:true

将以上参数与对应数值添加到终端配置中即可。(参考下图:在命令提示符中添加了光标颜色cursorColor 属性)。另外,可以添加配色方案到"schemes"数组中,通过字段"colorScheme" : "Gruvbox Dark"选择主题的配色。

配色方案:可以在网上找比较好的配色方案添加进“schemes”数组中。

三、使用
1、命令行语法

wt 命令行接受两种类型的值:“选项”和“命令” 。

  • “选项”是一系列标志和其他参数,可以将 wt 命令行的行为作为一个整体来控制。
  • “命令”提供应该实现的操作或操作列表(以分号分隔)。
    如果未指定命令,则默认情况下会将命令指定为 new-tab
# bash
wt \[options\] \[command ; \]

若要显示列出可用命令行参数的帮助消息,请输入:wt -hwt --helpwt -?wt /?

2、选项和命令

下面是 wt 命令行支持的命令和选项的完整列表。

选项说明
--help-h-?/?显示帮助消息。
--maximized-M以最大化形式启动终端。
--fullscreen-F以全屏形式启动终端。

注意:
--maximized-M--fullscreen-F 仅在 Windows 终端预览中可用。

命令参数说明
new-tab--profile, -p profile-name--startingDirectory, -d starting-directorycommandline--title创建新选项卡
split-pane-H, --horizontal-V, --vertical--profile, -p profile-name--startingDirectory, -d starting-directorycommandline--title拆分新窗格。
focus-tab--target, -t tab-index聚焦于特定选项卡。

注意
--title 仅在 Windows 终端预览中可用。

3、令行参数示例

命令可能会略有不同,具体取决于所使用的命令行。

3.1 打开新的配置文件实例
  • 若要打开新的终端实例(在此示例中,该命令将打开名为“Ubuntu-18.04”的配置文件),请输入:
*   [命令提示符]
wt -p "Ubuntu-18.04"
    
*   [PowerShell]
wt -p "Ubuntu-18.04"
    
*   [Linux]
cmd.exe /c "wt.exe" -p "Ubuntu-18.04" 
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止。
  • -p 标志用于指定应打开的 Windows 终端配置文件。 将“Ubuntu-18.04”替换为已安装的任何终端配置文件的名称。 这将始终打开一个新窗口。 Windows 终端尚不能在现有实例中打开新选项卡或窗格。
3.2 以一个目录为目标
  • 若要指定应该用作控制台起始目录的文件夹(在本例中为 d:\目录),请输入:
*   [命令提示符]
wt -d d:\
    
*   [PowerShell]
wt -d d:\
    
*   [Linux]
cmd.exe /c "wt.exe" -d d:\
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止。
3.3 多个选项卡
  • 若要打开具有多个选项卡的新终端实例,请输入:
*   [命令提示符]
wt ; ;
    
*   [PowerShell]
wt `; `;
# PowerShell 使用分号,用于分隔语句。 若要将分号 ; 解释为 wt 命令行参数的命令分隔符,则需要使用反引号转义分号字符。 PowerShell 还具有停止分析运算符 (--%),这指示它停止解释它之后的任何内容,并只逐字传递。
    
*   [Linux]
cmd.exe /c "wt.exe" \; \;
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止。
  • 若要打开具有多个选项卡的新终端实例(在本例中为命令提示符配置文件和 PowerShell 配置文件),请输入:
*   [命令提示符]
wt -p "Command Prompt" ; new-tab -p "Windows PowerShell"
    
*   [PowerShell]
wt -p "Command Prompt" `; new-tab -p "Windows PowerShell"
# PowerShell 使用分号,用于分隔语句。 若要将分号 ; 解释为 wt 命令行参数的命令分隔符,则需要使用反引号转义分号字符。 PowerShell 还具有停止分析运算符 (--%),这指示它停止解释它之后的任何内容,并只逐字传递。
    
*   [Linux]
cmd.exe /c "wt.exe" -p "Command Prompt" \; new-tab -p "Windows Powershell"
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止,且 \; 正斜杠 + 分号将命令分隔开来。
3.4 多个窗格
  • 若要使用一个选项卡打开一个包含三个窗格(分别运行命令提示符配置文件、PowerShell 配置文件以及运行 WSL 命令行的默认配置文件)的新终端实例,请输入:
*   [命令提示符]
wt -p "Command Prompt" ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe
    
*   [PowerShell]
wt -p "Command Prompt" `; split-pane -p "Windows PowerShell" `; split-pane -H wsl.exe
# PowerShell 使用分号,用于分隔语句。 若要将分号 ; 解释为 wt 命令行参数的命令分隔符,则需要使用反引号转义分号字符。 PowerShell 还具有停止分析运算符 (--%),这指示它停止解释它之后的任何内容,并只逐字传递。
    
*   [Linux]
cmd.exe /c "wt.exe" -p "Command Prompt" \; split-pane -p "Windows PowerShell" \; split-pane -H wsl.exe
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止,且 \; 正斜杠 + 分号将命令分隔开来。
  • -H 标志(或 --horizontal)指示你希望水平拆分窗格。 -V 标志(或 --vertical)指示你希望垂直拆分窗格。
3.5 选项卡标题
  • 若要打开带有自定义选项卡标题的新终端实例,可使用 --title 参数。 若要在打开两个选项卡时设置每个选项卡的标题,请输入:
*   [命令提示符]
wt --title tabname1 ; new-tab -p "Ubuntu-18.04" --title tabname2
    
*   [PowerShell]
wt --title tabname1 `; new-tab -p "Ubuntu-18.04" --title tabname2
    
*   [Linux]
cmd.exe /c "wt.exe" --title tabname1 \; new-tab -p "Ubuntu-18.04" --title tabname2
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止,且 \; 正斜杠 + 分号将命令分隔开来。

注意
此功能仅在 Windows 终端预览中可用。

3.6 选项卡焦点
  • 若要打开带有特定焦点选项卡的新终端实例,请使用 -t 标志(或 --target)以及选项卡-索引号。 若要在第一个选项卡中打开默认配置文件,并在第二个选项卡 (-t 1) 中打开焦点“Ubuntu-18.04”配置文件,请输入:
*   [命令提示符]
wt ; new-tab -p "Ubuntu-18.04" ; focus-tab -t 1
    
*   [PowerShell]
wt `; new-tab -p "Ubuntu-18.04" `; focus-tab -t 1
    
*   [Linux]
cmd.exe /c "wt.exe" \; new-tab -p "Ubuntu-18.04" \; focus-tab -t 1
# 执行别名不适用于 WSL 分发。 如果要从 WSL 命令行使用 wt.exe,可以运行 cmd.exe 直接从 CMD 生成它。 /c 选项指示 CMD 在运行后终止,且 \; 正斜杠 + 分号将命令分隔开来。
4、PowerShell 中多个命令的示例

Windows 终端使用分号字符 ; 作为分隔符来分隔 wt 命令行中的命令。 遗憾的是,PowerShell 也使用 ; 作为命令分隔符。 若要解决此问题,可以使用以下技巧从 PowerShell 运行多个 wt 命令。 在下面的所有示例中,将创建一个新的终端窗口,其中包含三个窗格:一个运行命令提示符,一个运行 PowerShell,最后一个运行 WSL。

下面的示例使用 Start-Process 命令来运行 wt。 如需了解终端为什么使用 Start-Process,请参阅下面的使用 start。

4.1 单引号括起来的参数

在此示例中,wt 参数以单引号(')括起来。 如果不计算任何内容,则此语法非常有用。

# PowerShell
start wt 'new-tab "cmd" ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe'
4.2 转义的引号

将变量中包含的值传递到 wt 命令行时,请使用以下语法:

PowerShell
$ThirdPane = "wsl.exe"start wt "new-tab cmd ; split-pane -p `"Windows PowerShell`" ; split-pane -H $ThirdPane"

请注意,使用 `-p 参数中的“Windows PowerShell”的双引号 (") 转义给 split-pane 参数。

4.3 使用 start

上述所有示例显式使用 start 启动终端。

下面的示例不使用 start 运行命令行。 但是,可以通过另外两种方法来对命令行转义:

  • 仅对分号进行转义,使 PowerShell 忽略它们,并将它们直接传递到 wt

  • 使用 --%,因此 PowerShell 会将命令行的其余部分视为应用程序的参数。

PowerShell
wt new-tab "cmd" `; split-pane -p "Windows PowerShell" `; split-pane -H wsl.exe
PowerShell
wt --% new-tab cmd ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe

在这两个示例中,新创建的 Windows 终端窗口将通过正确分析所有提供的命令行参数来创建窗口。

但是目前不建议使用这些方法,因为 PowerShell 会等待新创建的终端窗口关闭,然后再将控制权返回给 PowerShell。 默认情况下,在返回到提示符之前,PowerShell 将始终等待 Windows 应用商店应用程序(如 Windows 终端)关闭。 请注意,这与命令提示符的行为不同,后者会立即返回到提示符。

5、更多使用细则
  • 命令面板:https://docs.microsoft/zh-cn/windows/terminal/command-palette
  • 搜索:https://docs.microsoft/zh-cn/windows/terminal/search
  • 窗格:https://docs.microsoft/zh-cn/windows/terminal/panes
  • 动态配置文件:https://docs.microsoft/zh-cn/windows/terminal/dynamic-profiles

本文标签: 终端 高效 应用程序 强大 Windows