Windows的Linux化持续推进中

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

在这个领域的读者们都知道,我喜欢谈论微软是如何重启自己的,如何围绕开源重新定位公司,并创造了WSL(Windows子系统Linux)。让我惊讶的是,这家曾经称Linux为癌症的公司如何重建自己成为一个离不开它的企业。这就引出了今天的新闻。如果你使用的是Windows 11,那么不久后,你将能够启动Windows终端并输入类似下面这样的命令:

`sudo notepad \windows\system32\drivers\etc\hosts`

这当然是Linux中著名的sudo命令,它如此出名以至于有自己的xkcd漫画(如下所示)。当你运行sudo时,你会看到熟悉的Windows UAC弹窗,询问你是否想要提升你的权限。如果你同意,接下来的语句将以管理员身份执行。(对于你接下来输入的任何内容,生活都会恢复正常。)

在这个例子中,我使用sudo来以管理员身份启动记事本。这对于编辑hosts文件很重要。作为普通用户,我不允许更新这个文件。但现在,我玩在线象棋玩得太多了。我知道我可以通过一个简单的编辑来切断这个干扰,阻止访问chess.com,不需要额外的软件。所以,是时候穿上我的管理员靴子,做出改变了。

如何将sudo引入Windows
Sudo代表“超级用户执行”。这是Linux中升级权限的一种方便方式。但这个例子是在Windows中,我以普通方式(在非管理员用户环境中)打开了一个Windows终端窗口。通常,sudo在这里不起作用。但在最新的Windows 11 insider预览版(构建26052)中,所有这些都发生了变化,sudo被包含为一个可选的开发者特性。

假设你已经加入了Windows内部测试计划,你可以从Windows设置中的“设置 > 针对开发者”页面启用sudo。或者,你可以启动一个提权的Windows终端会话,并使用以下命令来启用它:

`sudo config --enable normal`

“normal”选项赋予你完整的sudo权限,就像在Linux中一样。另外,你还可以使用更安全的选项disableInput,它不允许提升权限的过程接收任何进一步的用户输入,或者forceNewWindow,它会启动一个新的终端窗口来运行新提升权限的过程。这两种方法都可以减轻一些潜在的安全风险,但它们改变了sudo的工作方式,使其不完全与Linux实现相同。

顺便说一下,微软已经暗示,他们可能会将sudo移植回Windows 10。所以,这个新功能将成为即使对于使用较旧PC的开发者来说也是标准选项。

我们需要sudo吗?
没有sudo,我会使用某种版本的runas来成为管理员——要么通过在命令行中输入runas,要么通过右击开始菜单中的Windows终端图标来获取“以管理员身份运行”的选项。

因此,从技术上讲,sudo并没有给你带来你已经做不到的东西。相反,它允许你以传统的Linux方式工作。如果你是一个真正的Linux用户,这特别棒,无论是因为你花了很多时间配置服务器或云环境,还是你只是喜欢在那个操作系统中开发。然后,使用sudo就像输入ls代替dir或cat代替type一样——一种使用对你来说最熟悉的方法而不需要额外认知转换的方式。(是的,Windows也允许这些其他替代。)

不那么明显,但同样重要的是,像sudo这样的添加帮助Windows开发者更加舒适地了解Linux的惯例。在过去的几年中,我已经开始更喜欢Linux选项而不是原生的Windows-only shell命令。那是因为,我对Linux命令越熟悉,就越不可能在下次我在真正的Linux提示符下工作时——例如,在像AWS这样的云环境的shell中——感到迷失和孤独。我打算也充分利用sudo。

微软和Linux,一段不寻常的恋情。如果你对微软拥抱Linux还不太了解,你绝对应该看看WSL,这是随Windows一起发货的Linux内核,允许各种有趣的互操作性场景。例如,你可以直接在VS Code中开发到一个虚拟的Linux文件系统,并在Docker中运行Linux容器。如果你还没有玩过WSL,看看《每个Windows开发者都需要一点Linux》以获取一些宝贵的背景信息。

让我们花一点时间感谢微软那些有远见的人,他们迫使公司改变了其早期的路线和妖魔化Linux的方式。虽然只用了二十多年的时间,但似乎很清楚,如果没有那次转变,微软只会成为科技历史上的又一个沉重的脚注。现在我们处在一个交替的历史中,微软做了一些几年前看起来

疯狂的事情。比如使用JavaScript构建世界上最受欢迎的代码编辑器(VS Code),重建他们庞大的.NET项目使其跨平台和开源,当然还有——将一个完整的Linux内核偷偷搬进Windows的心脏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/717888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础 - 6 - 面向对象(二)

Java基础 - 6 - 面向对象(一)-CSDN博客 二. 面向对象高级 2.1 static static叫做静态,可以修饰成员变量、成员方法 2.1.1 static修饰成员变量 成员变量按照有无static修饰,分为两种:类变量、实例变量(对象…

JavaScript 语句语法的教程

JavaScript 是一种广泛应用于网页开发的脚本语言,熟练掌握 JavaScript 的语法是成为一名优秀的前端开发工程师的必备技能之一。本教程将详细介绍 JavaScript 中的语句语法,帮助初学者快速入门并加深对 JavaScript 语法的理解。 一、注释 在 JavaScript…

常见的爬虫逆向面试题

文章转载于:https://mp.weixin.qq.com/s/dXRo0D_Xx7E_h85XbnwPVQ 有兴趣去源站浏览学习 主要自己看着方便些 1.HTTS三次握手 目前使用的 HTTP/HTTPS 协议是基于 TCP 协议之上的,因此也需要三次握手。在 TCP 三次握手建立链接之后,才会进行 …

故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab) 模型描述 XGBoost通过集成多个决策树来建立一个强大的预测模型。它采用了一种特殊的梯度提升技术,称为极限梯度提升(Extreme Gradient Boosting),以提高模型的性能和鲁棒性。 极限梯度…

【大数据Hive】hive 多字段分隔符使用详解

目录 一、前言 二、hive默认分隔符规则以及限制 2.1 正常示例:单字节分隔符数据加载示例 2.2 特殊格式的文本数据,分隔符为特殊字符 2.2.1 文本数据的字段中包含了分隔符 三、突破默认限制规则约束 3.1 数据加载不匹配情况 1 3.2 数据加载不匹配…

python paramiko 网络系统运维

概述 背景:网络系统运维与建设:工作中发现客户使用python脚本批量操作网络设备导出多台网络设备的配置定期执行相关的巡检工作 修改配置 # -*- coding:utf8 -*- """ # editor: hjjdreamer # create-time: 2024/3/3-23:31 # Python-Scri…

Java项目推荐|几个B站上的从零搭建项目

分享几个B站上搜集到的技术比较全,讲解也详细的Java后端开发项目 目录 谷粒商城 2020-03-31 iHRM 人力资源管理系统 2021-04-16 瑞吉外卖 2022-04-12 学成在线 2023-01-13 尚上优选 2023-06-06 黑马头条 2023-06-13 苍穹外卖 2023-07-05 谷粒商城 2020-03-3…

命名实体识别NER

一、什么是命名实体识别: 命名实体:通常我们将人名、地名、机构名等专有名词统称命名实体,如:周杰伦,黑山县,孔子学院,24方钢直机 顾名思议,命名实体识别(简称NER&#x…

【常用的 Git 命令及简要示例说明】

常用的 Git 命令及简要示例说明,以供参考: 初始化一个新的代码仓库: git init克隆一个远程仓库到本地: git clone https://github.com/user/repo.git添加当前所有变更到暂存区: git add .提交暂存区的变更到本地仓库&a…

STM32FreeRTOS任务通知(STM32cube高效开发)

文章目录 一、任务通知(一)任务通知概述1、任务通知可模拟队列和信号量2、任务通知优势和局限性 (二) 任务通知函数1、xTaskNotify()发送通知值不返回先前通知值的函数2、xTaskNotifyFromISR()发送通知函数ISR版本3、x…

Java面试题总结200道(二)

26、简述Spring中Bean的生命周期? 在原生的java环境中,一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中,将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象,就存在生命周期,也就是作用…

LeetCode 刷题 [C++] 第73题.矩阵置零

题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 题目分析 题目中要求使用原地算法:即直接在输入矩阵上进行修改。因此如果在输入矩阵上把行/列的值修改成0后,在…

【Linux】基本指令(下)

🦄个人主页:修修修也 🎏所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 日志 日志的概念: 网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关…

计算机视觉(Computer Vision)和机器视觉(Machine Vision)

举例说明计算机视觉(CV)技术的优势和挑战 计算机视觉(CV)技术是一种使用计算机科学和机器学习方法来解释、分析和理解图像和视频的技术。它的优势和挑战如下: 优势: 高效性:CV技术可以快速处…

课时53:数组实践_基础操作_数组基础

1.1.2 数组定义 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 数组创建 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的语法格式:array_name(value1 ... valuen) 注意…

MSCKF4讲:后端理论推导(下)

MSCKF4讲:后端理论推导(下) 文章目录 MSCKF4讲:后端理论推导(下)6 可观测性分析与约束6.1 为什么要做能观性分析6.2 关于零空间解释6.3 可观测性分析6.4 可观测性约束① 状态转移矩阵Φ② 对观测矩阵H--观测…

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)

[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N N N 个整数。 现在给出这 N N N 个整数,小明想知道包含这 N N N 个整数的最短的等差数列有几项? 输…

deep learning with pytorch(一)

1.create a basic nerual network model with pytorch 数据集 Iris UCI Machine Learning Repository fully connected 目标:创建从输入层的代码开始,向前移动到隐藏层,最后到输出层 # %% import torch import torch.nn as nn import torch.nn.funct…

【大数据】详细讲解

大数据 0. 前言1. 大数据的5V特征2. 大数据技术3. 大数据分析4. 大数据应用5. 失效风险与挑战 0. 前言 大数据是一个涉及非常庞大和复杂数据集的领域,这些数据集因其规模和复杂性而难以使用传统数据处理软件进行有效处理。在讲解大数据之前,我们首先需要…

LeetCode26 删除有序数组中的重复项

题目 给你一个 非严格递增排列 的数组 nums ,请你原地删除重复出现的元素, 使每个元素 只出现一次 ,返回删除后数组的新长度。 元素的 相对顺序 应该保持 一致 然后返回 nums 中唯一元素的个数。 示例 示例 1:输入:num…