Windows Terminal+ WSL2+CentOS8配置

Windows Terminal

一、安装

    在Windows商店中搜索并安装Windows Terminal


二、设置(官方文档)

1.全局设置globals

"defaultProfile": "{bf8b845c-8158-5f6b-9312-dc19678daafe}"   //设置默认启动Shell
"theme": "dark"   //设置深色主题
// 设置窗口大小位置
"initialCols": 150,
"initialRows": 40,
"centerOnLaunch": true,

2.唯一配置文件profiles

"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}"   //唯一标识符可以使用uuidgen生成
"hidden": ture  //隐藏不需要的Shell
"colorScheme": "Solarized Dark"   //配色方案
"startingDirectory" : "//wsl$/Centos/root"   //加载 shell 时所处的起始目录
"icon": "D:\\Centos\\a4km7-bzqtw.png"  //设置选项卡和下拉菜单中显示的图标(用于区分Linux发行版)

3.配色方案schemes

      {
            "name": "Solarized Dark",
            "black": "#002831",
            "red": "#d11c24",
            "green": "#33ff00",
            "yellow": "#a57706",
            "blue": "#2176c7",
            "purple": "#c61c6f",
            "cyan": "#259286",
            "white": "#eae3cb",
            "brightBlack": "#749B36",
            "brightRed": "#bd3613",
            "brightGreen": "#F2A20A",
            "brightYellow": "#ebcb8b",
            "brightBlue": "#50beff",
            "brightPurple": "#5956ba",
            "brightCyan": "#00e5e5",
            "brightWhite": "#fcf4dc",
            "background": "#001e27",
            "foreground": "#708284"
        }

4.快捷键、操作keybindings

参考官方文档

image.png

5.我的配置

// This file was initially generated by Windows Terminal 1.0.1401.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{bf8b845c-8158-5f6b-9312-dc19678daafe}",

    // You can add more global application settings here.
    // To learn more about global settings, visit https://aka.ms/terminal-global-settings

    // If enabled, selections are automatically copied to your clipboard.
    "copyOnSelect": false,

    // If enabled, formatted data is also copied to your clipboard
    "copyFormatting": false,
    "theme": "dark",
    "initialCols": 150,
    "initialRows": 40,
    "centerOnLaunch": true,


    // A profile specifies a command to execute paired with information about how it should look and feel.
    // Each one of them will appear in the 'New Tab' dropdown,
    //   and can be invoked from the commandline with `wt.exe -p xxx`
    // To learn more about profiles, visit https://aka.ms/terminal-profile-settings
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
            {
                // 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": true,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "colorScheme": "Solarized Dark",
                "startingDirectory" : "//wsl$/Ubuntu/home/jon",
                "icon": "D:\\Centos\\a2dab-79m0s.png",
                //"acrylicOpacity": 0.8, //背景透明度
                //"useAcrylic": true, // 启用毛玻璃
             },
             {
                "guid": "{bf8b845c-8158-5f6b-9312-dc19678daafe}",
                "hidden": false,
                "name": "Centos",
                "source": "Windows.Terminal.Wsl",
                "colorScheme": "Solarized Dark",
                "startingDirectory" : "//wsl$/Centos/root",
                "icon": "D:\\Centos\\a4km7-bzqtw.png",
                "backgroundImage": "F:\\1920x1080.jpg",
                "backgroundImageOpacity": 0.35,
                "acrylicOpacity": 0.8,
                "useAcrylic": true
            }
        ]
    },

    // Add custom color schemes to this array.
    // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
    "schemes": [
        {
            "name": "Solarized Dark",
            "black": "#002831",
            "red": "#d11c24",
            "green": "#33ff00",
            "yellow": "#a57706",
            "blue": "#2176c7",
            "purple": "#c61c6f",
            "cyan": "#259286",
            "white": "#eae3cb",
            "brightBlack": "#749B36",
            "brightRed": "#bd3613",
            "brightGreen": "#F2A20A",
            "brightYellow": "#ebcb8b",
            "brightBlue": "#50beff",
            "brightPurple": "#5956ba",
            "brightCyan": "#00e5e5",
            "brightWhite": "#fcf4dc",
            "background": "#001e27",
            "foreground": "#708284"
        },
        {
            "name": "Homebrew",
            "black": "#000000",
            "red": "#FC5275",
            "green": "#00a600",
            "yellow": "#999900",
            "blue": "#6666e9",
            "purple": "#b200b2",
            "cyan": "#00a6b2",
            "white": "#bfbfbf",
            "brightBlack": "#666666",
            "brightRed": "#e50000",
            "brightGreen": "#00d900",
            "brightYellow": "#e5e500",
            "brightBlue": "#0000ff",
            "brightPurple": "#e500e5",
            "brightCyan": "#00e5e5",
            "brightWhite": "#e5e5e5",
            "background": "#283033",
            "foreground": "#00ff00"
        }
    ],

    // Add custom keybindings to this array.
    // To unbind a key combination from your defaults.json, set the command to "unbound".
    // To learn more about keybindings, visit https://aka.ms/terminal-keybindings
    "keybindings":
    [
        // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
        // These two lines additionally bind them to Ctrl+C and Ctrl+V.
        // To learn more about selection, visit https://aka.ms/terminal-selection
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
        { "command": "paste", "keys": "ctrl+v" },

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

        // Press Alt+Shift+D to open a new pane.
        // - "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" }
    ]
}


适用于 Linux 的 Windows 子系统(WSL2)官方文档

一、安装

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

重新启动计算机

备注

  • 对于 x64 系统:版本 1903 或更高版本,采用内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2。 使用 Windows Update更新 Windows 版本。

若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。

二、启用虚拟机功能

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动计算机,以完成 WSL 安装并更新到 WSL 2。

三、下载 Linux 内核更新包

  • 适用于 x64 计算机的 WSL2 Linux 内核更新包

如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符cmd,并输入:systeminfo | find "系统类型"

四、 将 WSL 2 设置为默认版本

以管理员的身份打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

将wsl1转换成wsl2

 wsl --set-version Centos 2

五、其他

设置Centos分发为默认值

wslconfig /s Centos

显示已安装的分发及其版本

wsl -l -v

删除安装的分发版本:注销后删除分发版本所在目录

wsl --unregister <分发版>

在命令行运行linux命令

#查wsl2 IP
wsl ip a |wsl grep -w "inet" |wsl cut -d " " -f 6 |wsl cut -d "/" -f 1 | wsl grep -v '127.0.0.1'


安装CentOS8

一、下载 Centos 8 的docker 镜像官方镜像

选择CentOS8分支并下载

二、安装 Chocolatey

Chocolatey 是 Win­dows 环境下的包管理器,其作用等同于 Mac OS 的 Brew,Ubuntu 的 apt,Cen­tOS 的 yum。官方文档。
以管理员的身份打开 PowerShell:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

三、安装 LxRunOffline

一款非常实用的 WSL 管理软件:LxRunOffline,它可以安装任意发行版到任意目录、转移已安装的 WSL 目录、备份 WSL、设置默认用户和修改环境变量等操作

以管理员的身份打开 PowerShell:

choco install lxrunoffline
`l` , `list` - 列出所有已安装的发行版。
`gd` , `get-default` - 获取 bash.exe 使用的默认发行版。
`sd` , `set-default` - 设置 bash.exe 使用的默认发行版。
`i` , `install` - 安装新的发行版。
`sd` , `set-default` - 设置 bash.exe 使用的默认发行版。
`ui` , `uninstall` - 卸载发行版。
`rg` , `register` - 注册现有的安装目录。
`ur` , `unregister` - 取消注册发行版但不删除安装目录。
`m` , `move` - 将发行版移动到新目录。
`d` , `duplicate` - 在新目录中复制现有发行版。
`e` , `export` - 将发行版的文件系统导出到`.tar.gz` 文件,该文件可以通过 `install` 命令安装。
`r` , `run` - 在发行版中运行命令。
`di` , `get-dir` - 获取发行版的安装目录。
`gv` , `get-version` - 获取发行版的文件系统版本。
`ge` , `get-env` - 获取发行版的默认环境变量。
`se` , `set-env` - 设置发行版的默认环境变量。
`ae` , `add-env` - 添加到发行版的默认环境变量。
`re` , `remove-env` - 从发行版的默认环境变量中删除。
`gu` , `get-uid` - 获取发行版的默认用户的 UID。
`su` , `set-uid` - 设置发行版的默认用户的 UID。
`gk` , `get-kernelcmd` - 获取发行版的默认内核命令行。
`sk` , `set-kernelcmd` - 设置发行版的默认内核命令行。
`gf` , `get-flags` - 获取发行版的一些标志。
`sf` , `set-flags` - 设置发行版的一些标志。
`s` , `shortcut` - 创建启动发行版的快捷方式。
`ec` , `export-config` - 将发行版配置导出到 XML 文件。
`ic` , `import-config` - 从 XML 文件导入发行版的配置。
`sm` , `summary` - 获取发行版的一般信息。

四、LxRunOffline安装CentOS8

LxRunOffline install -n  -d <安装路径> -f <安装包路径>.tar.gz
LxRunOffline install -n Centos -d D:/Centos -f .\centos-8-x86_64.tar.xz

五、运行CentOS

Windows Terminal可以通过设置defaultProfile自启动

LxRunOffline run -n Centos
或
wsl -d Centos

六、其他

查看与迁移目录

LxRunOffline di -n Centos
LxRunOffline m -n  -d <路径>

备份 WSL

LxRunOffline e -n  -f <压缩包路径>.tar.gz
LxRunOf­fline 备份完会生成一个.xml后缀的同名配置文件。

恢复 WSL

LxRunOffline i -n  -d <安装路径> -f <压缩包路径>.tar.gz
LxRunOf­fline 会读取备份时生成的配置文件并写入配置,前提是同目录且同名。否则你需要加入-c参数指定配置文件。

修改 WSL 名称

查看 WSL 名称。
wsl -l

查看 WSL 安装目录。
LxRunOffline di -n 

导出指定的 WSL 配置文件到目标路径。
LxRunOffline ec -n  -f <配置文件路径>.xml
配置信息可以输入LxRunOffline sm -n 查看

取消注册(这个操作不会删除目录)
LxRunOffline ur -n 

使用新名称注册
LxRunOffline rg -n  -d  -c <配置文件路径>.xml

CentOS8设置

安装完成后登录用户默认为root,如想使用其他用户请使用LxRunOffline更改默认用户

一、中文支持

dnf install langpacks-zh_CN
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
echo 'LANG="zh_CN.UTF-8"' >> /etc/profile

二、Oh My Zsh

dnf install git zsh util-linux-user vim wget epel-release
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone git://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

vi ~/.oh-my-zsh/themes/my.zsh-theme 设置自用主题

local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT='${ret_status}$USER@%m %{$fg[cyan]%}%d %{$reset_color%}$(git_prompt_info)'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

.zshrc设置

#修改主题与插件
ZSH_THEME="my"
plugins=(git zsh-syntax-highlighting zsh-autosuggestions wd zsh_reload extract)
#添加vi别名支持颜色高亮
alias vi=vim

三、其他

开启SSH登录

#安装openssh-server
dnf install openssh-server
#自动添加wsl2IP到hosts
https://github.com/shayne/go-wsl2-host/releases
#查看windows防火墙转发规则
netsh interface portproxy show all
#添加转发使用别名替代WSL2 IP
netsh interface portproxy add v4tov4 listenport=【宿主机windows平台监听端口】 listenaddress=0.0.0.0 connectport=【wsl2平台监听端口】 connectaddress=【wsl2平台ip】
netsh interface portproxy add v4tov4 listenport=22 connectaddress=ubuntu.wsl connectport=22 listenaddress=* protocol=tcp
#删除转发
netsh interface portproxy delete v4tov4 listenport=【宿主机windows平台监听端口】 listenaddress=0.0.0.0
#查看wsl2 IP
wsl ip a |wsl grep -w "inet" |wsl cut -d " " -f 6 |wsl cut -d "/" -f 1 | wsl grep -v '127.0.0.1'

在Windows中访问wsl文件

打开文件资源管理器,然后在窗口输入 \\wsl$

更新Win11后无法启动

wsl --update

你可能感兴趣的:(Windows Terminal+ WSL2+CentOS8配置)