Linux安装微软命令行文本编辑器-Microsoft Edit

微软干了一件好事!2025 年 5 月 18 日,Microsoft 发布了用 Rust 编程语言编写的编辑器的开源重建版本,简称为 Edit,适用于现代版本的 Windows。版本号未继续,重置从1.0.0开始,目前已经是1.2.0

Microsoft Edit 是 MS-DOS 的怀旧风格, 以widnows Dos 的操作习惯,解决了Linux shell 中编辑文本痛苦的大问题。

目前Microsoft Edit已支持包括FreeBSD在内的多种Unix-like系统,但Debian官方仓库尚未收录该软件包。只能通过下载安装文件的方式安装,安装过程中若遇到网络问题,可能需要配置合适的软件源镜像。

Linux 下安装脚本(Ubuntu、Debian 和 Linux Mint):

# 安装 Zstandard 
apt install zstd

# 下载软件包
wget https://github.com/microsoft/edit/releases/download/v1.2.0/edit-1.2.0-x86_64-linux-gnu.tar.zst

# 解压缩到用户的当前目录
tar xvf edit-1.2.0-x86_64-linux-gnu.tar.zst

# 将其移动到 bin 目录中以便随时访问,请相应调整路径
mv edit /usr/local/bin/edit

# 查看版本号
edit -v

# 启动编辑器
edit

终端输入edit命令即可启动编辑器

edit --version 查看版本

Windows 下 使用 winget 安装

winget install Microsoft.Edit

常用快捷键

New File:Ctrl+N
Open File:Ctrl+0
Save:Ctrl+s
Close Editor:Ctrl+W
Exit:Ctrl+Q
Undo:Ctrl+Z
Redo:Ctrl+Y
Cut:Ctrl+x
Copy:Ctrl+c
Paste:Ctrl+V
Find:Ctrl+F
Replace:Ctrl+R

解决 wsl 重启后 /etc/resolv.conf 中的DNS丢失

今天在wsl中不知道操作了什么,重启后apt更新报错,发现resolv.conf的DNS变成了“127.0.0.1”,然后用 echo 写入 DNS,重启后又是没有了。

按微软的文档,设置修改 /etc/wsl.conf

[network]
generateResolvConf = false

然后写入 DNS 到 resolv.conf

echo "nameserver 192.168.1.1" > /etc/resolv.conf
echo "nameserver 114.114.115.115" > /etc/resolv.conf

重启后,一样,添加的nameserver没有了。

在windows中,直接编辑 \wsl.localhost\Debian\etc\resolv.conf

提示“系统无法辨识文件名”,无法直接修改。

看了服务,猜测是不是某些服务控制修改的,如:resolvconf,rdnssd,systemd-resolved,先关闭启动:

systemctl disable --now resolvconf.service rdnssd.service systemd-resolved.service

再次 echo DNS 到 resolv.conf, 重启后,还是不行。。。

无奈,直接删除了resolv.conf: rm /etc/resolv.conf

再生成写入:

echo "nameserver 192.168.1.1" > /etc/resolv.conf
echo "nameserver 114.114.115.115" > /etc/resolv.conf

然后再设置只读:sudo chattr -f +i /etc/resolv.conf

再次重启,DNS没有丢失。

如果要在windows中直接修改,设置为属性可写:sudo chattr -i /etc/resolv.conf

不知道为什么必须要先删除,才再建resolv.conf,才可以修改成功。。。

【end】

解决WSL因盘符变更,系统找不到指定的路径

新加了一块硬盘(F), 将WSL存放的老盘(L)数据拷入新硬盘(F)

之后因盘符变更, 启动wsl时提示如下:

无法将磁盘“L:\WSL\Debian\ext4.vhdx”附加到 WSL2: 系统找不到指定的路径。
错误代码: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_PATH_NOT_FOUND

[已退出进程,代码为 4294967295 (0xffffffff)]

问题是去哪里修改? 虚拟机调用镜像的设置保存在哪里?

找了篇微软文档参考: 如何查找 Linux 发行版的 .vhdx 文件和磁盘路径 https://learn.microsoft.com/zh-cn/windows/wsl/disk-space#how-to-locate-the-vhdx-file-and-disk-path-for-your-linux-distribution

.vhdx 文件和磁盘路径, 存储在注册表的以下地址中:

HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss

Lxss 下 类似 { guid } 的条目就是子系统条目, 有几个子系统会有几条。(我的有3个子系统 )

条目下数值项 “BasePath”,就是文件地址目录,直接修改盘符路径,重启wsl就可以了!

其他问题

如果修改注册表,wsl启动后,wsl提示:

<3>WSL (xxx) ERROR: UtilTranslatePathList:2852: Failed to translate” (之后跟着一个windows文件路径)

如我的提示:

<3>WSL (461) ERROR: UtilTranslatePathList:2852: Failed to translate L:\PHP\php-8.1.23-nts-Win32-vs16-x64

说明后面这个路径,是被设置在系统环境变量中,还是有由于盘符变动造成的问题。把系统环境变量的路径值修改了,就好了!

【end】

使用 HttpRepl 浏览、测试 Web API

The HTTP Read-Eval-Print Loop (REPL) 

  • 一种轻量级跨平台命令行工具,在所有支持的 .NET Core 的位置都可得到支持。
  • 用于发出 HTTP 请求以测试 ASP.NET Core Web API(和非 ASP.NET Core web API)并查看其结果。
  • 可以在任何环境下测试托管的 web API,包括 localhost 和 Azure 应用服务。

安装:dotnet tool install -g Microsoft.dotnet-httprepl

(视频)使用 HttpRepl 浏览 Web API:

https://learn.microsoft.com/zh-cn/shows/beginners-series-to-web-apis/exploring-web-apis-with-the-httprepl-16-of-18–beginners-series-to-web-apis

使用 HttpRepl 测试 Web API

https://learn.microsoft.com/zh-cn/aspnet/core/web-api/http-repl/?view=aspnetcore-8.0&tabs=windows

HttpRepl:用于与 RESTful HTTP 服务交互的命令行工具

https://devblogs.microsoft.com/dotnet/httprepl-a-command-line-tool-for-interacting-with-restful-http-services/#configure-visual-studio-for-windows-to-launch-httprepl-on-f5

HttpRepl GitHub 存储库https://github.com/dotnet/HttpRepl

powershell相关

查看别名

  • 使用Get-Command查看Alias的命令: Get-Command -CommandType Alias
  • 查看此Session中已经设定的所有别名:Get-Aliasgal
  • 查看某别名的原命令,如ls的原命令:Get-Alias ls
  • 查看某原命令的别名,如Get-ChildItem的别名:Get-Alias -Definition Get-ChildItem
  • 按属性获取别名:Get-Alias | Where-Object {$_.Options -Match "ReadOnly"}

Windows 中的兼容性别名

PowerShell 具有多个别名,使 UNIX 和 cmd.exe 用户可以在 Windows 中使用熟悉的命令。 下表显示了常用命令、相关的 PowerShell cmdlet 和 PowerShell 别名:

cmd.exe命令UNIX 命令PowerShell CmdletPowerShell 别名
cdchdircdSet-Locationslcdchdir
clsclearClear-Hostcls clear
copycpCopy-Itemcpicpcopy
deleraserdrmdirrmRemove-Itemrideleraserdrmrmdir
dirlsGet-ChildItemgcidirls
echoechoWrite-Outputwrite echo
mdmkdirNew-Itemni
movemvMove-Itemmimovemi
popdpopdPop-Locationpopd
pwdGet-Locationglpwd
pushdpushdPush-Locationpushd
renmvRename-Itemrniren
typecatGet-Contentgccattype

 备注

此表中的别名特定于 Windows。 某些别名在其他平台上不可用。 这是为了使本机命令能够在 PowerShell 会话中工作。 例如,未在 macOS 或 Linux 上将 ls 定义为 PowerShell 别名,以便运行本机命令而不是 Get-ChildItem

Windows 下GUI编辑工具 PowerShell ISE

单击“开始”,选择“Windows PowerShell”,然后单击“Windows PowerShell ISE”。 或者,可以在任何命令外壳或“运行”框中键入内容。powershell_ise.exe

Linux下安装 powershell

如果你已安装 .NET Core SDK,则可以轻松地安装 PowerShell 作为 .NET 全局工具

sh复制

dotnet tool install --global PowerShell

dotnet 工具安装程序将 ~/.dotnet/tools 添加到 PATH 环境变量中。 但是,当前运行的 shell 没有更新的 PATH。 应该可以通过键入 pwsh 从新 shell 启动 PowerShell。

尝试刷新 DNS 缓存的方法

当计算机首次访问网站时,它会将网站的DNS信息存储在缓存中,并且在下次访问同一网站时,它会在缓存中查找是否存在网站的信息以供使用。如果网站的 DNS 信息自上次访问计算机以来发生更改,则会打开旧版本的站点。

当 DNS指向IP 地址发生更改或缓存错误结果时,通过删除刷新DNS缓存中存储的数据,从而强制计算机查找网站的新 DNS 信息。这样做通常是为了加快该过程并最大限度地减少对相同主机名的请求。DNS缓存可以通过命令行或从浏览器清除。刷新主要操作系统和浏览器的 DNS 缓存,可以尝试以下的步骤:

在 Windows 10 中刷新 DNS
选项 1 – 命令提示符

要重置 DNS 解析程序缓存,请执行以下步骤:

  1. 点按按钮,然后键入Startcmd
  2. 右键单击 ,然后选择 。Command PromptRun as Administrator
  3. 键入,然后按 。(确保斜杠前有一个空格ipconfig /flushdnsEnter)

命令框将在屏幕上闪烁一瞬间,并清除 DNS 解析程序缓存。

此外,您可能还对其他一些相关命令感兴趣:

  • ipconfig /displaydns:它在Windows IP配置下显示您当前的DNS缓存。
  • ipconfig /registerdns:注册记录在主机文件中的 DNS 缓存。
  • ipconfig /release:释放当前的 IP 地址设置。
  • ipconfig /renew:重置并请求新的 IP 地址。
选项 2 – Windows PowerShell
  1. 选择按钮,然后键入Startpowershell
  2. 选择Windows PowerShell
  3. 键入以下命令,然后按 Enter 键:
  4. Clear-DnsClientCache
Chromium 内核浏览器

打开浏览器在地址栏中键入:

Chrome浏览器 chrome://net-internals/#dns

Edge浏览器 edge://net-internals/#dns

点击 Clear host cache 按钮,清理主机缓存

在地址栏中,键入:chrome://net-internals/#sockets

单击 ,然后单击 Close idle socketsFlush socket pools 按钮

解决windows下访问WSL文件拒绝访问

通过文件管理器直接访问 \\wsl$ 编辑linux子系统文件时提示文件拒绝访问。

原因是因为你启动linux的非管理员账号

解决方法
如果是这样的话,需要修改默认登录用户为root即可,修改方式如下:

C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\debian.exe config --default-user root

修改完成后重启wsl,如下:

关闭wsl:wsl --shutdown
之后,在重新启动wsl

VPS下检测虚拟化方式的工具

imvirt

http://micky.ibh.net/~liske/imvirt.html

virt-what

https://people.redhat.com/~rjones/virt-what/

另外,wsl下执行“lsb_release -a”查看发行版本,会提示:“lsb_release: command not found”

执行命令安装 lsb_release

apt-get install -y lsb-release

Chrome 与 Flash 说再见

Adobe宣布计划在2020年底停止支持Flash。

20年来,Flash一直在帮助您塑造在网络上玩游戏、观看视频和运行应用程序的方式。但是在过去的几年里,flash已经不那么常见了。三年前,80%的桌面Chrome用户每天访问一个带有Flash的网站。今天的使用率只有17%,而且还在继续下降。

这一趋势表明,网站正在向比Flash更快、更节能的开放式Web技术转移。它们也更安全,因此在购物、银行或阅读敏感文档时更安全。它们也可以在移动和桌面上工作,所以你可以在任何地方访问你最喜欢的站点。

这些开放式Web技术在去年年底成为Chrome的默认体验,当时网站开始需要请求您的许可才能运行Flash。在接下来的几年里,Chrome将继续逐步淘汰Flash,首先是请求您允许在更多情况下运行Flash,最后在默认情况下禁用它。到2020年底,我们将把flash完全从chrome中删除。

如果你今天经常访问一个使用flash的网站,你可能会想知道这对你有何影响。如果网站迁移到开放式Web标准,除了不再看到在该网站上运行flash的提示外,您不应该注意到有什么不同。如果站点继续使用flash,并且您授予站点运行flash的权限,那么它将一直工作到2020年底。

为了确保网络准备好无闪存,需要与Adobe、其他浏览器和主要发行商密切合作。我们支持Adobe今天的声明,我们期待着与所有人合作,使网络变得更好。

Windows下 NTP时间服务器设置

NTP时间服务器
pool.ntp.org: public ntp time server : https://www.ntppool.org/zh/

pool.ntp.org 是一个以时间服务器的大虚拟集群为上百万的客户端提供可靠的 易用的 网络时间协议(NTP)服务的项目

NTP池正在为世界各地成百上千万的系统提供服务。 它是绝大多数主流Linux发行版和许多网络设备的默认“时间服务器”


国内NTP服务 http://ntp.org.cn/pool.php

设置

Windows 可以使用系统内置的ntp客户端: 以管理员权限在命令行运行如下指令:

w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org"

这在Windows 2003及之后的版本中被支持。 如果您使用旧版的Windows,您可以尝试如下指令:

net time /setsntp:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org"

作为管理员,右键任务栏的时钟,选择“更改日期和时间设置…”,并且在“Internet时间”选项卡下输入服务器名也能达到同样的效果。