什么是WSL

WSL的全称是Windows Subsystem for Linux(适用于Linux的Windows子系统)。

WSL和WSL2

下图是微软给出的比较。另外,在Windows 11中WSL 2能过访问GPU,这意味着可以使用一些Linux GUI程序,同时使得使用机器学习、人工智能和数据科学等应用场景更加方便快捷。
请添加图片描述
总之,多数情况下,使用WSL 2是一个更好的选择,除非一些情况。

  • 你的项目文件必须存储在 Windows 文件系统中。

  • 你的项目需要访问串行端口或 USB 设备(WSL 2不支持访问穿行端口)。

  • 需要有与主机相同的网络中拥有 IP 地址(WSL 2使用NAT而非而非桥接到主机网卡)。

为什么用WSL?

Windows Terminal(终端)

在介绍安装使用WSL之前我认为有必要先介绍一下Windows Termial即Windows终端(简称终端)。终端默认打开的是PowerShell,此外还有一个CMD,当然还可以添加其他的启动项。它长这个样子:

请添加图片描述

Windows终端和Linux的终端是一个概念,如果你不清楚这个概念,那么可以把它(终端)理解成一个客户端,使用这个客户端来进行对计算机的操作如执行命令、ssh连接等。

你可以直接在windows商店中搜索并安装之:

请添加图片描述

或者在https://github.com/microsoft/terminal/releases中下载安装你喜欢的版本。

后续的操作我将全部使用终端来完成。

终端配置

可以在https://docs.microsoft.com/zh-cn/windows/terminal/customize-settings/profile-appearance中查看有关配置终端的方法,此处不再赘述。

安装及使用

一行命令安装

wsl的安装步骤并不复杂,按照官方的说法,如果你使用的是比较新版本的windows:

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

只需要在终端中运行如下命令,然后重启计算机。

wsl --install

使用这种方法安装默认为WSL 2,发行版为Ubuntu。可以用wsl --install -d <发行版名称>来安装指定的发行版(使用wsl --list --online命令能查看可用的版本),本文创作时有如下种发行版:

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS

安装完成后需要按提示来设置用户名和密码,提醒一下输入密码的时候不是没打上而是隐藏起来的。

手动安装

如果你不得用手动的方式来安装,那么还是有一点点小繁琐的。首先需要设置WSL运行环境,有两种方式。

方式一

使用如下命令来打开“wsl可选功能”。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

如果你只想安装WSL 1,执行完了之后重启即可(此步骤结束,还有后续步骤)。如果要安装WSL 2还需要执行下面命令来打开“虚拟机平台”。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行完毕后重启计算机。

方式二

在控制面版中找到“程序和功能”,打开“启用或关闭Windows功能”。

请添加图片描述

勾选下面两项。然后重启。

请添加图片描述

安装发行版

实际上配置环境和安装发行版没有依赖关系,你想先做哪一步都没关系。在应用商店里选择你喜欢的发行版(我喜欢的是Ubuntu 20.04)并下载之,耐心等待…安装成功就可以在开始菜单找到了,或者在终端的下拉框里也会出现。

安装完成后执行命令sudo apt install neofetch安装neofetch,安装完成后输入命令neofetch会看到如下界面,恭喜你已经学会抢答了!

请添加图片描述

使用说明

学开车先学刹车,在终端中使用下面命令来关闭WSL。现在的WSL2存在一个问题,就是如果你长时间高强度使用WSL2可能会导致物理内存耗尽。

wsl --shutdown

切换WSL版本

使用命令wsl --set-version <发行版名称> <WSL版本>来从WSL1切换到WSL2,或者反过来。

访问文件

在终端中(打开WSL的终端)输入explorer.exe .来使用Windows的文件管理器打开WSL的当前目录,注意不要丢掉后面的空格和点。

运行Windows工具

可以直接在WSL中调用Windows工具,例如在终端中输入calc.exe来打开计算器;使用notepad.exe .bashrc命令来打开启动Linux命令行时运行的shell脚本。

常见报错

安装失败报错 0x80070003

这个报错好像是出现最多的,解决办法就是在“设置"—“系统”—“存储”—“更多存储设置: 更改新内容的保存位置”中把保存位置改为C盘。

请添加图片描述

由于我在使用过程中并没有遇到过多的问题,因此有其他麻烦的朋友可以在https://docs.microsoft.com/zh-cn/windows/wsl/troubleshooting这个链接中看一下有没有对味儿的。

安装软件

PostgreSQL

安装PG

使用如下命令安装postgre数据库:

sudo apt update
sudo apt install postgresql 

等待安装完毕后输入psql --version命令来查看版本号,如成功显示则表明安装成功。以下三个为PG常用命令:

  • sudo service postgresql status 用于检查数据库的状态。
  • sudo service postgresql start 用于开始运行数据库。
  • sudo service postgresql stop 用于停止运行数据库。

命令行操作

要使用PG命令行对数据库进行连接操作,首先需要执行上述启动命令。

  • 使用如下命令连接到 postgres 服务,并打开 psql shell:sudo -u postgres psql,或者,也可以通过使用 su - postgres 切换为 postgres 用户,然后输入命令 psql 来打开 psql shell。

  • 若要退出 postgres=# ,请输入 \q

  • 要查看在 PostgreSQL 安装上创建的用户帐户,请在 WSL 终端上使用 psql -c "\du";如果已打开 psql shell,则仅使用 \du

  • 使用\l命令可以列出所有的数据库,或者使用语句SELECT datname FROM pg_database;

  • 可以使用\c myDB来连接到名为myDB的数据库,切换数据库后,使用\dt列出所有数据库表。

创建用户并授权

 su - postgres
Password: 
~$ psql
psql (12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
Type "help" for help.

创建用户
postgres=# create user xxf with password '你的密码';

创建数据库
postgres=# create database xxf owner xxf;

授予权限
postgres=# grant all privileges on database xxf to xxf;

postgres=# \q
~$ exit
logout
~> psql
psql (12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
Type "help" for help.

xxf=>

至此,就在数据库xxf中了。

授予用户其他权限(如创建数据库)可以先授予普通用户超级用户权限,再在dbeaver里授予其他权限:alter role angelhand with superuser;

有关使用 PostgreSQL 数据库的信息,请参阅 PostgreSQL 文档

Redis

若要在 WSL 上安装 Redis (即。Ubuntu) :

  1. 打开 WSL 终端 (即。Ubuntu) 。
  2. 更新 Ubuntu 包:sudo apt update
  3. 更新包后,使用以下方法安装 Redis: sudo apt install redis-server
  4. 确认安装并获取版本号:redis-server --version

若要开始运行 Redis 服务器,请执行: sudo service redis-server start

检查 redis 是否正常工作 (redis-cli 是命令行接口实用工具,以与 Redis) :这应返回 redis-cli ping “一个答复”。

若要停止运行 Redis 服务器,请执行: sudo service redis-server stop

有关使用 Redis 数据库的信息,请参阅 Redis 文档

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐