陈狗说windows下命令行太难用可以换成zsh,根据网上教程+GPT4的提示搞着玩,记录一下过程。
我使用了WSL+zsh的方法,也可以使用Git Bash+zsh.
1.windows开启WSL
win+R快捷键输入optionalfeatures

勾选“适用于Linux的Windows子系统”

记不太清了,这一步之后可能要重启计算机。
2.下载Linux发行版
打开Microsoft Store搜索任何一个Linux发行版即可,我下载的Debian

下载安装完成之后直接打开,简单设置下用户名和密码就可以了。
其实到这里已经可以在windows powershell中使用大部分的linux指令了,只需要在每个linux指令前添加wsl前缀即可,如下所示:

当然如果不想每次都添加wsl前缀,可以直接切换到 debian控制台或者windows powershell切换到wsl,另外如果安装了多个linux发行版的话还需要通过-d指令指定某一个版本,如
wsl -d Debian -e bash

但是zsh提供了更多功能,例如自动补全、历史命令搜索等,所以下面我们还是继续安装zsh.
3.安装zsh
打开debian控制台,指令安装zsh
sudo apt update
sudo apt install zsh
更换zsh为默认shell(默认情况下是bash)
chsh -s /bin/zsh
之后重新打开debian,会提示进行一些配置,我的控制台关掉了所以从网上找了张图,内容都是一样的

这里我们先选1就可以了,接下来还会有一个提示,直接选(0) Exit, creating a blank ~/.zshrc file.,需要的话这个.zshrc文件可以之后再配置。接下来开始安装oh-my-zsh
4.安装oh-my-zsh
4.1 常规方法
理论上以下三步就可以通过执行sh文件安装oh-my-zsh了,但是…
首先,oh-my-zsh是基于git更新的,所以需要先安装git
sudo apt update
sudo apt install git
如果没有安装curl还需要安装一下
sudo apt update
sudo apt install curl
接下来理论上可以通过命令直接从github仓库里安装oh-my-zsh的执行文件了,然后修改权限,执行install.sh进行安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chmod +x install.sh
./install.sh
但是这一步由于网络问题一般是不会成功的,有两个解决方法:
1.如果有代理的话可以开启代理,走代理下载,具体参考链接
2.直接在windows中下载好,复制到debian系统中
第一种方法有点麻烦,我试的方法不对没有成功,懒得折腾了所以直接用了第二种方式
4.2从windows复制oh-my-zsh
1.直接切换到windows,打开命令提示符,执行以下命令下载oh-my-zsh
cd %USERPROFILE%\Downloads //下载ohmyzsh的文件夹,对应下面cp的路径
git clone https://github.com/ohmyzsh/ohmyzsh.git
2.接下来在WSL中将克隆的仓库从windows复制到WSL的~/.oh-my-zsh目录,注意这里的文件路径要改成你自己clone仓库的路径,即”/mnt/你自己的ohmyzsh路径”,因为”/mnt”是windows磁盘挂载到WSL的路径。
cp -r /mnt/c/Users/Levi/Downloads/ohmyzsh ~/.oh-my-zsh
3.更改默认shell为zsh
chsh -s $(which zsh)
4.到这一步重新打开debian(WSL)终端应该就已经成功了。如果没有成功,尝试下面的步骤:
创建一个新的zsh配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
安装dos2unix工具并转换换行符
sudo apt update
sudo apt install dos2unix
dos2unix ~/.zshrc
find ~/.oh-my-zsh -type f -exec dos2unix {} \;
更改默认shell为zsh:
chsh -s /bin/zsh
设置windows Terminal默认debian WSL

完成
快速打开
windows快捷打开可以win+R输入wsl进入wsl.exe;
win+R输入wt进入windows terminal;


然而不代表可以完全用linux指令操作windows系统
访问Linux
例如top(查看内存/显示系统当前进程信息) df-h(查看磁盘储存状况)等指令反映的仍然是linux系统信息
访问windows
windows系统是完全挂载到/mnt文件夹下的,所以想要查看windows系统内容直接切换到/mnt下就可以了
但是Windows 文件系统和 Debian 文件系统是两个不同的文件系统,它们之间的文件和目录不能直接互通,需要在 WSL 中进行文件复制或移动操作才能在两个文件系统之间进行数据交换。