Win10 Terminal + WSL 2 安装配置指南,精致开发体验
自从 Windows Terminal 正式发布后就再没有用过 Windows 系统自带的终端了。主要是 Terminal 简洁且灵活,更重要的是支持特殊字体,通过一些简单的配置可以使得终端看起来更舒适养眼。
自从 Win 10 有了 Linux 子系统(WSL),早就把电脑上的 vmware 虚拟机软件卸载了。WSL 体验之好,谁用谁知道。
先给大家看看我个人的配置效果图:

安装 WSL 2
WSL,Windows Subsystem for Linux(适用于 Linux 的 Windows 子系统)的简写。它有两个版本,WSL 1 和 WSL 2。 建议使用 WSL 2,它具有更好的整体性能。
安装 WSL 2,对不同架构的 CUP 有不同的 Win10 版本要求。为了简单起见,你只需确保你的 Win10 版本号为 2004(内部版本19041或更高)即可。PS:使用 win + r 输入 winver 可快速查看 Windows 版本。
如果你的 Win10 版本号低于 2004,可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具:
https://www.microsoft.com/zh-cn/software-download/windows10
下载下来后双击运行,等待完成升级即可(升级过程比较漫长)。
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。使用管理员身份打开 PowerShell,执行以下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
接下来需要安装 Linux 分发版本。打开微软应用商店,搜索 Ubuntu,在列表中选择最新的长期支持版本 20.04 LTS 并安装。

使用任一终端,输入以下命令查看 WSL 版本,确保 WSL 的版本为 2.0:
$ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
如果你之前安装过 WSL,当前不是 WSL 2 版本,可以通过以下命令设置 WSL 的默认版本:
wsl --set-version Ubuntu-20.04 2
PS:从 WSL 1 更新到 WSL 2 可能需要几分钟才能完成,具体取决于目标分发版的大小。
安装 Terminal
打开微软应用商店,搜索“Terminal”,安装,打开后的界面是这样的:

默认打开的是 PownerShell 终端,我们可以设置为默认打开 Ubuntu 终端。点击标签右边的下拉三角,选择设置:

会打开一个 JSON 配置文件,在 profiles->list 中找到 Ubuntu 的 guid 并复制。

将它粘贴为文件开头的 defaultProfile 的值:

安装 oh-my-zsh
我们需要先安装一些额外的字体来支持 oh-my-zsh 显示特殊的符号。打开 PowerShell,依次执行如下命令 Powerline 字体集合:
git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1
接着安装 zsh:
sudo apt update
sudo apt install git zsh -y
再安装 oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
此步如果报如下错误:
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
解决办法有很多种,请自行解决。
安装完 oh-my-zsh 后,编辑 ~/.zshrc 文件,将主题设置为 agnoster:

再次打开 Terminal 的 JSON 配置文件,在 schemes 中添加一个主题,主题名随意,这里为 wsl2:
"schemes": [
{
"name" : "wsl2",
"background" : "#002B36",
"black" : "#002B36",
"blue" : "#268BD2",
"brightBlack" : "#657B83",
"brightBlue" : "#839496",
"brightCyan" : "#D33682",
"brightGreen" : "#B58900",
"brightPurple" : "#EEE8D5",
"brightRed" : "#CB4B16",
"brightWhite" : "#FDF6E3",
"brightYellow" : "#586E75",
"cyan" : "#2AA198",
"foreground" : "#93A1A1",
"green" : "#859900",
"purple" : "#6C71C4",
"red" : "#DC322F",
"white" : "#93A1A1",
"yellow" : "#B58900"
}
],
然后在该 JSON 文件中把 wsl 终端的主题设置为该 wsl2 主题,并把字体改为你喜欢的一个 Powerline 字体:

最后一步,再做一点点美化:把命令行的机器名称去掉,并调整用户名的背景色。编辑 agnoster 主题文件:
vi ~/.oh-my-zsh/themes/agnoster.zsh-theme
把 92 行修改为:
prompt_segment green black "%(!.%{%F{yellow}%}.)%n"
修改后如下:

关闭 Terminal 再重新打开,效果如下:

配置完成!
当然,你也可以去 Google 自己喜欢的主题,比如更为鲜亮的 Dracula 主题:

如若你在安装配置过程中遇到问题,请留言。
Win10 Terminal + WSL 2 安装配置指南,精致开发体验的更多相关文章
- [转载]SharePoint 2013测试环境安装配置指南
软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...
- 【转】服务器证书安装配置指南(Weblogic)
服务器证书安装配置指南(Weblogic) 详情请点击: http://verisign.itrus.com.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpe ...
- 大数据应用日志采集之Scribe 安装配置指南
大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...
- 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置
Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...
- Eclipse IDE for C/C++ Developers和MinGW安装配置C/C++开发学习环境详解
Eclipse IDE for C/C++ Developers和MinGW安装配置C/C++开发学习环境详解 操作系统:Windows 7 JDK版本:1.6.0_33 Eclipse版本:Juno ...
- Gitolite v3安装配置指南
使用gitolite对git仓储进行权限配置 gitolite在近期做了很多代码改动,升级到了v3版本,而我使用的是v3.5.2.在<Git权威指南>中所提及的是v2版本,有很多东西已经不 ...
- 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...
- 在win10系统环境下,安装配置sublime 3,构建python和vue.js开发环境(插件)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_131 疫情当下,最近一直在用mac下的虚拟机运行win10系统,由于在线人数过多,直播授课的时候使用vscode的时候内存暴涨,于 ...
随机推荐
- 基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中。
react-amap 这是一个基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中. 文档实例预览: Github Web | Gitee Web 特性 ️ 自动加载高德地 ...
- Python练习题 049:Project Euler 022:姓名分值
本题来自 Project Euler 第22题:https://projecteuler.net/problem=22 ''' Project Euler: Problem 22: Names sco ...
- Django 联合唯一UniqueConstraint
from django.db import models class UserAttention(models.Model): watcher = models.ForeignKey('user.Us ...
- 再玩树莓派(二)Jexus&.NetCore
接上一篇,操作系统弄好之后,轮到开发运行环境的搭建. 先说说目标,也就是我到底想搞什么飞机.先说说小目标吧. 现有一个手机App客户端,以答题小游戏作为其内容(例如:口算题,24点,科学百科等) 树莓 ...
- Linux系统编程 —线程属性
在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性.一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题. 但是, ...
- 日志分析平台ELK之前端展示kibana
之前的博客一直在聊ELK集群中的存储.日志收集相关的组件的配置,但通常我们给用户使用不应该是一个黑黑的shell界面,通过接口去查询搜索:今天我们来了ELK中的前端可视化组件kibana:kibana ...
- java安全编码指南之:方法编写指南
目录 简介 不要在构造函数中调用可以被重写的方法 不要在clone()方法中调用可重写的方法 重写equals()方法 hashCode和equals compareTo方法的实现 简介 java程序 ...
- rustup命令速度慢
通过以下命令更换镜像: $ENV:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static' $ENV:RUSTUP_UPDATE_ROO ...
- Python解析yaml配置文件
1.代码测试 import yaml fd = open('fileName.yaml', 'r') dict_tmp = yaml.load(fd) fd.close() print dict_tm ...
- 99%的Android开发不得不面对的三道坎,到底该怎么破?
今年比往年要特殊一些,受疫情的影响,很多公司都出现了裁员现象.以至于最近很多技术同学也在纷纷向我倒苦水. 王鹏便是其中的一员,王鹏之前是在一线城市的一家小型互联网公司做Android应用开发.从毕业实 ...