WSL结合Windows Terminal的优化

2023-11-11

windows下面使用Linux命令,对于如今的工作人员已经不再是遥不可及的梦想,这得益于WSL (Windows subsystem for Linux) 的出现,不仅如此,windows系统还推出了windows terminal,对于终端的使用更是锦上添花,为了更好利用terminal以及WSL,下面,我们对这两者进行优化设置,主要是主题以及字体的优化.

Windows Terminal

安装

对于Windows Terminal的安装,最简便的方式莫过于在微软商店下载安装,此种方式的优点是可以保持新版本的更新。当然,你也可以选择GitHub下载源代码编译安装,甚至可以向官方提出更好的Terminal建议.

配置

Windows Terminal的配置是通**.json文件进行配置,你可以在terminal程序中打开它,并且通过文本编辑器修改设置即可生效,关于json**文件中的变量设置等问题,可以参照微软的官方文档Microsoft Docs查看配置,当然,下面的美化内容也会涉及到其中的内容.


WSL

安装

  • 命令行模式安装

    使用管理员身份打开PowerShell窗口(如果你已经安装Terminal,可以直接打开),运行下面的命令:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    

    完成之后需要重启电脑.

重启完成之后,便可以安装WSL的系统了,在微软商店中搜索WSL,选择你想要安装的Linux系统(比如ubuntu),下载安装即可。默认情况下,完成之后,Windows Terminal中也应该自动添加了WSL的终端.

WSL美化

下面是文章的核心,具体是关于如何美化WSL终端的设置,当然,这些建立在Windows Terminal基础之上.

安装oh-my-zsh

oh-my-zsh是一款强大的Linux以及MacOS终端的shell,支持一些主题以及插件的安装,提供较于默认的bash更为强大的功能,可以使命令行更为简洁方便,安装如下:

  • 官方安装方式Here

  • 手动安装

    可能因为各种原因,官网的安装命令运行失败,你可以尝试手动安装的方式去尝试如下:

    $ git clone https://gitee.com/mirrors/oh-...~/.oh-my-zsh
    $ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    

安装完成之后,便是更改环境shell,相关的命令如下:

  • 查看当前环境shell

    echo $SHELL
    
  • 查看系统有哪些shell

    cat /etc/shells
    
  • zsh设置为默认shell

    chsh -s /usr/bin/zsh
    

主题设置

界面良好的终端自然是需要良好的主题作为支撑,oh-my-zsh本身提供了很多的主题,相关的主题名称以及展示可以在这里查看Here,选择你喜欢的主题设置即可,这里我们以agnoster主题设置为例:

  • 打开配置文件

    vi ~/.zshrc
    

    通过vim配置编辑,设置主题

    ZSH_THEME="agnoster" #直接修改即可
    

    保存退出,运行下面的命令使配置生效:

    source ~/.zshrc
    

字体

你可能会很吃惊,因为并没有达到官网展示效果,这是因为没有使用powerline字体的原因,这里推荐一款不错的字体,Cascadia Code,这款字体是由微软开发的编程等宽字体,包含连字以及powerline字体(这款字体在微软编辑器中使用还会有意想不到的效果),附下载地址[Here](Releases · microsoft/cascadia-code · GitHub),下载完成后只安装Cascadia Code PL字体便可以了.

字体安装完成后,设置即可。还记得Windows Terminal的配置文件吗?打开文件设置你的终端配置便可以了,这里附上个人的终端设置:

{
    "hidden": false,
    "name": "Ubuntu-20.04",
    "source": "Windows.Terminal.Wsl",
    "suppressApplicationTitle": true,
    "tabTitle": "ubuntu",
    "colorScheme": "Campbell",
    "fontFace": "Cascadia Code PL",
    "fontSize": 11,
    "fontWeight": "normal",
    "cursorShape": "filledBox"
}

完成这些就可以呈现不错的powerline效果了.

配色

若是不满足于默认的配色,可以寻求更多的配色主题来完成Windows Terminal的设置,除了官网本身的主题之外,下面提供一些其他配色方案的terminaljson格式.

  • 这里是配色的图案显示Here

  • 这里是配色的文件Here

两者对照即可选出你心仪的主题,当然,也可以DIY自己的专属,设置主题便是上面的colorScheme选项,后面接上主题name,保存后就可以显示了.

插件安装

使用oh-my-zsh,自然要体验一下插件的功能,下面推荐两个插件,分别是语法高亮自动提示补全插件,安装命令如下:

  • git下载

    # git下载 zsh-syntax-highlighting
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
    # git下载 zsh-autosuggestions
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
  • 配置文件修改

    # 首先用vim进入.zshrc配置文件
    vim ~/.zshrc
    
    # 之后利用vim编辑文件为
    plugins=(
            zsh-syntax-highlighting
            zsh-autosuggestions
            )
    
  • 运行配置

    source $ZSH/oh-my-zsh.sh
    source $ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
    source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
    

以上便是一些终端的优化操作,附上我的WSL终端图:

在这里插入图片描述

有问题可以留言.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL结合Windows Terminal的优化 的相关文章

  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • Gulp 错误:找不到模块“jshint/src/cli”

    因此 我重新安装了 El Capitan 并再次尝试这些任务运行程序 我正在跟进sitepoint 的 Gulp js 简介 http www sitepoint com introduction gulp js 但当我尝试运行时 我陷入了
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • Docker 中的 Airflow:如何将 DAG 添加到 Airflow?

    我想将 DAG 文件添加到 Airflow 它在 Ubuntu 上的 Docker 中运行 我用了以下git 存储库 https github com puckel docker airflow 包含配置和 docker 镜像的链接 当我跑
  • libicui18n.so.52:无法打开共享对象文件

    我一直在使用 libicu 来检测在 docker ubuntu 内部运行的节点应用程序中的字符集 这是通过模块完成的节点 icu 字符集检测器 https github com mooz node icu charset detector
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 无法在 Google Cloud Run 上部署 Ubuntu 20.04 Docker 容器

    我正在尝试通过 Google Cloud Run 部署一个基于 Ubuntu 20 04 的简单的基于 Python 的 Docker 容器 我已经成功构建了映像 但是当我尝试部署 Cloud Run 服务时 出现以下错误 省略了项目详细信
  • 生成一个新终端并写入其标准输出

    我有一个应用程序 它使用 GUI 来完成与用户的大部分界面 不过 我想要一个单独的终端窗口 我可以写入一些错误检查 原始值等 我知道我可以使用以下命令生成一个新终端system 命令 但我不知道是否可以进行交互 在最好的情况下 我希望有一个
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 如何在 Visual Studio Code 中从集成终端引用当前文件

    我想知道是否可以 使用内置变量 直接使用集成终端在 Visual Studio 中打开的当前文件 例如 gt some command current file Where current file would be a built in
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat

随机推荐

  • LuatOS-SOC接口文档(air780E)--dac - 数模转换

    dac open ch freq mode 打开DAC通道 并配置参数 参数 传入值类型 解释 int 通道编号 例如0 int 输出频率 单位hz int 模式 默认为0 预留 返回值 返回值类型 解释 true 成功返回true 否则返
  • C++ traits编程方法

    转自 http s99f blog 163 com blog static 35118365200903111941380 侯捷老师在 STL 源码剖析 说 traits编程方法是一把开启STL源代码大门的钥匙 其重要性也就不必再说了 既然
  • Eclipse如何给main方法传值

    import java util Arrays 这是一个测试类 用来研究main方法的传值问题 author HHB public class Test 这是类的主方法 可以用来接受用户的输入 并将输入数据保存到一个String类型的数组里
  • gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)

    文章目录 postgresql13 0安装 1 配置postgresql数据库 2 进入postgresql创建数据库 代码质量管理平台 sonarqube安装 1 前置依赖 下载 2 安装unzip并解压sonarqube并移动到 usr
  • 基础数据类型的取值范围计算方法

    一 以c 为例 1 int 整数类型 4个字节 1KB 1000B 1B就是一个字节 一个字节占8位 所以4个字节就是4 8 32位 因为在计算机的二进制中有一个符号位 32 1 31 剩下31个位置存放数字 计算 每个位置只能是0 1这两
  • C++ 泛型编程(二) 函数模版

    前文回顾 C 泛型编程 一 基本概念 函数模版 模版定义 定义 模版定义以关键字 template 开始 后跟尖括号包围的模版参数列表 用关键字 typename 来定义模版参数类型 template
  • Ubuntu下,python3下离线安装Supervisor

    说明 由于我的是生产环境 没有外网 所以只能通过安装包来下载 有外网的比较简单 可以直接通过apt get即可 或者pip pip3这些直接命令安装即可 一 安装步骤 1 1 先在windows桌面新建一个sss目录 用于存储安装包 方便统
  • UserHandle.ALL、UserHandle.CURRENT、UserHandle.CURRENT_OR_SELF、UserHandle.OWNER的定义与区别

    UserHandle ALL UserHandle CURRENT UserHandle CURRENT OR SELF UserHandle OWNER的定义与区别 UserHandle ALL 设备上所有用户均可接收到广播 UserHa
  • 边缘计算:提升数据处理效率的新时代

    随着物联网 人工智能等技术的快速发展 边缘计算已经成为一个备受关注的话题 但是 很多人对于边缘计算的概念并不是很清晰 本文将重点解释 轻松读懂边缘计算 中的重点词汇或短语 帮助读者更好地理解边缘计算 一 边缘计算 边缘计算是一种新型计算模型
  • 使用ffmpeg视频切片并加密和视频AES-128加密后播放

    创建加密文件 想达到的目的 将一个mp4视频文件切割为多个ts片段 并在切割过程中对每一个片段使用AES 128 加密 最后生成一个m3u8的视频索引文件 电脑环境mac 已经安装了最新的ffmpeg 4 0 2版本 如果要加密 首先准备好
  • 电脑回收站已经清空的文件怎么还原

    互联网时代 我们很难去想象我们的生活没有了电脑没有了智能手机的日子 但是 作为电子设备 在方便我们的同时 也会给我们带来一些小小的烦恼 最常见的使用手机和电脑的弊端就是 被删除的文件 如果回收站已经清空了 那么你的文件就找不会来了 特别是有
  • Java防止重复数据多次调用接口导致数据库插入重复记录

    Java防止重复数据多次调用接口导致数据库插入重复记录 一 我们可以对数据库表设置主键 字段唯一约束来防止重复数据插入到数据库 在数据库层通过唯一键的方式来限制重复提交的记录 对于重复提交的内容自动被过滤 二 在前端控制 比如按钮置灰等 三
  • MySQL 5.7 版本登录报 error 1524: plugin ... in not loaded

    昨天看到论坛有人提问 error 1524 plugin in not loaded 问题相关信息 1 安装mysql 5 7 16 2 修改my ini为 For advice on how to change settings plea
  • 基于SpringBoot的自习室预约管理系统

    项目背景 在网络高速发展的时代 众多的软件被开发出来 给学生带来了很大的选择余地 而且人们越来越追求更个性的需求 在这种时代背景下 学院只能以学生为导向 所以自习室预订系统是必须的 系统采用了Java技术 将所有业务模块采用以浏览器交互的模
  • HAL库学习笔记-11 I2C

    目录 前言 一 I2C协议简介 I2C物理层 I2C协议层 1 基本读写过程 2 通讯的起始和停止信号 3 数据有效性 4 地址及数据方向 5 应答信号 二 STM32的I2C特性及架构 STM32 I2C架构解析 1 逻辑引脚 2 时钟控
  • Linux系统管理(三)系统中的日志管理及优化

    1 实验环境 两台能够通信的主机 2 journal日志查看工具的使用 企业7之前的系统没有 日志的收集工具 systemd journald service 查看路径 run log journal machine id system j
  • IAR 编译优化 #pragma optimize

    在IAR工具菜单栏中 点击 help gt Serach 搜索optimize 说明 单独指定的优化等级优先级高于编译器统一指定的优化 1 格式 pragma optimize goal level vectorize disable Pa
  • Python零基础入门--手动安装pip、selenium、lib包

    一 python安装教程 1 python exe安装踩坑点 运行命令 提示 python 不是内部或外部命令 1 1 注意勾选path 不然要自己在系统path中的添加变量 操作步骤参考如下 1 2 自定义安装路径 本文python ex
  • STL标准模板库 list的使用

    ZZ 李木空间 www limou net list的使用 在使用list必须包括头文件 include
  • WSL结合Windows Terminal的优化

    windows下面使用Linux命令 对于如今的工作人员已经不再是遥不可及的梦想 这得益于WSL Windows subsystem for Linux 的出现 不仅如此 windows系统还推出了windows terminal 对于终端