记录干杯

​( ゜- ゜)つロ 干杯 ~
开往

记录 Windows 上的一些习惯配置

前排建议

在下载 WSL 的时候,最好按照版本下载,比如下载 Ubuntu-18.04 而不是 Ubuntu 这种不带后缀的。而且,WSL1 与 Ubuntu 20.04 之间的兼容性存在问题,用 WSL1 最好使用 Ubuntu-18.04 这个版本。

配置

右下角时间显示秒数

在 Windows 10 2004 测试通过。

教程参考自:怎么样让 Windows10 右下角的时间显示秒钟-百度经验

  1. win 键 + Q 呼出搜索窗口,然后输入 reg,打开第一项:注册表编辑器

  2. 在地址栏粘贴下面的文本,然后回车:

     HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced
  3. 在窗口的右侧右键,新建,DWORD(32 位)值,命名为 ShowSecondsInSystemClock

  4. 双击建好的列表项,将值改为 1

  5. 在任务管理器里重启「Windows 资源管理器」,或者直接重启电脑就可以了

右键菜单添加 Windows Terminal

Windows Terminal 已经自带这个功能了。

点击查看之前的解决方案

在 Windows 10 2004 测试通过。

教程参考自:将 Windows Terminal 添加到右键菜单 · GitHub

  1. 新建 .reg 文件,内容如下(注意需要替换自己的用户名):

      Windows Registry Editor Version 5.00
    
      [HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
      @="Windows Terminal Here"
    
      [HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
      @="C:\\Users\\你的用户名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
  2. 双击运行,即可添加到右键菜单

  3. 还需要修改 Terminal 的路径为当前路径。打开 Windows Terminal 的设置,添加下面这一行:

     "startingDirectory": null

    添加完成后是这个样子的:

    {
      "profiles": {
        "defaults": {},
        "list": [
          {
            // Make changes here to the powershell.exe profile.
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false,
            "startingDirectory": null
          }
        ]
      }
    }

WSL2 中代理的设置

在 Windows 10 2004 & WSL Ubuntu 20.04 测试通过。

教程参考自:WSL2 网络代理配置(apt 与 git) - 知乎

bash 代理

  1. 在设置中查看本机的局域网 IP 地址:设置 > 网络和 Internet > 状态 > 中间 属性 按钮 > 最下面的 IPv4 地址

  2. 在 WSL 中输入下面命令,打开 Bash 的设置:

    sudo vim ~/.bashrc
  3. 文件最后添加:

    export http_proxy="http://192.168.1.77:10809"
    export https_proxy="http://192.168.1.77:10809"

    IP 地址填上面查询的(我这里是 192.168.1.77)代理的 HTTP 端口号是 10808,代理需要开启「允许来自局域网的访问」

  4. 重启 Terminal 进入 WSL 即可,可以输入 curl www.google.com 测试是否成功连接网络

npm 代理

输入下面两条命令,IP 地址和上面的一样(我这里是 192.168.1.77),端口用的是代理软件的 HTTP 端口:

npm config set proxy http://192.168.1.77:10809
npm config set https-proxy http://192.168.1.77:10809

让 WSL 中的 bash 自动补全忽略大小写

参考自:bash - “set completion-ignore-case on ” ignored in ~/.inputrc - Stack Overflow

~/.inputrc 文件中添加:

set completion-ignore-case on

然后重新打开 bash 即可。

问题

安装 cnpm 后,命令行运行报错

错误提示: cnpm : 无法加载文件 C:\Users\XXX\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。

教程参考自:cnpm - 解决 ” cnpm : 无法加载文件 C:\Users\93457\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息 。。。 ” - 武卡卡 - 博客园

  1. win 键 + x,打开 Windows Powershell(管理员)

  2. 输入命令:

    set-ExecutionPolicy RemoteSigned
  3. 输入 A,选择「全是」,就可以了

使用 WSL2 时,Webpack 无法 Hot Reloading

这个是 WSL2 的缺陷。

参考:[WSL2] File changes made by Windows apps on Windows filesystem don’t trigger notifications for Linux apps · Issue #4739 · microsoft/WSLComparing WSL 2 and WSL 1 | Microsoft Docs

WSL2 读写 Windows 文件系统中的文件时,性能不行,也不支持热重载的特性,因此最好把 WSL2 降级成 WSL1:

wsl --set-version ubuntu 1
正在进行转换,这可能需要几分钟时间...
转换完成。

这个要在 PowerShell 中执行。

在 WSL1 和 Ubuntu 20.04 中使用 Node 时 CPU 占用高问题

这是一个 Bug,据说在下一个 WSL 版本中会修复。

参考:High cpu usage of node process in Remote-WSL extension · Issue #2921 · microsoft/vscode-remote-release · GitHub[WSL1] [glibc] sleep: cannot read realtime clock: Invalid argument · Issue #4898 · microsoft/WSL · GitHub 以及 Ubuntu 20.04 and WSL 1 - WSL2 - Ubuntu Community Hub

  1. WSL1 中依次执行:

    cd ~
    wget "https://launchpadlibrarian.net/474302949/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb"
    sudo dpkg -i libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb
  2. 管理员模式的 PowerShell 中执行:

    net stop LxssManager
    LxssManager 服务正在停止.
    LxssManager 服务已成功停止。
    
    net start LxssManager
    LxssManager 服务正在启动 .
    LxssManager 服务已经启动成功。

    以重启 WSL。

网站正在重新设计中,部分功能和内容还没完成。