了解Bash在Windows上的威力

Windows开发人员在古老的Windows-vs中有了一个新的武器。Linux之战:Linux命令行本身

Microsoft Windows可能是桌面的主要玩家,但是快速增长的开源软件市场——尤其是管理和开发工具——显然更倾向于Linux。更不用提移动市场,在那里Android使用Linux变体。如果你是Windows系统的开发人员,那么熟悉Linux功能的呼声就会越来越高。

多年来,微软为在Windows上使用Linux功能引入了各种变通方法,如PowerShell与SSH、Cygwin和MSYS。在虚拟机中运行Linux是另一种选择。但是,vm会消耗大量的资源,并且不能提供一流的Linux体验,例如,您不能编辑本地文件或完全访问本地驱动器。

随着IT世界在许多项目上转向Linux,微软已经提出了一个新的产品来进入这个不断增长的市场。答案是在Windows上猛击。在这里,我们将指导您在Windows上安装Bash,并让您了解在Linux命令行中可以做什么,以及为什么要这样做。

Windows上Bash的概述

Windows上的Bash是Windows 10新增的一个功能。微软已经与Canonical合作,也就是Ubuntu Linux的创造者,在Windows中构建这个新的基础设施,称为Linux的Windows子系统(WSL)。它允许开发人员访问一套完整的Ubuntu CLI和工具。有了本地Linux经验,开发人员可以在Windows上运行Linux命令,包括访问本地文件和驱动器。由于Linux是与Windows集成在一起的,所以开发人员可以灵活地在Linux和Windows中处理相同的文件。简单地说,Windows上的Bash将Ubuntu用户带到了Windows而不是Linux内核。

Bash和PowerShell

微软在PowerShell中已经有了一个命令shell。那么在Windows上的Bash有什么不同呢?PowerShell是Microsoft用于自动化任务的配置管理框架。它用于管理具有面向api架构的Windows。另一方面,Bash主要依靠文本文件进行自动化和开发。两者在焦点和设计上都有所不同。例如,当您使用。列出目录中的文件时ls命令,PowerShell将输出显示为文件对象,而Windows上的Bash将输出显示为一组字符串。值得庆幸的是,对于Windows管理员来说,您可以同时使用这两种解决方案,并从中获得最大的好处。

需要注意的是:PowerShell有允许您这样做的别名认为您正在运行传统的Bash命令,而实际上,您正在运行PowerShell cmdlet。这可能会绊倒一些人。例如,ls是?的别名吗Get-ChildItem命令。同样的,松材线虫病是…的别名Get-Locationcd是…的别名Set-Location。对于PowerShell中的所有别名列表,请使用混叠cmdlet。

Windows上的Bash为开源开发人员提供了多种好处。通过将本机Linux功能引入Windows, Windows上的Bash消除了使用Ubuntu运行双启动来访问Linux功能的需要。您不需要使用Mac OS X、运行虚拟机或使用Cygwin创建工作区。它提供了为您的场景和平台编写和构建代码所需的工具集。通过从Bash访问Windows文件系统,您可以使用Windows或Linux CLI处理相同的文件。

微软是如何将Bash移植到Windows的?

在2016年4月的构建会议上,微软宣布了Linux的Windows子系统(WSL),这让很多人大吃一惊。与Canonical合作,Bash在Windows上首次发布了Windows 10周年更新。它分为两部分:核心子系统和一个包。核心子系统已经是Windows 10 Insider构建的一部分,并提供了Windows上的Linux API,这意味着您可以本地加载Linux库和可执行文件。Canonical将软件包作为一个选项提供。这个软件包提供了Linux环境所需的Bash和CLI工具。

安装Bash

要在Windows上运行Bash,您的系统必须运行x64 Windows 10周年更新构建14393或更高版本。您可以通过键入来发现构建winver在命令框中。

Windows版本 信息世界

如果构建版本小于14393,则无法安装Bash。

要在受支持的构建上启用Bash,首先应该打开开发人员模式。要做到这一点,请转到“设置”,单击“开发人员”,然后选择“开发人员模式单选”按钮。完成之后,系统将提示您进行确认。

Windows 10:开发者模式 信息世界

完成之后,必须启用用于Linux的Windows子系统特性。最简单的方法是通过PowerShell cmdlet:

启用- windowsoptionalfeature -Online -FeatureName microsoft - windows -子系统- linux

要在Windows上打开Bash,请输入命令提示符bash,并接受许可协议。当Bash安装时,它会对您的系统执行一些更改:

  • 下载Ubuntu用户模式映像。
  • 位置的隐藏文件夹% localappdata % \ lxss \被创建。
  • 桌面上有一个快捷方式。

要运行Bash,现在可以转到命令提示符或使用桌面快捷方式图标。

成功安装Bash之后,系统将提示您创建Unix用户名和密码。这个用户名和密码是用于Bash的,与您的Windows环境没有任何关系。

开始使用命令

在Bash中,您有一些可用的命令来管理WSL和Ubuntu映像。

  • lxrun:用于管理WSL实例
  • lxrun /安装:开始下载和安装程序
  • lxrun /卸载:卸载Ubuntu映像
  • lxrun /更新:更新WSL包索引
  • lxrun / setdefaultuser <用户名>:设置Ubuntu用户的默认Bash

当然,Windows上的Bash也允许您运行许多“传统”Bash命令。例如:

  • grep:查找与模式匹配的行
  • sed:替换字符串
  • 回声:将值输出到屏幕
  • var = 2:创建一个变量$ var
  • = = !:比较文本的小片段

导航命令

对于导航,您还可以使用Windows DOS命令cd来浏览文件夹结构。

  • cd临时:将工作目录更改为名为temp的文件夹
  • cd \:带您到根目录。因为Ubuntu没有像Windows那样的驱动字母,所以根目录应该是顶层目录。
  • cd . .:将提示向上一级(即到父目录)
  • cd ~:带您到主目录

然而,cd在PowerShell中,在Ubuntu的Bash中略有不同。在WSL环境中,您的Windows驱动器存储在/ mnt文件夹,驱动器的名称用作子文件夹。当你使用cd命令,您应该相应地更改路径。

显示命令

要检查目录的路径和内容,以下是一些示例:

  • 松材线虫病:将您所在的路径或目录打印到屏幕中
  • ls:显示目录中的文件

帮助的命令

如果要了解每个命令的功能和与之关联的参数,请使用男人。可以使用命令。

类型人<命令>它将显示命令的用途和相关参数的概要。这类似于PowerShell帮助命令。

编辑命令

Bash的优点之一是使用纯文本。这意味着您不必修改注册表或程序设置。无论您想要更改启动顺序还是web服务器配置,只需编辑相应的文本文件即可。要有效地执行编辑任务,您需要一个好的文本编辑器。Bash提供了强大的编辑器来简化您的工作。Bash中有几个很好的文本编辑器示例纳米六世

Bash中的包管理

由于您实际上是在运行Linux,所以现在还可以使用包管理命令的形式apt-get。几个例子:

  • sudo apt-get更新:刷新要提取的存储库列表
  • sudo apt-get升级:将所有软件升级到最新版本
  • apt-cache搜索app_name:在存储库中搜索特定的应用程序
  • sudo apt-get安装apt-name:下载和安装特定的应用程序

sudo是所有命令的前缀,允许您在不同的用户(超级用户(或管理员))下运行命令。它类似于Windows中的“以管理员身份运行”技术。

网络命令

要从服务器或URL通过HTTP下载文件,现在可以使用旋度命令。这个命令类似于PowerShell的命令Invoke-WebRequestcmdlet。

类似地,您可以连接到另一台远程Linux计算机并在其上运行命令。因为我们现在在Linux中,我们终于有了一个真正的SSH客户机。我们现在可以通过本机运行SSH,而不是使用Cygwin或当前的OpenSSH实现的beta版ssh命令:

ssh用户名@abc.com

在讨论OpenSSH时,我们现在还可以使用内置的本机功能在SCP上安全地复制文件scp命令:

scp localfile username@abc.com: remotedirectory / remotefile

有了Bash在Windows上,你现在有很多其他功能在你的指尖:

  • 像Git、Python和Ruby这样的工具直接在Windows上运行
  • 命令行编辑器,如emacs和vi
  • 从Bash环境中访问Windows文件系统
  • Linux用户支持
  • 符号链接的支持
  • 存储越来越多的通过/ mnt

Windows上Bash的常见用例有哪些?

目前,许多开发人员使用Windows和Linux工具,这意味着他们必须在虚拟机中执行双引导或运行Linux才能获得CLI功能。当他们可以在Windows中运行这些工具时,Windows就成了他们的主要桌面。在这种情况下,他们不需要将Linux应用程序和服务移植到Windows系统。虽然有些人已经能够在Windows中运行Linux GUI应用程序,但是许多人获得了一个方便的Linux CLI来执行简单的任务,而不需要从Azure购买专用的Linux机器,或者为了简单的目的而迁移到Mac设备。由于Bash上的脚本编写很容易,您可以自动化开发任务,比如在Apache中备份网站。

例如,许多开发人员使用GitHub进行版本控制任务。要在Windows上访问GitHub,您必须为Windows安装GitHub,然后使用commit和push命令提交更改。另外,您必须下载Git实用程序,这是一个冗长乏味的过程。有了Windows上的Bash,您的工作变得简单:

apt-get安装git
git提交
git推

另外,在Bash中,您不需要任何第三方工具来处理传统的Linux文件类型,如GZIPed tarballs (tar.gz文件)。

在Windows上使用Bash的缺点是什么?

Windows上的Bash仍处于测试阶段,并包含一些粗糙的边缘。微软表示,Windows上的Bash目前可能无法完美地执行所有脚本。然而,微软正在密切监视性能和反馈,并积极地对该解决方案进行更改。

其次,Windows上的Bash是为开发社区带来的。它不是为管理Windows环境而设计的。虽然可以在WSL中运行服务器守护进程,但它不能提供完整Linux虚拟机的全部功能。如果您打算在Ubuntu的生产工作负载下运行服务器进程,那么您应该考虑使用其他替代方法来运行完整的Linux操作系统。

最后,Windows上的Bash为Windows带来了Linux功能。然而,Linux工具将无法与Windows工具和应用程序交互。这意味着由于其固有的架构差异,没有跨平台功能。例如,您将永远无法从Bash中调用Win32-native应用程序。

Windows上的Bash仍处于初级阶段。虽然这个解决方案有一些限制,但是微软正在努力增加更多的功能来消除这些差异,使Windows成为每种类型开发项目的首选平台。请密切关注微软的这个项目。随着微软在开放源码世界中的新姿态,随着时间的推移,Bash一定会成为Windows中的一等公民。

相关文章

这个故事,“发现Bash在Windows上的力量”最初是由信息世界

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对最重要的话题发表评论。

版权©2017Raybet2

工资调查:结果在