标签 Windows 下的文章

微软在其云服务上打造全新超算

微软与 OpenA 合作,专门为 OpenAI 在 Azure 上构建了一台新的超级计算机,拥有超过 28.5 万个 CPU 核心和 1 万个 GPU。按照世界超级计算机 TOP500 的排名,微软打造的这款新型超级计算机位列前五名。

来源:cnBeta.COM

硬核老王点评:不知道国内的云服务商会不会也打造一个基于云服务器的超算?

WSL 2 计划支持 Linux GUI 应用,可和 Windows 应用同时使用

微软计划在本月底在 WSL 2 中为 Windows 10 系统添加完整的 Linux 内核,而现在又有新计划将支持 Linux 的 GUI 应用,使其能够和常规 Windows 应用一起运行。目前可以使用第三方 X 显示服务器在 Windows 中运行 Linux GUI 应用程序,不过存在性能表现不佳的情况。一旦该功能上线,这就意味着 Windows 用户不需要使用 X11 转发的情况下就能启用 Linux GUI 应用程序,和 Windows 应用一同运行。

来源:cnBeta.COM

硬核老王点评:所以以后在 Windows 上会有越来越多的 Linux 应用出现,无论是命令行的还是图形界面的,或许有一天连内核都换成 Linux 内核,而用户或许会感觉不到变化。嗯,欢迎 Windows “主题”上线。

Windows 10 终于也迎来了一款软件包管理器

微软终于在今日宣布了一项新功能 —— 为 Windows 10 带来了一款内置的软件包管理器。简而言之,其使得用户无需在窗口中频繁点击,即可轻松完成桌面程序的安装工作。Windows 软件包管理器已支持如下命令:install:安装应用程序;show:显示有关应用程序的信息;source:管理应用程序的可用来源;search:查找应用程序的基本信息。感兴趣的朋友可加入 Windows Insider 测试项目,并通过 Microsoft Store 获取 Windows 软件包管理器。

来源:cnBeta.COM

硬核老王点评:在 Linux 等系统中司空见惯的包管理器终于在 Windows 中出现了,这应该算是微软拥抱开源和 Linux,甚至内嵌了 WSL 的系统而带给 Windows 产品线的影响了。

华为 HMS 全球注册开发者达 140 万,接入应用数量超 6 万

目前,全球 170 多个国家和地区的用户已经能够使用华为应用市场、华为浏览器、华为云空间、华为智慧助手·今天等。

来源:网易科技

硬核老王点评:加油!

在无数次劝说自己后,你终于做出了一个大胆的决定,试试 Linux。不过,在完全熟悉 Linux 之前,你依旧需要使用 Windows 10 系统。幸运的是,通过一个双系统引导设置,能让你在启动时,选择自己想要进入的系统。在这个指南中,你会看到如何 如何双重引导 Windows 10 和 Debian 10。

如何拥有一个 Windows 10 和 Debian 10 的双系统

前提条件

在开始之前,确保你满足下列条件:

  • 一个 Debian 10 的可引导 USB 或 DVD
  • 一个快速且稳定的网络(为了安装更新以及第三方软件)

另外,记得注意你系统的引导策略(UEFI 或 Legacy),需要确保两个系统使用同一种引导模式。

第一步:在硬盘上创建一个空余分区

第一步,你需要在你的硬盘上创建一个空余分区。之后,这将是我们安装 Debian 系统的地方。为了实现这一目的,需要使用下图所示的磁盘管理器:

同时按下 Windows + R 键,启动“运行程序”。接下来,输入 diskmgmt.msc,按回车键。

启动“运行程序”

这会启动“磁盘管理”窗口,它会显示你 Windows 上所有已有磁盘。

磁盘管理

接下来,你需要为安装的 Debian 系统创建空余空间。为此,你需要缩小其中一个磁盘(卷)上的分区,从而创建一个未分配的新分区。在这个例子里,我会从 D 盘中创建一个 30 GB 的新分区。

为了缩小一个卷,右键点击它,然后选中选项 “ 缩小 Shrink volume… ”。

缩小卷

在弹出窗口中,定义你想缩小的空间大小。记住,这是将来要安装 Debian 10 的磁盘空间。我选择了 30000MB(大约 30 GB)。压缩完成后,点击“ 缩小 Shrink ”。

缩小空间

在缩小操作结束后,你会看到一个如下图所示的未分配分区:

未分配分区

完美!现在可以准备开始安装了。

第二步:开始安装 Debian 10

空余分区已经创建好了,将你的可引导 USB 或安装 DVD 插入电脑,重新启动系统。记得更改 BIOS 中的引导顺序,需要在启动时按住功能键(通常,根据品牌不同,是 F9F10F12 中的某一个)。 这一步骤,对系统是否能进入安装媒体来说,至关重要。保存 BIOS 设置,并重启电脑。

如下图所示,界面会显示一个新的引导菜单:点击 “Graphical install”。

图形化界面安装

下一步,选择你的偏好语言,然后点击 “ 继续 Continue ”。

设置语言-Debian10

接着,选择你的地区,点击“ 继续 Continue ”。 根据地区,系统会自动选择当地对应的时区。如果你无法找到你所对应的地区,将界面往下拉, 点击“ 其他 Other ”后,选择相对应位置。

选择地区-Debain10

而后,选择你的键盘布局。

设置键盘-Debain10

接下来,设置系统的主机名,点击 “ 继续 Continue ”。

设置主机名-Debian10

下一步,确定域名。如果你的电脑不在域中,直接点击 “ 继续 Continue ”按钮。

设置域名-Debian10

然后,如图所示,设置 root 密码,点击 “ 继续 Continue ”。

设置 root 密码-Debian10

下一步骤,设置账户的用户全名,点击 “ 继续 Continue ”。

设置用户全名-debain10

接着,设置与此账户相关联的用户名。

指定用户名-Debian10

下一步,设置用户密码,点击“ 继续 Continue ”。

设置用户密码-Debian10

然后,设置时区。

设置时区-Debian10

这时,你要为 Debian10 安装创建分区。如果你是新手用户,点击菜单中的第一个选项,“ 使用最大的连续空余空间 Use the largest continuous free space ”,点击“ 继续 Continue ”。

使用最大的连续空余空间-debian10

不过,如果你对创建分区有所了解的话,选择“ 手动 Manual ” 选项,点击 “ 继续 Continue ”。

选择手动-Debain10

接着,选择被标记为 “ 空余空间 FREE SPACE ” 的磁盘,点击 “ 继续 Continue ” 。接下来,点击“ 创建新分区 Create a new partition ”。

创建新分区-Debain10

下一界面,首先确定交换空间大小。我的交换空间大小为 2GB,点击 “ 继续 Continue ”。

确定交换空间大小-debian10

点击下一界面的 “ 主分区 Primary ”,点击“ 继续 Continue ”。

磁盘主分区-Debian10

选择在磁盘 “ 初始位置 beginning ” 创建新分区后,点击继续。

在初始位置创建-Debain10

选择 “ Ext 4 日志文件系统 Ext 4 journaling file system ”,点击 “ 继续 Continue ”。

选择 Ext4 日志文件系统-debain10

下个界面选择“ 交换空间 swap space ” ,点击 “ 继续 Continue ”。

选择交换空间-debian10

选中 “ 完成此分区设置 done setting the partition ”,点击 “ 继续 Continue ”。

完成此分区设置-debian10

返回磁盘分区界面,点击 “ 空余空间 FREE SPACE ”,点击 “ 继续 Continue ”。

点击空余空间-Debain10

为了让自己能轻松一点,选中 “ 自动为空余空间分区 Automatically partition the free space ”后,点击 “ 继续 Continue ”。

自动为空余空间分区-Debain10

接着点击 “ 将所有文件存储在同一分区(新手用户推荐) All files in one partition (recommended for new users) ”。

将所有文件存储在同一分区-debian10

最后, 点击 “ 完成分区设置,并将改动写入磁盘 Finish partitioning and write changes to disk ” ,点击 “ 继续 Continue ”。

完成分区设置,并将改动写入磁盘

确定你要将改动写入磁盘,点击 “ Yes ”。

将改动写入磁盘-Debian10

而后,安装程序会开始安装所有必要的软件包。

当系统询问是否要扫描其他 CD 时,选择 “ No ” ,并点击 “ 继续 Continue ”。

扫描其他CD-No-Debain10

接着,选择离你最近的镜像站点地区,点击 “ 继续 Continue ”。

Debian-镜像站点-国家

然后,选择最适合你的镜像站点,点击“ 继续 Continue ”。

选择镜像站点

如果你打算使用代理服务器,在下面输入具体信息,没有的话就留空,点击 “ 继续 Continue ”。

输入代理信息-debian10

随着安装进程的继续, 你会被问到,是否想参加一个软件包用途调查。你可以选择任意一个选项,之后点击“ 继续 Continue ”,我选择了“ No ”。

参与调查-debain10

在软件选择窗口选中你想安装的软件包,点击“ 继续 Continue ”。

软件选择-debian10

安装程序会将选中的软件一一安装,在这期间,你可以去喝杯咖啡休息一下。

系统将会询问你,是否要将 grub 的引导装载程序安装到主引导记录表(MBR)上。点击 “ Yes ”,而后点击 “ 继续 Continue ”。

安装-grub-bootloader-debian10

接着,选中你想安装 grub 的硬盘,点击“ 继续 Continue ”。

选择硬盘-安装 grub-Debian10

最后,安装完成,直接点击 “ 继续 Continue ”。

安装完成-重新启动-debian10

你现在应该会有一个列出 Windows 和 Debian 的 grub 菜单。为了引导 Debian 系统,往下选择 Debian。之后,你就能看见登录界面。输入密码之后,按回车键。

Debian10-登录

这就完成了!这样,你就拥有了一个全新的 Debian 10 和 Windows 10 双系统。

Debian10-Buster-Details


via: https://www.linuxtechi.com/dual-boot-windows-10-debian-10/

作者:James Kiarie 选题:lujun9972 译者:wenwensnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

想要使用 Linux 命令,但又不想离开 Windows ?以下是在 Windows 中运行 Linux bash 命令的几种方法。

如果你正在课程中正在学习 shell 脚本,那么需要使用 Linux 命令来练习命令和脚本。

你的学校实验室可能安装了 Linux,但是你自己没有安装了 Linux 的笔记本电脑,而是像其他人一样的 Windows 计算机。你的作业需要运行 Linux 命令,你或许想知道如何在 Windows 上运行 Bash 命令和脚本。

你可以在双启动模式下同时安装 Windows 和 Linux。此方法能让你在启动计算机时选择 Linux 或 Windows。但是,为了运行 Linux 命令而使用单独分区的麻烦可能不适合所有人。

你也可以使用在线 Linux 终端,但你的作业无法保存。

好消息是,有几种方法可以在 Windows 中运行 Linux 命令,就像其他常规应用一样。不是很酷吗?

在 Windows 中使用 Linux 命令

作为一个热心的 Linux 用户和推广者,我希望看到越来越多的人使用“真正的” Linux,但我知道有时候,这不是优先考虑的问题。如果你只是想练习 Linux 来通过考试,可以使用这些方法之一在 Windows 上运行 Bash 命令。

1、在 Windows 10 上使用 Linux Bash Shell

你是否知道可以在 Windows 10 中运行 Linux 发行版? Windows 的 Linux 子系统 (WSL) 能让你在 Windows 中运行 Linux。即将推出的 WSL 版本将在 Windows 内部使用真正 Linux 内核。

此 WSL 也称为 Bash on Windows,它作为一个常规的 Windows 应用运行,并提供了一个命令行模式的 Linux 发行版。不要害怕命令行模式,因为你的目的是运行 Linux 命令。这就是你所需要的。

Ubuntu Linux inside Windows

你可以在 Windows 应用商店中找到一些流行的 Linux 发行版,如 Ubuntu、Kali Linux、openSUSE 等。你只需像任何其他 Windows 应用一样下载和安装它。安装后,你可以运行所需的所有 Linux 命令。

Linux distributions in Windows 10 Store

请参考教程:在 Windows 上安装 Linux bash shell

2、使用 Git Bash 在 Windows 上运行 Bash 命令

你可能知道 Git 是什么。它是由 Linux 创建者 Linus Torvalds 开发的版本控制系统。

Git for Windows 是一组工具,能让你在命令行和图形界面中使用 Git。Git for Windows 中包含的工具之一是 Git Bash。

Git Bash 为 Git 命令行提供了仿真层。除了 Git 命令,Git Bash 还支持许多 Bash 程序,如 sshscpcatfind 等。

Git Bash

换句话说,你可以使用 Git Bash 运行许多常见的 Linux/Bash 命令。

你可以从其网站免费下载和安装 Git for Windows 工具来在 Windows 中安装 Git Bash。

3、使用 Cygwin 在 Windows 中使用 Linux 命令

如果要在 Windows 中运行 Linux 命令,那么 Cygwin 是一个推荐的工具。Cygwin 创建于 1995 年,旨在提供一个原生运行于 Windows 中的 POSIX 兼容环境。Cygwin 是由 Red Hat 员工和许多其他志愿者维护的自由开源软件。

二十年来,Windows 用户使用 Cygwin 来运行和练习 Linux/Bash 命令。十多年前,我甚至用 Cygwin 来学习 Linux 命令。

Cygwin

你可以从下面的官方网站下载 Cygwin。我还建议你参考这个 Cygwin 备忘录来开始使用。

4、在虚拟机中使用 Linux

另一种方法是使用虚拟化软件并在其中安装 Linux。这样,你可以在 Windows 中安装 Linux 发行版(带有图形界面)并像常规 Windows 应用一样运行它。

这种方法要求你的系统有大的内存,至少 4GB ,但如果你有超过 8GB 的内存那么更好。这里的好处是你可以真实地使用桌面 Linux。如果你喜欢这个界面,那么你可能会在以后决定切换到 Linux

Ubuntu Running in Virtual Machine Inside Windows

有两种流行的工具可在 Windows 上创建虚拟机,它们是 Oracle VirtualBox 和 VMware Workstation Player。你可以使用两者中的任何一个。就个人而言,我更喜欢 VirtualBox。

你可以按照本教程学习如何在 VirtualBox 中安装 Linux

总结

运行 Linux 命令的最佳方法是使用 Linux。当选择不安装 Linux 时,这些工具能让你在 Windows 上运行 Linux 命令。都试试看,看哪种适合你。


via: https://itsfoss.com/run-linux-commands-in-windows/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

微软最近承认了另一个有关 Windows 10 May 2019 更新的问题,但幸运的是,用户实际上可以很容易地解决它。具体表现在 Windows 10 2019 年 5 月更新或版本 1903 会因为旧的高通驱动程序而遭遇 Wi-Fi 连接丢失。微软没有提供问题驱动程序的详细信息,但表示已经解决问题并提供更新后的驱动程序,建议用户尽快获取它。

“由于过时的高通驱动程序,一些较旧的计算机可能会失去 Wi-Fi 连接。应该可以从您的设备制造商(OEM)获得更新的 Wi-Fi 驱动程序。”微软解释道。

“为了保护您的升级体验,我们已经禁止在设备上使用此高通驱动程序的用户升级到 Windows 10 版本1903,直到安装了更新的驱动程序。”

虽然用户可以选择使用 Media Creation Tool 手动安装May更新,但微软建议不要使用此方法,除非部署了新的驱动程序。

来源:cnBeta.COM

更多资讯

Android Q 设备重启不断:谷歌证实将尽快修复

如果你升级到 Android Q 第三个测试版的话,那么最近是不是被设备不断重启搞崩溃了,事实上也确实如此,因为有很多用户都遇到了类似的情况,大家吐槽谷歌的声音越来越大。不少用户发现,自己设备升级至 Android Q Beta 3 之后,设备市场会发生重启,而且重启的状态没有任何预警,让人猝不及防。

来源: 快科技

详情: http://t.cn/AiKxGumo

人民日报追踪浏览器主页劫持:我的主页我做主

连日来,本报持续跟踪报道“浏览器主页劫持”现象,在网民中引发广泛共鸣。大家纷纷留言,吐露心声,揭露各种网络侵权行为,呼吁主管部门加强监管,督促相关企业严守底线,期盼进一步净化网络生态,实现“我的主页我做主”。

来源: 人民日报

详情: http://t.cn/AiKxqj8W

欧盟当局查封比特币混币服务商 Bestmixer.io 网站

荷兰金融刑事调查局在涉及欧洲刑警组织和其他当局的联合行动中关闭了比特币混币服务商 Bestmixer.io 的网站。欧洲刑警组织在周三的一份声明中表示,继去年夏天开始相关调查之后,警方查封了 Bestmixer.io,称其为 “针对加密混币服务商的首次执法行动” 。

来源: cnBeta.COM

详情: http://t.cn/AiKxqQWW

Canva 1.39 亿用户数据泄露

自称 GnosticPlayers 的黑客声称窃取了澳大利亚网站 Canva 的 1.39 亿用户数据。Canva 是一个非常受欢迎的平面设计服务,Alexa 排名在 200 以内。黑客窃取的数据包括了用户名字、真名 、电邮地址、城市国家信息,其中 6100 万用户有哈希密码,其他用户的信息还有用于登录的 Google 令牌。

来源: solidot.org

详情: http://t.cn/AiKxqrEp

(信息来源于网络,安华金和搜集整理)

/*注意:这篇文章没什么实际意义……*/

就如大家所知,5 月 6 日,微软宣布了新的 Windows 命令行界面 —— Windows Terminal。 无论这一产品本身如何、它的未来将去向何方,至少,它在这两天吸足了眼球。技术媒体争相复制黏贴相关通稿,大量人群涌入项目的 Github 仓库,2 天内点出超过 20000 星标 —— 并于今日成功跃居 Github 趋势榜榜首。

在项目宣布、仓库开放的这两天中,截止至发稿时,已经发生了 20 次提交,新增的 issue 有 121 条 —— 这个数字仍然以相当高的速度增长。截止至发稿时间,这些 issue 中有 72 条未被关闭,但剩余的 49 条(主要是问题之类)已经得到处理。作为对比,同样是微软的开源项目,具有接近 50000 星标的 TypeScript 在七天内总共有新 issue 75 条,这个数字比 Terminal 的 121 条少了三分之一。人群的涌入并不是 issue 数量极多的唯一原因:事实上,这个项目目前还处于 alpha 测试的早期阶段,问题多多在所难免。在目前开放的 issue 中,大部分是 bug 报告,其次是特性请求;我们可以注意到,bug 报告以界面 bug 为主(字体渲染问题,颜色问题,等等),而特性请求大多与交互方式相关。

界面 bug:“输入emoji会导致光标位置异常”

许多的提问已经被关闭,但似乎新的问题正不断冒出;最常见的几个问题分别是:

  • “我该如何编译这个项目?”(包括各种变体,比如 VS 报错,编译失败等等)
  • “是否有官方的二进制文件放出?”
  • “为什么我打开编译好的程序,它看起来却和旧的界面差不多?”

(项目组把编译指南放在了明显位置)

在部分吃瓜群众面对 VS 枯坐时,另一些吃瓜群众决定打开他们的脑洞。已关闭的 issue 中包含了一些特别的提问:提出者想要知道能不能在 Linux / MacOS 中使用这个项目,但被项目组人员告知目前没有将它登陆其他平台的打算。

“功能请求: Linux 支持。拜托了。”

目前,许多网友对这一项目表示了惊喜和看好。尽管现在到处可以见到“吹爆”式的评论,但如果谈起人民群众,当然不能错过一支永远期待着微软出洋相的互联网力量(当然我们很“惊喜”地发现很多吐槽是中文的):

评论总结:巨硬辣鸡!(破音)

也少不了奇葩:

(看看下面的 emoji 就能够感受到这条 issue 给广大群众的快乐)

(我觉得你应该跟开发 LOL 的公司聊聊)

(我真不想承认我看得懂你的文字)

(而这就是在捣乱了)

现场一度极其热闹,以至于项目管理方出手干预之后才避免成了瓜地。

如果没有自己试着接触过讨论对象,参加讨论时恐怕难免会有一种云玩家般的心虚感。笔者用亲身经历告诉你,别看讨论热火朝天,想要用上这尚在a测的新终端,事实上并不是那么容易的:无论是自行编译项目还是用现在网上第三方编译的安装包安装,你都需要……嗯,系统更新。

“前提条件:你需要 Windows 1903 或以上版本以运行 Windows Terminal.”

看着 VS 里一条条的报错,和这霸道的官方要求,我仰天大喊:

“我看这破软,是药丸呐!”

原文观点

今日 Linux 中国发布了一篇文章 《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》 。该文主要观点引用如下:

  • Windows Terminal 是一个套在 Windows 操作系统原本的 CMD、Powershell、Windows Subsystem for Linux(WSL)之上的一个界面更加漂亮、功能更加强大的终端工具。严格来说,它是套在 CMD 、Powershell 之上的一个终端。
  • 它也只是一个终端而已,而不是一个更加好用的 Shell。
  • Windows 用户所吐槽的命令行不好用不在于其表面,而在于其没有一个足够好用的 Shell。
  • 看起来,Windows Terminal 和 WSL 的结合,已经非常完美了,但作为一个 Shell 来用的话,又显的过于笨重。
  • WSL 无论做的再怎么好,无法摆脱它只是一个运行于 Windows 系统中附属的子系统。无论 WSL 做的再好,本质上并没有比虚拟机做的更多。
  • 作为生态的打造者,微软真正可以做好的是,打造一个能够在体验和生态上与 Unix Shell 一致的 Shell,或者是干脆提供 Bash、Zsh 等常用 Shell 的原生支持(WSL 虽然支持 Bash、Zsh等,但依然是需要先进入 WSL 才能使用,但你可以畅想一下,如果 CMD 变成了 Bash,会是什么样的呢?)。
  • 对于广大使用 Windows 开发的用户来说,一个闪闪发亮的、现代化的、功能强大的终端固然很好,但好的终端只不过是锦上添花之举,而一个强大好用的 Shell 才是真正能够雪中送炭的东西,只有一个足够好用的 Shell,才能成为 Windows 命令行世界的救世主。

关于原文更完整的观点,请参阅原文。这里针对原文观点和表达一些不同意见的商榷。

Terminal 与 Shell

诚如原文所说,Windows Terminal 其实是一个窗口而已,真正执行的是里面的软件,但是 Windows Terminal 并不如原文说的那么一无是处。众所周知 CMD、PowerShell 默认进入以后是没有标签的,想要使用多个只能多开窗口,管理起来不如够方便,而且配色也是影响使用者快速定位问题的一个重要指标。而这次的 Windows Terminal 不但解决这些问题,还能够支持 emoji,可大大提升在里面所运行的程序的使用体验。

再来说说什么是 shell ?一个 shell 是提供用户与操作系统交互的界面/入口,当我们在命令行中输入各种命令时,其实就是在执行一个应用程序,shell 将这些程序送往内核进行执行,所以最终还是要归到内核的系统调用,此外广义上的 shell 其实还包括了图形界面。

让我们来看看第一个点:

  • Windows Terminal 是一个套在 Windows 操作系统原本的 CMD、Powershell、Windows Subsystem for Linux(WSL)之上的一个界面更加漂亮、功能更加强大的终端工具。严格来说,它是套在 CMD 、Powershell 之上的一个终端。

Windows Terminal 准确来说就是一个支持配色的更加现代的终端入口,也不能说是嵌套什么 CMD、PowerShell、WSL,你想怎么使用它取决于你想进入什么样的命令行解释器。举个 Linux 下的例子就是我可以在 konsole 下使用 fish、zsh、bash 等 shell 解释器。

更好用的 shell?

  • 它也只是一个终端而已,而不是一个更加好用的 Shell。
  • Windows 用户所吐槽的命令行不好用不在于其表面,而在于其没有一个足够好用的 Shell。
  • 看起来,Windows Terminal 和 WSL 的结合,已经非常完美了,但作为一个 Shell 来用的话,又显的过于笨重。

关于这里,我觉得原文作者忽视了 Shell 与 Terminal 的区别。Shell 作为一个命令解释器,必然有自己的语法。而 Linux 生态系统中已经很好用的 shell 就有 fish、zsh、bash 等,但是这些语法也不是所有都兼容的,而且一个好用的 shell 一般只是用户感觉上的东西,没有很明确的指标。Windows 用户在有了 WSL 之后可以使用任何 Linux 已经有的 shell 解释器,这其实已经足够解决问题了,毕竟这些工具的改进是为了吸引 Linux 平台上的开发者,而不是为了一个毫无经验的小白准备的。

此外,原文作者提到的 Windows Terminal 与 WSL(搭载完整内核) 结合作为 shell 使用的话,无异于高射炮打蚊子。这点我也是强烈反对的,首先 shell 只是一个命令解释器,它其实不负责命令的执行,最终所有的程序都要传递给系统调用,如果底层的系统调用不支持,那么该 shell 脚本也是无法执行的(内核不会有反应、或者报错),所以你要使用 shell,那么必须要求有底层内核的支持,这不是什么高射炮打不打蚊子的事,而是你必须要知道其实 shell 它自己本身就是个解释器,没有别的特异功能而已。

一个更好用的 shell 也许是值得吸引人的,但是其实 shell 的语法也不见得多好用,很多反人类的,只是我们已经学习接受了这种语法所以认可它。另一个方面是历史问题,要想你写的脚本一次编写处处执行,那么最好就是 bash 兼容了,否则别人为了执行你的特殊语法,还要装一个能读懂你的 shell 语法的解释器。

wsl 与虚拟机?

  • WSL 无论做的再怎么好,无法摆脱它只是一个运行于 Windows 系统中附属的子系统。无论 WSL 做的再好,本质上并没有比虚拟机做的更多。

我其实觉得这句话没有道理,为什么这样说呢,确实 WSL 不会比虚拟机做的更多,因为你虚拟机安装的是一个完整的操作系统,但是 WSL 优势是什么?

WSL 的优势就是不需要虚拟机,你便可以使用大部分 Linux 的生态,这是向开发人员示好。而且 WSL 不需要长期运行一个虚拟机,在 WSL1 的时候,你实际执行应用 WSL 会把系统调用转成 NT 系统调用。而 WSL2 将包含完整 Linux 内核,还将支持 Docker(此处无法得知它具体的实现,不做推测)。WSL1 的限制很多,使用起来不是特别方便,这个有使用过的朋友应该很有体会,但是 WSL2 既然能运行 Docker,那么有了 Docker 我就有了一切。

生态体验?

  • 作为生态的打造者,微软真正可以做好的是,打造一个能够在体验和生态上与 Unix Shell 一致的 Shell,或者是干脆提供 Bash、Zsh 等常用 Shell 的原生支持(WSL 虽然支持 Bash、Zsh等,但依然是需要先进入 WSL 才能使用,但你可以畅想一下,如果 CMD 变成了 Bash,会是什么样的呢?)。
  • 对于广大使用 Windows 开发的用户来说,一个闪闪发亮的、现代化的、功能强大的终端固然很好,但好的终端只不过是锦上添花之举,而一个强大好用的 Shell 才是真正能够雪中送炭的东西,只有一个足够好用的 Shell,才能成为 Windows 命令行世界的救世主。

这两个观点也是不攻自破的,我既然可以使用 WSL,那么我本身就拥有了 Linux 的生态。如果是希望写 bat 批处理而能有 bash、zsh 的这些体验,那么确实是需要一个新的 shell 满足 Unix Shell 语法,再来解释 Windows 下的命令行,可是这其实也是不需要的。因为本人发现在 WSL 里面执行一个 exe 程序是完全可行的,因此可以用这种 shell 语法去编写我的脚本,oh nice!!体验非常统一啊有没有?

locez@Lenovo-PC~> pycharm64.exe  ### 会启动我的 pycharm
locez@Lenovo-PC~> git.exe | xargs echo

我的观点

我本人认为,微软的这些拥抱 Linux 的举措,其实就是在吸引 Linux 上的开发者而已,开发者想要的工具,如果能够在 Windows 下就能直接使用,那对我们这些开发人员来说无外乎是喜报。工具多一个总不是坏事,但是如果它真的值得使用,那么用户一定会增加,这就是需要微软来做的事情了。我本人是双系统用户,在打游戏娱乐方面我一定会使用 Windows,做开发写代码我会切换到 Linux,曾经写一个很小的软件也是如此。但是后来 WSL 出现了,简单的脚本我可以在 Windows 下就直接完成并且提交,不需要重启系统,然后继续玩我的游戏,美滋滋。

另外就是 Windows Terminal 与 WSL2 的出现会解放我现在系统上的一些工具,例如 git bash、gpg4win 等。如果 WSL2 真的有完整的系统调用,那么我现有的 Windows 上的开发环境便不再需要,专注于游戏娱乐,但是一进 WSL 便是我工作学习的地方。