Blog

  • 又一个 WP 表单插件,付费版只要 $1 起,买到就是血赚

    又一个 WP 表单插件,付费版只要 $1 起

    去年底为了做一个新项目,试了很多付费 wp 表单插件,买过 wpFormsFluentForms ,前者 Basic 套餐 $39.50/ year ,后者一个网站每年 $59.00 ,虽然都符合我的要求,但感觉都挺贵的。

    这类 wp 表单插件,我急需的功能除了需要 File Upload 和 Conditional Logic 之外,还有就是第三方集成,当然是越多越好,这点 FluentForms 比 wpForms 定价稍微厚道点,但都不如今天介绍的这个 Bit Form

    又一个 WP 表单插件,付费版只要 $1 起

    Bit Form 是一个新的 wp 表单插件,似乎和国外著名的 Zoho 有千丝万缕的联系,Zoho 提供各种各样的 SaaS 服务,好像很多外贸人在用 Zoho CRM ,这个 Bit Form 可以和 Zoho CRM 集成,当然啦,其他的第三方服务比如 Mailchimp 正在开发中,各位可以先买个 $1 终生有效的 License ,现在不买将来一定后悔!

  • DigitalOcean 推出高性能 VPS

    DigitalOcean 推出高性能 VPS

    DigitalOcean 经典的5美刀每月1核1G套餐非常著名,是很多国人海外建站的首选。近日继 Vultr 之后,DigitalOcean 也推出了高性能版:主机使用了更高性能的 Intel/AMD CPU,采用速度更快的 NVMe SSD ,而价格仅仅比普通版本配置相同的情况下 $5 每月贵了 $1 每月。

    DigitalOcean 的高性能服务器搭建的 WordPress 比普通的版本更快,因为 CPU 和内存,以及 SSD 都有更好的性能。如果你不太会搭建 LEMP 或者 LAMP 服务器环境,可以使用类似 RunCloud 这样的服务,比起我使用的 Cloudways 而言,相对来说更自由一些。因为 RunCloud 使用你自己购买的 DigitalOcean Droplet ,拥有完整的权限,除了建站之外,还可以折腾点别的。

  • FreeBSD 12 使用 latest 软件源

    FreeBSD pkg 包管理器的官方源配置是 /etc/pkg/FreeBSD.conf ,请先检查该文件内容。注意其中的 url 参数配置了官方仓库的地址,我们需要把它替换为镜像站的地址。

    该配置文件是 FreeBSD 基本系统的一部分,会随着 freebsd-update 更新,请不要直接修改,而是创建 /usr/local/etc/pkg/repos/FreeBSD.conf 覆盖配置,文件内容如下:

    sudo mkdir -p /usr/local/etc/pkg/repos/
    sudo cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/

    现在 /usr/local/etc/pkg/repos/FreeBSD.conf 的内容为:

    # $FreeBSD: releng/12.2/usr.sbin/pkg/FreeBSD.conf.quarterly 346780 2019-04-27 04:00:50Z cperciva $
    #
    # To disable this repository, instead of modifying or removing this file,
    # create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
    #
    #   mkdir -p /usr/local/etc/pkg/repos
    #   echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
    #
    
    FreeBSD: {
      url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
      mirror_type: "srv",
      signature_type: "fingerprints",
      fingerprints: "/usr/share/keys/pkg",
      enabled: yes
    }

    如果要使用滚动更新的 latest 仓库,把 url 配置最后的 quarterly 换成 latest 即可。之后使用 sudo pkg update -f 强制更新 pkg 索引。

    pengjiayou@freebsd-s-1vcpu-1gb-sfo3-01:~ % sudo pkg update -f
    Updating FreeBSD repository catalogue...
    pkg: Repository FreeBSD has a wrong packagesite, need to re-create database
    Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
    Fetching packagesite.txz: 100%    6 MiB   6.4MB/s    00:01
    Processing entries: 100%
    FreeBSD repository update completed. 30336 packages processed.
    All repositories are up to date.
    pengjiayou@freebsd-s-1vcpu-1gb-sfo3-01:~ % sudo pkg update -f
    Updating FreeBSD repository catalogue...
    Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
    Fetching packagesite.txz: 100%    6 MiB   6.4MB/s    00:01
    Processing entries: 100%
    FreeBSD repository update completed. 30336 packages processed.
    All repositories are up to date.
    pengjiayou@freebsd-s-1vcpu-1gb-sfo3-01:~ % sudo pkg upgrade
    Updating FreeBSD repository catalogue...
    FreeBSD repository is up to date.
    All repositories are up to date.
    New version of pkg detected; it needs to be installed first.
    The following 1 package(s) will be affected (of 0 checked):
    
    Installed packages to be UPGRADED:
    	pkg: 1.16.1 -> 1.16.2
    
    Number of packages to be upgraded: 1
    
    7 MiB to be downloaded.
    
    Proceed with this action? [y/N]: y
    [1/1] Fetching pkg-1.16.2.txz: 100%    7 MiB   6.9MB/s    00:01
    Checking integrity... done (0 conflicting)
    [1/1] Upgrading pkg from 1.16.1 to 1.16.2...
    [1/1] Extracting pkg-1.16.2: 100%
    Updating FreeBSD repository catalogue...
    FreeBSD repository is up to date.
    All repositories are up to date.
    Checking for upgrades (11 candidates): 100%
    Processing candidates (11 candidates): 100%
    The following 12 package(s) will be affected (of 0 checked):
    
    New packages to be INSTALLED:
    	libyaml: 0.2.5
    
    Installed packages to be UPGRADED:
    	nano: 5.4 -> 5.5
    	py37-acme: 1.10.1,1 -> 1.11.0,1
    	py37-certbot: 1.10.1,1 -> 1.11.0,1
    	py37-certbot-nginx: 1.10.1 -> 1.11.0
    	py37-markupsafe: 1.1.1 -> 1.1.1_1
    	py37-pytz: 2020.1,1 -> 2020.5,1
    	py37-yaml: 5.3.1 -> 5.3.1_1
    	readline: 8.0.4 -> 8.1.0
    	vim-console: 8.2.2263 -> 8.2.2263_1
    	wget: 1.20.3_1 -> 1.21
    	zstd: 1.4.5_1 -> 1.4.8
    
    Number of packages to be installed: 1
    Number of packages to be upgraded: 11
    
    The process will require 1 MiB more space.
    9 MiB to be downloaded.
    
    Proceed with this action? [y/N]: y
    [1/12] Fetching zstd-1.4.8.txz: 100%  504 KiB 516.6kB/s    00:01
    [2/12] Fetching wget-1.21.txz: 100%  676 KiB 691.7kB/s    00:01
    [3/12] Fetching vim-console-8.2.2263_1.txz: 100%    6 MiB   6.3MB/s    00:01
    [4/12] Fetching readline-8.1.0.txz: 100%  362 KiB 370.5kB/s    00:01
    [5/12] Fetching py37-yaml-5.3.1_1.txz: 100%  154 KiB 157.3kB/s    00:01
    [6/12] Fetching py37-pytz-2020.5,1.txz: 100%  159 KiB 162.3kB/s    00:01
    [7/12] Fetching py37-markupsafe-1.1.1_1.txz: 100%   20 KiB  20.7kB/s    00:01
    [8/12] Fetching py37-certbot-nginx-1.11.0.txz: 100%   64 KiB  65.7kB/s    00:01
    [9/12] Fetching py37-certbot-1.11.0,1.txz: 100%  382 KiB 391.3kB/s    00:01
    [10/12] Fetching py37-acme-1.11.0,1.txz: 100%   65 KiB  66.3kB/s    00:01
    [11/12] Fetching nano-5.5.txz: 100%  543 KiB 556.3kB/s    00:01
    [12/12] Fetching libyaml-0.2.5.txz: 100%   71 KiB  72.9kB/s    00:01
    Checking integrity... done (0 conflicting)
    [1/12] Upgrading readline from 8.0.4 to 8.1.0...
    [1/12] Extracting readline-8.1.0: 100%
    [2/12] Upgrading py37-pytz from 2020.1,1 to 2020.5,1...
    [2/12] Extracting py37-pytz-2020.5,1: 100%
    [3/12] Upgrading py37-acme from 1.10.1,1 to 1.11.0,1...
    [3/12] Extracting py37-acme-1.11.0,1: 100%
    [4/12] Upgrading py37-certbot from 1.10.1,1 to 1.11.0,1...
    [4/12] Extracting py37-certbot-1.11.0,1: 100%
    [5/12] Installing libyaml-0.2.5...
    [5/12] Extracting libyaml-0.2.5: 100%
    [6/12] Upgrading zstd from 1.4.5_1 to 1.4.8...
    [6/12] Extracting zstd-1.4.8: 100%
    [7/12] Upgrading wget from 1.20.3_1 to 1.21...
    [7/12] Extracting wget-1.21: 100%
    [8/12] Upgrading vim-console from 8.2.2263 to 8.2.2263_1...
    [8/12] Extracting vim-console-8.2.2263_1: 100%
    [9/12] Upgrading py37-yaml from 5.3.1 to 5.3.1_1...
    [9/12] Extracting py37-yaml-5.3.1_1: 100%
    [10/12] Upgrading py37-markupsafe from 1.1.1 to 1.1.1_1...
    [10/12] Extracting py37-markupsafe-1.1.1_1: 100%
    [11/12] Upgrading py37-certbot-nginx from 1.10.1 to 1.11.0...
    [11/12] Extracting py37-certbot-nginx-1.11.0: 100%
    [12/12] Upgrading nano from 5.4 to 5.5...
    [12/12] Extracting nano-5.5: 100%
  • Regolith, 基于 i3 的 Ubuntu 发行版

    Regolith, 基于 i3 的 Ubuntu 发行版

    刚刚介绍过 instantOS ,突然觉得这种平铺式窗口管理器非常新颖,其实这种东西存在很久了,比如 i3wmbspwmawesomewmdwm 等等都属于这类,写这篇文章的时候才发现 dwm 好像是前面提到的几个的老祖宗,i3 之类的都是 fork 自它这个项目。

    接触开源软件 10 多年了,因为不是学计算机的,很多东西不懂,之前根本就没听说过还有平铺式窗口管理器这种东西,直到在学习 FreeBSD 12.2 的时候无意中在这个频道的其他视频了解到 Arch+i3 , Arch+dwm 的安装和配置方法。

    本来想试试安装一下 FreeBSD+i3wm 的,或者直接装 instantOS 玩玩,一方面由于它还在 Beta ,二是因为之前用过 Manjaro ,对滚动更新不是太感冒,滚着滚着就把 XFCE 的 branding 搞没了;FreeBSD 吧用作桌面的太少了,很多软件没有,对硬件支持也不好,于是作罢。

    昨天晚上在 Omgubuntu 上看到一个叫 Regolith 的桌面系统。眼前一亮,好像捡到宝了:有现成的 iso 可以下载,装完系统 i3 就自动帮你配置好了。基本上就是一个基于 Ubuntu 的非官方 flavor ,Ubuntu 的 apt 包管理器,snap 可以直接用。i3 这种平铺式窗口管理器好在哪呢:桌面极简,没有乱七八糟、花里胡哨的东西;系统组件很小很少,资源占用低;平铺式窗口,最大化利用显示器的空间;使用快捷键新建或操作窗口大小,很 Geek 。

    Regolith 的文档很全面,可以看看先!有空肯定装在我的 X250 上练练手。

  • instantOS, 一个超级轻量极具特色的 Linux 发行版

    instantOS, 一个超级轻量极具特色的 Linux 发行版

    instantOS 是一个开发中的基于 Arch Linux 的发行版,超级轻量、极具特色。

    instantOS 使用自己开发的 instantWM (基于 dwm)窗口管理器,拥有极简的桌面设计,非常轻量,占用内存少,反应超快。此外,instantOS 还使用了大量自己开发的系统组件,比如 instantLOCK 「默认的登录窗口」,instantMENU「系统菜单」,instantNOTIFY「通知中心」,instantARCH「系统安装界面」等等,相比常见的使用 Gnome3 ,或 KDE ,或者 XFCE4 的发行版,instantOS 简直是一种非常有特色的存在。

    Instant OS beta 5 | Distro Delves LIVE

    看了上面的演示视频,instantOS 是不是非常有极客范儿😁 由于 instantOS 基于 Arch ,所以拥有 Manjaro 有的一切特性:比如滚动更新,比如世界上最齐全最新的软件仓库 AUR ,等等。如果你厌倦了常见的 Linux 桌面(窗口管理器),你可以试试 instantOS ,目前还在 Beta5, 相信正式版很快就要来了。

  • Ubuntu Server 初始化配置

    刚入门 Linux 的时候我清楚的记得我装的是 Fedora 9 操作系统,也不知道后来到底什么时候彻底转向了 Ubuntu ,也许是 Ubuntu 更适合桌面环境吧,反正就是偏爱 Deb 系多一点。VPS 上也更喜欢用 Ubuntu Server ,因为社区支持很友好,因为我什么都要去搜索才会弄。

    每次购买一台新的 VPS 之后总有一些重复动作,挺麻烦的,与其每次去 Google 搜索一些必要的初始化设置教程,还不如自己整理一篇,以后只看我自己的这篇『Ubuntu Server 初始化配置』就可以了,省时省力。

    更新 Ubuntu 系统

    当你买一台 VPS ,装好 Ubuntu 服务器版操作系统之后,首先执行下列命令把系统更新到最新状态,包括厂商预装的一些组件和内核等。

    sudo apt update
    sudo apt list --upgradable
    sudo apt upgrade

    升级完成之后是时候清理一下了:

    sudo apt autoremove
    sudo apt clean

    添加新用户,并且添加 root 权限

    当一台 VPS 的系统安装完成之后,通常给你一个 root 账户。其实这是废话,要不然不可能有权限升级系统了。大多数云主机在安装 Ubuntu 系统后,默认都是用 root 账户登录的。用 root 账户非常危险,还是养成好习惯,用普通用户登录,然后执行 sudo 比较安全点。

    先用这个命令新建一个叫 ubuntu 的普通用户:

    sudo adduser ubuntu

    创建完这个用户后,如果想用它来执行一些系统级命令,可以把它加进 sudo 群组,这样就可以用 sudo 命令了:

    sudo usermod -a -G sudo ubuntu

    默认情况下,sudo 用户每次都是要输入密码的,如果你觉得麻烦,可以考虑关掉它。执行下面这条命令进行 sudo 配置文件编辑模式:

    sudo visudo

    把配置文件中的:

    %sudo   ALL=(ALL:ALL) ALL

    改成:

    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL

    这样,sudo 执行命令就再也不用输入密码了。

    配置 SSH 登录及 SSH Server 安全设定

    从自己的电脑上使用 ssh 登录这个远程 Ubuntu Server 的时候每次都需要输入密码,我们可以给这台 Ubuntu Server 上的 ubuntu 用户设置 SSH Key 来登录,这样就不用输入密码了。如果你本地的 Ubuntu Desktop 或者 macOS 或者其它 Linux 桌面还没有 SSH 密钥 ,先使用下列命令生成:

    ssh-keygen -t RSA -b 2048

    生成的密钥存放在 ~/.ssh 目录下,如果配置 SSH Key 登录,只需将本地的 ~/.ssh/id_rsa.pub 文件中的内容拷贝到远程 Ubuntu Server 的 ~/.ssh/authorized_keys 文件中即可。

    mkdir -p ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

    你也可以直接使用 ssh-copy-id 这个命令自动完成上面的这几个步骤。

    ssh-copy-id ubuntu@ubuntu_server_ip

    之后你就可以使用 ssh ubuntu@ubuntu_server_ip 这个命令来登录 Ubuntu 服务器了。

    有些云主机后台可以自己添加你的 ssh 密钥并且关联到你的某台 vps 上,其实就是你本地电脑上的 ~/.ssh/id_rsa.pub 文件中的内容,你可以执行下面的命令查看它,然后复制粘贴到主机管理后台,系统会自动把这个 ssh 公钥添加到与之关联的 Ubuntu 服务器的默认用户的 .ssh/authorized_keys 文件中从而省去上述一些步骤。

    cat ~/.ssh/id_rsa.pub

    因为 ubuntu 这个普通用户已经有了 sudo 命令权限,保留 root 这个用户的 ssh 登录权限不安全,可以考虑禁止 root 用户使用 ssh 登录 Ubuntu 服务器。编辑 SSH 配置文件:

    sudo nano /etc/ssh/sshd_config

    把 PermitRootLogin 设置成 no,用于禁止 root 登录:

    PermitRootLogin no

    把 PasswordAuthentication 设置成 no,禁止使用密码登录,因为我们已经配置了 SSH Key 来登录,更安全:

    PasswordAuthentication no

    改 Port 为其他数字,因为大家都直到 ssh 默认的端口号是 22 ,所以改成其他数字更安全,但是记得防火墙规则也要更新。

    Port 2345

    重启 SSH Server 让上面的设置生效:

    sudo systemctl restart sshd.service

    设置 ssh 超时自动断开连接:

    echo 'TMOUT=300' >> .bashrc

    这个命令的意思是在 ssh 连接 5 分钟没有活动之后自动断开连接。

    其它相关的东西,你可以查看 Tualatrix 大神的文章

  • 升级到了 Windows 10 20H2

    Windows 10 20H2

    Windows 10 2004 版已经发布半年多了,我好几台设备只有很老的一台 ThinkPad X250 收到了更新推送,手上这台 Legion R7000 却始终检测不到更新。后来听闻 v2004 的“优化驱动器”功能存在 bug ,可能会降低 SSD 使用寿命,虽然后来好像看到过微软发布更新解决了这个问题,但是那时候离 20H2 发布已经不远了。

    Windows 10 20H2 已经发布快 3 个星期,这个更新主要是优化 2004 也就是“5月更新”的已知问题,稳定性肯定是毋庸置疑的,但是 Windows Update 始终检测不到,今天终于忍无可忍,通过微软官方的“Windows 10 易升”程序手动从 1909 升级到了 20H2 .

    升级过程还是挺顺利的,大概花了1个小时。重启之后一切正常,系统一如既往的流畅。新的开始菜单确实更漂亮了。更新之后没有发现啥问题,是时候删除之前的 Windows 安装文件了。

    升级到了 Windows 10 20H2

    删除之前的 Windows 安装文件

    Windows 10 更新的时候并没有删除老版本的 Windows 安装文件,会在 C 盘以 “Windows.old” 的文件夹保留,由于我升级到 20H2 之后没有发现啥问题,所以删除老的 Windows 安装文件可以节省磁盘空间,减少系统资源占用。

    升级到了 Windows 10 20H2

    进入设置 > 系统 > 存储,进入“临时文件”,选中“以前的 Windows 安装文件”和“Windows 更新清理”,等待系统删除即可。

    Windows 10 20H2 找不到小娜(Cortana)了

    通过搜索发现,小娜现在不再是系统组件,而是独立 App ,20H2 没有自带小娜,但是任务栏上 Cortana 的图标还在,只是点击后没有小娜弹出来,你可以去 Microsoft Store 搜索安装即可。

  • 转投 1Password 一年多之后重置了 LastPass 密码箱

    转投 1Password 一年多之后充值了 LastPass 密码箱

    『小孩没娘,说来话长』,大概一年半之前看了 TESTV 的评测,发现 1Password 比我之前持续用了很多年的 LastPass 好用的多,于是就果断付费上车了。从 LastPass 导出数据库然后导入 1Password 从此密码管理体验前所未有的丝般润滑……

    自从 Dropbox 限制设备数量之后我就迁移到了 OneDrive ,但是昨天,对,又是半年多以后,我才想起来在 iOS 上装一个 OneDrive ,装这个 APP 的时候发现了微软的 Microsoft Authenticator ,于是就开始评估要不要把所有的二步验证也从 Google Authenticator 转过来。

    已经弃用 LastPass 很久了,但是依然在 Google Authenticator 发现它的 2FA 验证码,于是就登录 Lastpass 后台打算停用它。在删除的过程中发现了重置账号的选项,只是藏的比较深。需要先进入 Account Settings ,然后在 General 选项卡中在 Account Information 的 Links 下进入 My Account, 然后你就可以看到重置按钮,该操作会删掉所有已保存的账号和密码,但不删除账号,因为我已经很久不用了,删掉保管箱会降低密码被泄露的风险。

  • 福利:VMware Fusion 12 个人用户免费

    福利:VMwear Fusion 12 个人用户免费

    印象中 Windows 下的 VMware Workstation 有个免费版(Workstation Player),但是对于 macOS 用户来说好像 VMware Fusion 一直是收费的,我7年前付费过。刚刚在这个视频发现,确实是如此,VMware Fusion 在 11 以前一直是收费的,不过 Fusion 12 Player 则对个人用户免费了。VMware 官方博客上月15号宣布了这一消息。

    macOS 下可用的虚拟机选项并不多,除了 Parallels DesktopWMware Fusion ,和 VirtualBox 之外,应该没别的了吧,它们在 macOS 下虚拟机的性能大概也是这个排序的,macOS Big Sur 即将发布,如果你不想再给 Parallels 交税,那么 Fusion 12 Player 应该是最好的选择,因为不管你之前有没有买过 Parallels 你都得付费,而且价格不菲😂

    免费下载 Windows 10 正版虚拟机镜像

    哦,对了,不知道多少人是在 macOS 下使用 Windows 虚拟机呢?如果你跟我一样,更加惊喜的免费福利还没完呢:Microsoft Edge 团队为 Edge 开发者提供了免费的正版 Windows 10 虚拟机镜像,可供你在安装 Fusion 12 之后导入使用。微软的初衷主要是让你测试 Edge 浏览器和 IE 11 ,但这个系统的功能是完整的。

    补充:这个正版 Windows 10 的序列号的有效期是 90 天,如果你想长期使用,在你刚刚导入这个镜像到 Fusion 12 Player 之后就创建一个快照,到期之后可以恢复这个快照,如此往复你就可以长期享受正版了。对了,这个虚拟机 Windows 10 的用户登录密码是 “Passw0rd!”

  • Windows 10 1909 安装 WSL2 的 Linux 子系统

    Windows 10 1909 安装 WSL2 的 Linux 子系统

    我记得 WSL2 刚刚发布的时候需要 Windows 10 2004 更新才行,不过早在今年8月20日微软就宣布 WSL2 可以安装在更早的 Windows 1903/1909 版,具体而言,只要你是 x64 的 CPU 你的 Windows 10 版本号是 1909 或 1903 ,操作系统版本号高于 18362 就可以安装 WSL2 了。和你的系统是否是专业版没关系,家庭版也是可以的。

    其实我安装 WSL2 之前没看到过微软官方博客,但是我在 WSL2 的文档中看到我的操作系统版本号是 18363 符合安装的条件(还是 Windows 10 1909 自动更新始终保持最新的),如果你的系统也还没有检测到 2004 ,亲测你可以尝试 WSL2 了。

    启用虚拟机平台和 Linux 子系统功能

    以管理员权限启动 PowerShell,然后输入以下命令启用 Linux 子系统功能:

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

    以管理员权限启动 PowerShell,然后输入以下命令启用虚拟机平台:

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

    到此,虽然 Powershell 没有提示我重启,但是听我的,启用虚拟机平台之后请重启电脑。

    安装 WSL2 的 Linux 内核

    点击这里并且安装 WSL2 的 Linux 内核: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

    设置 WSL2 为 Linux 子系统的默认版本

    关于 WSL1 和 WSL2 的区别我就不说了,感觉还是 WSL2 好。

    wsl --set-default-version 2

    如果执行上述命令之后 PowerShell 提示你“WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel”说明你的系统版本低于 1903 ,或者你没有安装上述内核文件。

    安装第一个 Linux 发行版

    打开微软商店应用,在搜索框中输入“Linux”然后搜索,你可以看到搜索结果中有很多的 Linux 发行版可以选择。选择一个你喜欢的 Linux 发行版本然后安装,我喜欢 Ubuntu ,安装了最新的 20.04 。

    设置已安装的 Linux 发行版

    当你的第一个 Linux 发行版比如 Ubuntu 安装成功之后,你就可以在开始菜单中找到它了,打开它

    按提示输入一个用户账号和密码即可,如果有问题,可以看这个视频教程。以后使用 Linux 子系统你既可以在这里操作,也可以安装 Windows Terminal 。

    安装 Windows Terminal

    Windows Terminal 支持多标签,可以方便的在多个 Linux 子系统和 Windows 命令中切换。建议在微软应用商店中安装,也就是本文第一张截图。