0%

wsl2 使用

刚好工作换了个电脑不过还是 pc,趁周末折腾了一下环境,之前也用了一段时间 wsl,就是感觉文件共享有点问题,两个环境还是很分裂的样子。现在又看了下资料,感觉还能用下。不过折腾的这股劲还挺足,早上起来就开始弄了,有点像上大学那会的样子,很久没这么起劲了,记录下还是不错的。

又发现一个挺好玩的,Oh My Posh,可以自定义终端的样式,回头试试。链接:https://ohmyposh.dev/

一句话总结:软件安装在 windows,文本文件放在 wsl2,用 vscode 或者 ide 远程连接 wsl2,这样就可以在 windows 和 linux 之间无缝切换了。
二句话总结:
1. vscode。直接在 wsl 终端运行命令code .,就可以在 vscode 中打开当前目录了。
2. git。用 git 工具比如 git-fork,直接打开 wsl 目录位置就可以了 \\wsl$
3. android studio。可能复杂点。

安装 wsl2

  1. 直接在 windows 应用商店搜索 wsl2,安装 ubuntu 22
  2. 安装完后,打开 ubuntu 22,提示错误,然后搜索了下需要升级 linux 内核,参考链接。下载安装包,安装完后重启电脑。
  3. 重启后,打开 ubuntu 22,提示需要设置用户名和密码,设置完后就可以使用了。

配置 wsl2 环境

  1. 安装 zsh
  2. 安装 oh-my-zsh
  3. 安装 powerlevel10k 主题
  4. 安装 字体,这里安装在 windows 系统中,毕竟终端就在 windows 中打开
  5. 安装 pip3,命令:sudo apt install python3-pip
  6. 安装 awscli, 命令:pip3 install awscli --upgrade --user,这个并不能用,还是得按照官方的文档安装,参考链接
  7. 安装 aws-vault, 命令:
    • AWS_VAULT_VERSION="v6.3.1" && \ wget -O aws-vault "https://github.com/99designs/aws-vault/releases/download/${AWS_VAULT_VERSION}/aws-vault-linux-amd64"
    • sudo mv aws-vault /usr/local/bin/ && \ sudo chmod +x /usr/local/bin/aws-vault
    • aws-vault --version
  8. 安装 jdk
  9. 安装 android sdk
  10. 安装 gradle
  11. flutter

问题

  1. wsl 环境下的命令可能混有 windows 的命令,比如 python,这时候需要使用绝对路径,比如/usr/bin/python3,或者使用which python3查看绝对路径,然后使用绝对路径执行命令。类似 ‘/mnt/c/Users/xxx/AppData/Local/Programs/Python/Python39/python.exe’ mnt 开头的都是 windows 的命令。

windows shell 配置

本来就想用下 oh-my-posh,结果发现还有个 starship,两个都试了下。也有类似 tabby 和 hyper 的工具,不过不用了,因为是 electron 的,感觉有点卡。

  1. oh-my-posh,参考链接
    • 这个真好看
    • 安装后,启动命令 oh-my-posh get shell
    • 然后在 powershell 的配置文件中添加 oh-my-posh init pwsh | Invoke-Expression
  2. starship,参考链接
    • 这个很清新
    • 安装后,启动命令 Invoke-Expression (&starship init powershell)

确实,starshipoh-my-posh都是用于定制命令行提示符(也就是你在终端里看到的那一行,通常包含用户名、当前目录等信息)的工具。它们都可以用于增加额外的信息、美化外观或改变提示符的布局,但它们有一些关键区别。

区别与对比

  1. 跨平台性

    • starship:设计为跨平台的,支持 Linux、macOS 和 Windows。
    • oh-my-posh:最初是为 PowerShell 设计的,但现在也支持其他平台和 shell。
  2. 依赖

    • starship:用 Rust 编写,无需特定的 shell 插件。
    • oh-my-posh:早期版本依赖于 PowerShell 模块,最新版本(V3)则是 Go 应用程序。
  3. 配置

    • starship:使用 TOML 文件进行配置。
    • oh-my-posh:使用 JSON 配置,同时也提供了 PowerShell 和命令行的配置选项。
  4. 拓展性

    • starship:提供了许多内建的模块,但不易于拓展自定义模块。
    • oh-my-posh:由于其与 PowerShell 的紧密集成,较易于拓展。
  5. 速度

    • starship:由于是用 Rust 编写,执行速度通常较快。
    • oh-my-posh:执行速度依赖于特定实现和配置。
  6. 社区与支持

    • starship:有一个活跃的开源社区和多平台支持。
    • oh-my-posh:社区相对较小,但由于其与 PowerShell 的紧密关系,有一定的受众基础。

示例使用场景

  • 如果你在多个操作系统或多种 shell 环境中工作,starship可能是一个好选择。
  • 如果你主要在 Windows 和 PowerShell 环境中工作,或者需要更多的定制选项,oh-my-posh可能更合适。

两者都是优秀的工具,选择哪一个主要取决于你的具体需求和个人喜好。你也可以尝试使用两者,以确定哪一个最适合你的工作流程。

参考

WSL2 下 Flutter 开发环境搭建
How to connect Android Studio running inside WSL2 with connected devices or android emulator running on host