Terminal+PowerShell+Scoop 实用、炫酷的Window终端

785 阅读6分钟

你还在使用 Window 的默认终端吗?😮😮😮
用过 Window 默认终端的都知道,真的太丑、 太烂、太落伍。 微软也逐渐意识到这个问题,并在 Build2019 大会上发布了 新一代 Window 终端程序:Window Terminal 。

效果图

image.png

软件的下载及安装

  1. Terminal 安装 关于Terminal的安装有以下条件

    • 如果系统是Window11Terminal是系统默认的终端。

    • 如果系统是Window10想要安装Terminal 可以在Microsoft Store中搜索terminal 查看系统是否符合安装要求: image.png

    • 符合对应要求直接点击 获取 即可。

  2. PowerShell安装 有多种方法可以获取Windows中安装PowerShell。每种安装方法旨在支持不同的方案。可以选择最符合需求的方法。

    • Winget 在 Windows 客户端上安装 PowerShell。(官方推荐)

      搜索最新的PowerShell 版本

      winget search Microsoft.PowerShell
      
      Name               Id                           Version Source
      ---------------------------------------------------------------
      PowerShell         Microsoft.PowerShell         7.2.5.0 winget
      PowerShell Preview Microsoft.PowerShell.Preview 7.3.0.6 winget
      

      安装指定版本的PowerShell

      winget install --id Microsoft.Powershell --source winget
      winget install --id Microsoft.Powershell.Preview --source winget
      
    • Microsoft Store 适用于Power Shell 临时用户进行安装的最简单的方式。(博主使用的方式)👌👌👌

      可以在MicroSofe Store网站或者Windows应用商店中搜索PowerShell,点击 获取 即可。

  3. 配置与美化Terminal

    安装成功后,cmd 打开可以看到一下界面(已经过美化的效果)

    image.png

    点击 导航栏 -> 下拉按钮 -> 进入设置页面

    • 设置默认终端模拟器,使所有命令行应用程序在其中运行,如需更改 其他配置请查看

    image.png

    • 设置主题、背景透明、磨砂效果

    image.png

    image.png

    • 最终效果

    image.png

  4. Scoop 安装

    • 为什么要安装Scoop

    1、Scoop是一款软件包管理工具,类似你电脑上的软件管家,只不过Scoop是命令行操作的。可以说是一款专门为程序员开发的软件管家,你不需要再一个一个的访问官网,然后找软件的安装包,而只需要一个命令,全部搞定
    2、它不同于普通软件管家,其最大的特点是可以自动配置环境变量,自动解决依赖冲突。也就是说如果你是一个java开发者,你只需要用Scoop下载jdk就可以直接使用java命令查看版本等,而不需要再自己配置JAVA_HOME等环境变量,Scoop已经为你做好了;如果你有使用不同的版本需求,也可以下载两个不同版本的jdk,然后使用命令 scoop reset xxx 来切换版本,非常方便。同理,Python等也可以进行管理。删除、更新也全部是命令搞定(下面会介绍)。更为舒服的是,如果你想换电脑或者重装系统的话(相同操作系统),可以直接将安装位置复制走,然后稍加操作就OK了,完全不用在一个一个的下载,你的数据也不会丢失。

    • 安装要求

    1. 用户名文件夹不含中文,不幸的是那你的用户名文件夹有中文名
    2. Windows 7 SP1+ / Windows Server 2008+
    3. Powershell 5 及以上(官网获取的一版是7+),.NET Framework 4.5 及以上
    $PSVersionTable.PSVersion.Major # 查看Powershell版本
    $PSVersionTable.CLRVersion.Major # 查看.NET Framework版本
    
    • 开始安装

      • scoop 安装的默认位置是(C:\Users\scoop),想安装到其他位置,使用PowerShell执行以下命令
      $env:SCOOP='D:\Applications\Scoop' 
      [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
      
      • 以管理员身份运行以下命令
      # Optional: Needed to run a remote script the first time
      Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 
      
      # install commond
      irm get.scoop.sh | iex
      

      这里需要注意一个问题 因为Scoop 是外网的访问很慢可能会导致超时,有以下解决几种解决方案
      方案一:添加报错信息中的网站到hosts(有失败的可能),具体方法百度
      方案二:使用国内的镜像进行安装,可以再 gitee 中搜索 方案三:科学上网工具,最直接可靠的方式。😏😏😏

      • 软件安装

      1)首先安装7zip,很多软件都需要使用它才能安装
      2)安装git
      3)安装curl
      4)安装jq

      # scoop instal 软件名
      
      scoop install 7zip
      scoop install git
      # curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。
      scoop install curl 
      # jq 是一个轻量级而且灵活的命令行 JSON 解析器,类似用于 JSON 数据的 sed 工具。
      scoop install jq 
      # Vim编辑的重构,支持所有的vim操作,并做了扩展等等
      scoop install neovim 
      # 可以使用 scoop search 软件名  查找是否有你需要的软件
      # 可以使用 scoop info 软件名 查看软件介绍
      # 如果第一次安装失败,需要先卸载,然后再次安装(自行探索即可知)
      # 如果某个软件有依赖它会自行安装,或安装完毕后提示你
      

      3)安装加速下载工具

      scoop install aria2  # 安装
      scoop config aria2-max-connection-per-server 16 # 修改配置,不改也行
      scoop config aria2-split 16
      scoop config aria2-min-split-size 1M
      
      # 如果不想使用了,除了直接删除,还可以
      scoop config aria2-enabled false
      # 想用的时候,把false改为true
      

      4) 更新命令

      scoop update [软件名]
      scoop update git
      
      # 一次性更新所有软件(必须在安装目录下使用)
      scoop update * 
      # 更新scoop,有时当你安装或其他操作时scoop会自行更新自己,由于软件数量和版本极多,更新频率会有点高
      scoop update 
      

      5) 卸载命令

      scoop uninstall git
      
    • scoop 其他的一些概念比如 bucket 等等可以参考 scoop官网

美化PowerShell Prompt(Windows)

对PowerShell的美化使用的是 Oh-My-Posh

oh-my-posh 是一款适用于能通过函数或者变量来轻松改变命令提示符shell的自定提示引擎。它支持windowmacOSLinux主流的三大操作系统。需要改变shell提示符只要选择不同已有或者编写.json.yml文件自定义主题的方式来配置和丰富终端界面提示的颜色。并且无论你使用的是那种shell,甚至是多个shell都可以通过oh-my-posh美化。

  • 安装准备

    1)在window上安装,官网建议是用的命令终端是Windows Terminal。
    2)推荐使用的字体是 Nerd Font。(使用其他字体安装成功后会导致乱码)

  • 安装oh-my-posh

    打开 PowerShell 提示符并运行以下命令:

    scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json
    
  • 应用Oh-My-Posh

    1) 编辑 $PROFILE.CurrentUserCurrentHost 文件

    • 使用vim编辑器方式打开
    nvim $PROFILE.CurrentUserCurrentHost
    
    • 使用电脑自带的笔记本(notepad)打开
    notepad $PROFILE.CurrentUserCurrentHost
    
        # set oh-my-posh theme here
        oh-my-posh init pwsh | Invoke-Expression
        #Alias
        Set-Alias ll ls
        Set-Alias less 'D:\soft\Git\usr\bin\less.exe'
        Set-Alias tig 'D:\soft\Git\usr\bin\git.exe'
        Set-Alias grep findstr
        Set-Alias vim nvim
        
        # $env:POSH_THEMES_PATH 可以替换为你电脑上安装oh-my-posh下的Themes目录如:`d:\scoop\oh-my-posh\current\themes\xxxx.omp.json`
    

    2) 运行 . $PROFILE
    3) 此时提示符会是oh-my-posh默认的主题,如图:

    image.png

    4) 更改主题

    • 使用Get-PoshThemes命令在window中预览对应主题效果,如图:

      image.png

    • 更改主题

        oh-my-posh init pwsh --config '$env:POSH_THEMES_PATH/1_shell.omp.json' | Invoke-Expression
      
    • 添加后,重新加载配置文件使更改生效

总结

  1. 在配置主题过程中会有提示符乱码的情况需要打开Terminal-> 设置->setting.json 文件。将字体改为安装好的 Nerd Font字体。(不是defaults属性中的,而是list属性中的才生效)
"list"[
            {
                "experimental.retroTerminalEffect": false,
                "font": 
                {
                    "face": "MesloLGMDZ NF",
                    "weight": "medium"
                },
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "intenseTextStyle": "bold",
                "name": "PowerShell",
                "opacity": 50,
                "source": "Windows.Terminal.PowershellCore"
            }
]
  1. oh-my-posh中已经有许多主题了,觉得不好看可以自己自定义主题。官网自定义主题文档