如何使用适用于Linux 2和Windows Terminal的Windows子系统

在本文中,您将学习如何使用Windows Subsystem for Linux 2在Windows中设置和运行本地Linux shell界面,而无需使用虚拟机。这与使用添加到$ PATH的UNIX工具子集的Git Bash或cmder等终端不同。这实际上就像在Windows上运行可以执行本机Linux应用程序的完整Linux内核。那真是太棒了,不是吗?

如果您是一位经验丰富的开发人员,您已经知道Linux是使用开源技术构建和运行基于服务器的解决方案的最佳平台。虽然可以在Windows上运行相同的,但体验并不是那么好。大多数云托管公司为客户提供Linux,以便在稳定的环境中运行其服务器解决方案。为了确保软件在服务器机器上完美运行,就像在本地开发机器上一样,您需要运行相同的平台。否则,您可能会遇到配置问题。

使用开源技术构建项目时,您可能会遇到在Linux上运行良好但在Windows上不完全支持的依赖项。因此,您将需要执行以下任务之一才能为项目做出贡献:

  • 双启动Windows和Linux(切换到Linux以贡献代码)
  • 使用Vagrant,VirtualBox,VMWare等平台运行Linux虚拟机。
  • Docker容器中运行项目应用程序

以上所有解决方案从启动开始需要几分钟才能运行完整的Linux界面。使用新的Linux子系统Linux版本2(WSL2),访问完整的Linux shell需要一秒或更短的时间。这意味着您现在可以快速地在Windows内部基于Linux的项目上工作。让我们看一下如何在本地机器中设置一个。

在Windows中安装Ubuntu

首先,您需要运行最新版本的Windows。在我的情况下,它是构建1903.一旦你确认了这一点,你将需要激活该Windows Subsystem for Linux功能。只需打开或关闭控制面板 - > 程序 - > 打开Windows功能。查找“适用于Linux的Windows子系统”并选中该复选框。给Windows一两分钟来激活该功能。完成后,单击下一步显示的重启机器按钮。

启用Windows子系统Linux功能

接下来,转到Windows应用商店并安装Ubuntu。第一个Ubuntu选项将安装最新版本。其他Ubuntu选项允许您安装较旧的受支持版本。

Microsoft Store Linux

安装完成后,您需要从菜单中启动它。由于这是第一次,您需要等待Ubuntu映像下载并安装在您的计算机上。这是一次性步骤。下次启动时,您将立即访问Linux Shell。

图像安装完成后,系统将提示您在此shell中创建新的root用户帐户:

在命令行中安装Ubuntu

创建凭据后,可以随意键入任何Linux命令以确认您是否真正访问了本机Linux shell:

Ubuntu使用命令

你会很高兴地注意到gitpython3sshvimnanocurlwget和许多其他流行的工具都可以开箱即用。在后面的部分中,我们将使用sudo apt-get命令安装更多框架。首先,让我们看看我们可以通过几种方式访问​​这个新的Linux shell终端界面。升级当前安装的软件包可能是个好主意:

 

$ sudo apt-get update && sudo ap-get upgrade

访问Linux Shell界面

有几种有趣的方式可以访问Linux shell界面。

  1. 转到Windows菜单开始 >键入“Ubuntu”。您可以将其固定为“开始”以便更快地访问

  2. 打开命令提示符或Windows PowerShell并执行命令 bash

  3. 在Windows资源管理器中,SHIFT+右键单击文件夹以打开特殊的上下文菜单。单击此处打开Linux shell

  4. 在Windows资源管理器中,导航到所需的任何文件夹,然后在地址栏中键入wsl,然后按enter。

  5. 在Visual Studio代码中,将默认终端更改为wsl

VS Code WSL终端

如果您遇到新方法,请告诉我。让我们在下一节中设置Node.js.

安装Node.js.

安装和配置Node.js的最佳方法是通过nvm。在Linux shell中,执行以下命令:

$ sudo apt-get install build-essential
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ nvm install --lts

以上命令应安装最新的Node.js LTS版本。如果遇到问题执行nvm命令,请在.bashrc文件中添加以下行:

source ~/.nvm/nvm.sh

source ~/.bashrc在尝试执行nvm命令之前,您需要重新启动Linux shell或执行命令。Node.js安装完成后,尝试全局安装npm软件包以确认它是否正常工作。

您还可以导航到Windows驱动器上的现有Node.js项目,并尝试运行它以确认它正在运行。Windows子系统Linux的一个非常酷的功能是您localhost在运行Web应用程序时仍然使用。Node.js在Windows上运行完全正常。因此,对于Linux用户来说,Windows子系统并没有那么大的好处。它真正闪耀的地方是开源的后端框架,如Django,Ruby on Rails和Lamp Stack。在Windows中设置它们有时可能是一个挑战。对于某些项目,由于某些开源库缺乏Windows支持,因此无法实现。使用WSL2,这不再是一个问题。在下一节中,我们将在Windows上安装LAMP堆栈,我发现它比WAMP堆栈更容易安装和配置。

在Windows上安装LAMP

在Linux shell中,键入以下要安装的命令Apache2MySQLPHP。这是一个相当大的下载,所以给它一点时间来完成:

 

$ sudo apt-get install lamp-server^

接下来,让我们开始并配置我们的MySQL数据库:

# Start the MySQL service
$ sudo service mysql start
# Define password for root@localhost
$ sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit

您也可以使用CTRL+ D退出MySQL shell。接下来,让我们配置并启动Apache Web服务器。使用vimnano或者你喜欢的文本编辑器,下面的两行添加到/etc/apache2/apache2.conf

Servername localhost
AcceptFilter http none

使用该命令启动Apache Web服务器sudo service apache2 start。导航以http://localhost确认Apache已成功启动:

Apache运行

接下来,让我们安装PhpMyAdmin

$ sudo apt-get install phpmyadmin

将以下行添加到/etc/apache2/apache2.conf

Include /etc/phpmyadmin/apache.conf

重新加载Apache Web服务器以使新配置生效:

$ sudo service apache2 reload

要确认phpmyadmin已成功配置,请导航到URL http://localhost/phpmyadmin。输入您之前设置的MySQL用户凭据。(请注意用户名是root)。您应该有类似的观点:

phpMyAdmin的

这就是在Windows上设置LAMP的简单方法。这应该足以证明您可以在Windows上轻松设置Linux开发环境。在下一节中,我们将简要介绍一下Microsoft正在开发的新Windows终端。

Windows终端

Windows Terminal是Microsoft的一个开源项目,旨在提供社区要求的功能,例如:

  • 丰富的文字
  • 全球化
  • 标签支持
  • 主题和造型
  • 和许多其他人......

如果不破坏与旧控制台应用程序的兼容性,则无法在现有控制台界面上实现这些功能。因此,创建了Windows Terminal项目,允许开发人员彻底更改体系结构,而不必担心向后兼容性。该项目目前仍处于开发阶段,因此预计未来会发布更多功能。我们来看看如何安装和自定义新的Windows终端。

安装和升级

在安装Windows Terminal之前,请确保在计算机上安装了最新的Windows 10版本。否则,安装将因旧版本而失败。目前有两种方法可以安装Windows终端。第一种方法是通过Microsoft Store:

 

Windows终端存储

第二种方法是使用Chocolatey工具,就像npmWindows应用程序一样。一旦在计算机上安装了Chocolatey,就可以通过PowerShell在您的计算机上安装Windows终端,如下所示:

choco install microsoft-windows-terminal

您应该期望类似的输出。就我而言,我正在升级:

升级Windows Terminal Choco.png

安装完成后,您可以从“开始”菜单启动它。您将找到的默认终端是PowerShell。只要单击+号,就会使用默认终端创建一个新选项卡。使用下拉菜单,您可以选择其他类型的终端。

Windows终端

如果单击“ 设置”,将打开JSON的默认编辑器。对你而言,可能是NotePad,NotePad ++,VS Code或任何其他编辑器。我更喜欢VS Code或类似的东西,因为它在键入时自动关闭JSON标签。如果仔细观察,您会注意到以下部分:

  • Globals - 全局设置:例如默认配置文件,选项卡设置,终端大小等。
  • 绑定 - 快捷键
  • 配置文件 - 终端启动:例如PowerShell,命令提示符
  • 方案 - 配色方案

如您所见,以JSON格式理解和自定义设置非常容易。我想展示的一个简单提示是像我这样安装了旧版Windows终端的用户。你们中的一些人可能已经注意到上面的截图中缺少一些配置文件。尽管更新了应用程序,但我的个人资料设置保持不变。要快速添加缺少的设置而不手动这样做,我所要做的就是:

  1. 完全关闭Windows Terminal App
  2. 删除profile.json(位于%USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState
  3. 重新启动终端应用程序

更新的设置

此外,还添加了新的快捷键,其中包括以下内容:

{
    "command" : "closePane",
    "keys" :
    [
        "ctrl+shift+w"
    ]
},
{
    "command" : "copy",
    "keys" :
    [
        "ctrl+shift+c"
    ]
},
{
    "command" : "duplicateTab",
    "keys" :
    [
        "ctrl+shift+d"
    ]
},
{
    "command" : "paste",
    "keys" :
    [
        "ctrl+shift+v"
    ]
},

现在让我们在下一节中了解如何设置终端的样式。

设置控制台的样式

在每个配置文件下的设置中处理终端样式。您可以通过更改以下任何属性来自定义每个配置文件:

"acrylicOpacity" : 0.2,
"useAcrylic" : true
"colorScheme" : "One Half Dark",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "Consolas",
"fontSize" : 10,
"padding" : "0, 0, 0, 0",
"background":"#002B36",
"backgroundImage": "<insert image path here>"
"backgroundImageOpacity": 1,
"backgroundImageStretchMode": "none"

我认为上述设置非常自我解释,除了acrylic。这是一种背景效果,使终端的背景略微透明和模糊。acrylicOpacity控制透明度。要拥有完全不透明的背景,请设置useAcrylicfalse。您可以使用GIF backgroundImage。动画将自动播放。很酷,对吗?

colorScheme来自schemes部分。默认出现的是:

  • Campbell
  • One Half Dark
  • One Half Light
  • Solarized Dark
  • Solarized Light

摘要

这是对Windows新开发工具和平台的快速介绍。他们仍然是从烤箱里新鲜出炉的,所以会一些错误 - 这将在不久的将来得到整理。如果您计划从基于VM的开发切换到Windows子系统Linux 2上的开发,请告诉我。

转载于:https://my.oschina.net/gemron/blog/3098518

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值