#系统环境

#新终端安装和 PowerShell 7

首先自然是全新的 Windows 终端了,颜值能力同步在线,再也不用去折腾 Cmder 类似的东西了,直接通过 windows 的应用商店安装即可。

Nerd Fonts 字体安装

终端显示图形,需要安装字体,可从Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher 选选择安装。

安装和配置 Oh My Posh

Oh My Posh

使用如下命令安装:

winget install oh-my-posh --source winget

Themes | Oh My Posh 中选择你喜欢的主题样式,以 grandpa-style 为例

# 打开 pwsh 的配置文件
notepad $PROFILE
# 在文件中添加以下内容
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\grandpa-style.omp.json" | Invoke-Expression

选用其他主题则自行替换上面代码中的 grandpa-style 即可。

安装并启用 posh-git

# 安装
PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
# 打开 pwsh 的配置文件
notepad $PROFILE
# 在文件中添加以下内容
Import-Module posh-git

#WSL 安装

参考官方文档安装 WSL | Microsoft Learn 逐步操作即可。

正常来说,只需要 wsl --install 即可,会默认安装 Ubuntu 系统, 如果你习惯于其他 linux 发行版,可通过 wsl -l -o 查看,然后通过 wsl install -d [发行版名称] 进行安装。

如果安装过程中出现错误,可通过https://learn.microsoft.com/zh-cn/windows/wsl/install-manual 的指南逐步安装即可。

接着可以更新下 Ubuntu 的系统环境

# 安装系统和软件更新
sudo apt update && sudo apt -y upgrade

Ubuntu 的系统环境
Ubuntu 的系统环境

#Docker

Windows 下 Docker 的安装也很简单, 去 Download Docker Desktop | Docker 下载运行安装包运行即可。

winget 上也提供了 Docker 的包,以下命令可直接安装。

winget install  Docker.DockerDesktop --source winget

完成安装后可在设置中开启如下配置,这样就可以在 wsl 中也调用 docker 了。

wsl Docker
wsl Docker

#SMB

SMB(Server Message Block)服务是一种网络文件共享协议,可以很方便的共享文件。

#启用 SMB 加密

虽然都是局域网的场景,但现在家庭中的联网设备越来越多,这些设备还都和外围相连,考虑传输的安全性,我们需要打开加密特性

使用如下为整个文件服务器启用 SMB 加密。

Set-SmbServerConfiguration –EncryptData $true

参阅 SMB 安全增强功能 | Microsoft Learn

#关闭 smbv1

上面说了开启 smb 加密,但是 smbv1 是不支持加密的,而且 smbv1 存在较多的安全漏洞,因此我们需关闭 smbv1, 同理以管理员身份开启的 pwsh 或 powershell 中执行下面命令即可。

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
# 以下为输出
FeatureName      : SMB1Protocol
DisplayName      : SMB 1.0/CIFS 文件共享支持
Description      : 支持 SMB 1.0/CIFS 文件共享协议和计算机浏览器协议。
RestartRequired  : Possible
State            : Enabled
CustomProperties :
                   ServerComponent\Description : 支持 SMB 1.0/CIFS 文件共享协议和计算机浏览器协议。
                   ServerComponent\DisplayName : SMB 1.0/CIFS 文件共享支持
                   ServerComponent\Id : 487
                   ServerComponent\Type : Feature
                   ServerComponent\UniqueName : FS-SMB1
                   ServerComponent\Deploys\Update\Name : SMB1Protocol

如果 State 为 Enable 则可以通过如下命令来禁止

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
是否立即重启计算机以完成此操作?
[Y] Yes  [N] No  [?] Help (default is "Y"): N
Path          :
Online        : True
RestartNeeded : True

会提醒重启,按需立即重启或后续手工重启均可。

参阅 如何在 Windows 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3 | Microsoft Learn

#OpenSHH 安装

目前 windows 中也可以直接使用 openSHH 了,直接在可选功能中进行安装即可,路径:设置( Win + I) -> 应用 -> 可选功能,如下图:

OpenSHH
OpenSHH

#Git

作为开发者, Git 自然是必不可少的工具,windows 下安装 Git 除了 Git for Windows 之外,现在还可通过 winget 进行安装。

# 搜索 git
winget show git
# 输出
名称   ID           源
---------------------------
My Git 9NLVK2SL2SSP msstore
Git    Git.Git      winget

# 安装 git
winget install --id Git.Git -e --source winget

#PowerToys

PowerToys 真好用,谁用谁知道,以下命令可一键安装:

winget install Microsoft.PowerToys --source winget

#其他可选

  • Scoop 可作为自带 winget 的补充

#开发环境

#node

#nvm

还是习惯使用 nvm 来管理 Nodejs 的版本,直接从 nvm-windows 下载安装即可。

为了高速使用,通常会配置好下载代理:

nvm node_mirror  https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/

安装需要的 nodejs 版本

nvm install v16.16.0

nvm
nvm

#包管理

虽然改配置文件就可以切换安装源,但是当你有多个仓库源需要来回切换时,比如公司内部的源,一个更方便的切换命令就不可少了,这里我选择 nrm 来作为快速切换工具。

使用如下命令进行安装:

npm install -g nrm open@8.4.2 --registry=https://registry.npmmirror.com

至于上面为什么不直接是 npm install -g nrm ,这是因为 node 更新后很多包默认使用了 esm,nrm 的一个依赖包就只提供了 esm 模块的导出,而 nrm 中还都是 commonjs 的导入,因此出错。

此问题自 2023.03 发现,至今(2023.06.17)依然存在。但没有发现更好的工具,暂时先将就吧。

#pnpm

在 Nodejs 自带的 npm 之外,还可以用 pnpm 。 pnpm 号称速度快 2 倍,同时 node_modules 中的所有文件均在一个位置应用时大部分是软连接,还内置 Monorepo 的支持。有啥不试试的理由呢。

#go

windows 安装 go 也是直接使用官网安装包即可。

只是务必不要忘记设置 GOPROXY,否则大概率会出现各种安装失败。此处我们使用七牛云 - Goproxy.cn 服务。

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

#多版本切换

在已经安装好 go 之后,如果有使用其他版本的需求就可以使用 go install 命令来进行其他版本的安装。

# 链接安装器
go install golang.org/dl/go1.18.10@latest
# 执行下载安装
go1.18.10 download
# 测试
go1.18.10 version

GO 多版本
GO 多版本

这是官方的方案,但使用其他版本时命令有所变化,必须得加上版本号 go -> go1.18.10 使用起来没那么顺手。类似的还有下面两个,go 这块我也还是半罐子,就不做推荐了。

#开发工具

#vscode

vscode 一个基本已经够了,官网下载安装即可, 至于配置以前有 settings sync, 现在只要登录下账号,之前的配置都可以自动同步。

#At End

每次切新设备,配置环境都需要花费不少的时间,虽然都有安装程序,但一次次点也是蛮麻烦的事情。 可以看到不少程序都在 winget 中都有提供,我在想是不是可以写个脚本,来一键完整安装。