Windows下使用zsh——WSL(Debian)方法

陈狗说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 中进行文件复制或移动操作才能在两个文件系统之间进行数据交换。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注