刚好工作换了个电脑不过还是 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
- 直接在 windows 应用商店搜索 wsl2,安装 ubuntu 22
- 安装完后,打开 ubuntu 22,提示错误,然后搜索了下需要升级 linux 内核,参考链接。下载安装包,安装完后重启电脑。
- 重启后,打开 ubuntu 22,提示需要设置用户名和密码,设置完后就可以使用了。
配置 wsl2 环境
- 安装 zsh
- 安装 oh-my-zsh
- 安装 powerlevel10k 主题
- 安装 字体,这里安装在 windows 系统中,毕竟终端就在 windows 中打开
- 安装 pip3,命令:
sudo apt install python3-pip
- 安装 awscli, 命令:
pip3 install awscli --upgrade --user
,这个并不能用,还是得按照官方的文档安装,参考链接 - 安装 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
- 安装 jdk
- 安装 android sdk
- 安装 gradle
- flutter
问题
- 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 的,感觉有点卡。
- oh-my-posh,参考链接
- 这个真好看
- 安装后,启动命令
oh-my-posh get shell
- 然后在 powershell 的配置文件中添加
oh-my-posh init pwsh | Invoke-Expression
- starship,参考链接
- 这个很清新
- 安装后,启动命令
Invoke-Expression (&starship init powershell)
确实,starship
和oh-my-posh
都是用于定制命令行提示符(也就是你在终端里看到的那一行,通常包含用户名、当前目录等信息)的工具。它们都可以用于增加额外的信息、美化外观或改变提示符的布局,但它们有一些关键区别。
区别与对比
跨平台性
starship
:设计为跨平台的,支持 Linux、macOS 和 Windows。oh-my-posh
:最初是为 PowerShell 设计的,但现在也支持其他平台和 shell。
依赖
starship
:用 Rust 编写,无需特定的 shell 插件。oh-my-posh
:早期版本依赖于 PowerShell 模块,最新版本(V3)则是 Go 应用程序。
配置
starship
:使用 TOML 文件进行配置。oh-my-posh
:使用 JSON 配置,同时也提供了 PowerShell 和命令行的配置选项。
拓展性
starship
:提供了许多内建的模块,但不易于拓展自定义模块。oh-my-posh
:由于其与 PowerShell 的紧密集成,较易于拓展。
速度
starship
:由于是用 Rust 编写,执行速度通常较快。oh-my-posh
:执行速度依赖于特定实现和配置。
社区与支持
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