# ShellWindows
# Flag
- https://github.com/topics/cygwin (opens new window)
- http://www.cygwin.com (opens new window)
- https://sourceware.org (opens new window)
- 多个shell软件包镜像 https://github.com/mirror (opens new window)
- https://github.com/svn2github (opens new window)
- https://winlibs.com (opens new window)
- 沙箱 https://github.com/sandboxie-plus (opens new window)
# 第三方工具
- 扫描任何32位或64位Windows模块(exe,dll,ocx,sys等)的函数 http://www.dependencywalker.com (opens new window)
- DLL导出查看器 http://www.nirsoft.net/utils/dll_export_viewer.html (opens new window)
- RegDllView-查看系统上已注册的dll/ocx/exe文件,从资源管理器注册dll文件:
- Windows 10的system32目录中的所有DLL文件信息 http://windows10dll.nirsoft.net (opens new window)
- 下载– NTCore https://ntcore.com/?page_id=345 (opens new window)
- 小型命令行实用程序 http://www.ltr-data.se/opencode.html/#CmdUtils (opens new window)
- 网络请求工具 https://eternallybored.org/misc/wget (opens new window)
- 窗口控制 https://github.com/ritchielawrence/cmdow (opens new window)
- 日志分析工具Log Parser (opens new window)
# WSL
- https://github.com/topics/wsl (opens new window)
- https://github.com/topics/windows-subsystem (opens new window)
- https://github.com/topics/windows-subsystem-linux (opens new window)
- https://github.com/topics/windows-subsystem-for-linux (opens new window)
- https://github.com/sirredbeard/Awesome-WSL (opens new window)
- https://github.com/microsoft/WSL (opens new window)
- 性能评测 https://github.com/microsoft/Microsoft-Performance-Tools-Linux-Android (opens new window)
- WSA Tool https://github.com/weareblahs/WSAUtilities (opens new window)
- https://github.com/alesimula/wsa_pacman (opens new window)
- https://github.com/voletro/wsa-toolbox (opens new window)
- https://github.com/yuk7/ArchWSL (opens new window)
- https://github.com/agowa338/WSL-DistroLauncher-Alpine (opens new window)
- https://github.com/topics/wsl-debian (opens new window)
- 关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法 (opens new window)
- https://github.com/shayne/go-wsl2-host (opens new window)
- https://github.com/microsoft/WSL/issues/4210#issuecomment-648570493 (opens new window)
- https://github.com/MustardChef/WSABuilds (opens new window)
- https://github.com/LSPosed/MagiskOnWSALocal (opens new window)
- https://docs.microsoft.com/zh-cn/virtualization (opens new window)
- https://docs.microsoft.com/zh-cn/windows-server/virtualization (opens new window)
- https://github.com/nullpo-head/WSL-Hello-sudo (opens new window)
- https://github.com/microsoft/WSA-Linux-Kernel (opens new window)
- https://github.com/WSA-Community/WSAGAScript (opens new window)
- https://github.com/opengapps/opengapps (opens new window)
wsl --update执行错误问题
C:\Windows\SoftwareDistribution\Download下载的wsl_update_x64.msi文件缓存路径
- https://github.com/microsoft/WSL/issues/5014 (opens new window)
- https://github.com/microsoft/WSL/issues/5035 (opens new window)
- https://github.com/microsoft/WSL/issues/5642 (opens new window)
- https://www.catalog.update.microsoft.com/Search.aspx?q=wsl (opens new window)
- Windows Subsystem for Linux Update错误0x80070643的真正解决方法 (opens new window)
自动内核更新,请启用 Windows 更新设置:
设置->更新和安全->高级选项->在更新 Windows 时接收其他 Microsoft 产品的更新
netsh winsock reset解决Error code: Wsl/Service/0x800706f7错误
设置默认root用户登录
ubuntu2004.exe config --default-user root
安装SSH远程连接
WSL 子系统自带的ssh服务无法连接,需卸载后重新安装
sudo apt purge -y openssh-server
sudo apt remove -y openssh-server
sudo apt install -y openssh-server
设置开机自启
vim /etc/init.wsl
#添加service ssh start设置ssh服务开机自启
# MinGW-w64
MinGW的全称是:Minimalist GNU on Windows。它实际上是将经典的开源C语言编译器GCC移植到了Windows平台下, 并且包含了Win32API,因此可以将源代码编译为可在Windows中运行的可执行程序。 而且还可以使用一些Windows不具备的,Linux平台下的开发工具。一句话来概括:MinGW就是GCC的Windows版本 。
MinGW-w64与MinGW的区别在于MinGW只能编译生成32位可执行程序,而MinGW-w64则可以编译生成64位或32位可执行程序。 正因为如此,MinGW现已被MinGW-w64所取代,且MinGW也早已停止了更新。
MinGW-w64使用Windows的C语言运行库,因此编译出的程序不需要第三方DLL,可以直接在Windows下运行。
那些著名的开源
IDE实际只是将MinGW-w64封装了起来,使它拥有友好的图形化界面,简化了操作,但内部核心仍然是MinGW-w64。
MinGW一个自由开源的最小开发工具集:mingw-gcc编译工具链、mingw软件包管理器(mingw-get),用于开发Windows原生程序。 第一版的mingw-gcc是利用早期的Cygwin套件编译而成,这个过程和Cygwin系列(二):初窥Cygwin背后中Cygwin DLL构建类似, 随后mingw-binutils、mingw-make等其他工具链也都逐渐移植成功,MinGW逐渐完全脱离了Cygwin。
2005年,MinGW-w64项目基于MinGW创建,改善了MinGW的相关缺陷,并既支持32位程序又支持64位程序。MinGW-w64项目开发活跃,被很多Linux发行版采用为交叉工具链,而MinGW事实上已被抛弃。
可以把
MinGW视为MS Visual C++/Studio的开源替代品
- https://github.com/topics/mingw (opens new window)
- https://github.com/topics/mingw-w64 (opens new window)
- https://github.com/topics/msvc (opens new window)
- https://osdn.net/projects/mingw (opens new window)
- http://mingw-w64.org (opens new window)
- 包管理 https://packages.msys2.org (opens new window)
- https://gstreamer.freedesktop.org/data/pkg/windows (opens new window)
# MinGW-w64下载
- https://sourceforge.net/projects/mingw-w64 (opens new window)
- https://github.com/HyperSine/mingw-w64-build (opens new window)
首先看到的是源码,要把页面滚动到最底部才能看到编译好的在线安装程序和离线压缩包
推荐离线安装,在线安装其实也是下载压缩包,而且众所周知的原因,国内通过在线安装非常缓慢

环境说明
- 系统架构
x86_64为64位操作系统i686为32位操作系统
- 操作系统接口协议(为哪种操作系统开发程序)
posix为Linux、Unix、Mac OS等其他操作系统win32为Windows操作系统
- 异常处理模型(64位)
seh是新发明的,性能比较好,但不支持32位操作系统sjlj是古老的,稳定性好,支持32位操作系统
- 异常处理模型(32位)
dwarf性能要优于sjlj,不支持64位操作系统sjlj稳定性好,支持32位操作系统
# MinGW-w64安装
- 如操作系统是
Windows10-X64并为posix接口协议开发程序,则选择:x86_64-posix-seh - 下载后把压缩包解压到指定盘符下,再添加到系统环境变量
path
- 如解压目录
C:\Program Files\mingw64,则在CMD执行
setx /m Path "%PATH%;C:\Program Files\mingw64\bin"
:: 查看添加变量是否成功
echo %PATH%
set PATH
查看版本
gcc -v && g++ -v
# MSYS2
MSYS是用于辅助Windows版MinGW进行命令行开发的配套软件包,提供了部分Unix工具以使得MinGW的工具使用起来方便一些。 如果不喜欢庞大的Cygwin,而且使用不多,可以试试。不过喜欢完整体验、不在乎磁盘占用等等,还是推荐Cygwin而不是MSYS。
MSYS和MinGW两者有较大的独立性。MSYS是Minimal SYStem的缩写,是一个基于Bourne Shell的命令行系统, 用于替代Windows中的cmd.exe,提供一个像Linux/UNIX的命令行环境。
MSYS是基于Cygwin早期版本(v1.3)发展而来,包含了少部分Linux/UNIX程序,没有编译工具链, 而且与Linux/UNIX原生程序或Cygwin程序相较丢失了很多功能特性,运行依赖于POSIX兼容层(msys-1.0.dll)。
如果没有
MSYS,在cmd中也可以正常运行MinGW程序,但MinGW和MSYS配合起来, 就组成了一个类似Linux/UNIX的、包含常用程序和完整开发工具的轻量但完备的系统环境,MinGW的安装路径可以挂载到MSYS目录树中任何位置。
MSYS项目仅支持32位程序,项目本身也发展缓慢。MSYS2基于最新版的Cygwin而创建,完全独立于MSYS而重写的版本 ,并既支持32位程序又支持64位程序,POSIX兼容层为msys-2.0.dll。MSYS2由msys2、mingw32、mingw64三个子系统组成,mingw32、mingw64对应于mingw-w64的32位和64位版本。 还有一个特色就是,MSYS2移植了Arch Linux中的包管理器pacman
MSYS2不完全是基于MinGW的,至少其原生工具都是链接到自带的一套特定版本的Cygwin DLL的。 基本上只是用libalpm管理MSYS2、MinGW-w64和MinGW三个不同子系统的软件包
- https://github.com/msys2 (opens new window)
- msys2配置记录 (opens new window)
- 清华大学MSYS2镜像 (opens new window)
- 中国科学技术大学MSYS2镜像 (opens new window)
# MSYS2命令
pacman -S <packge-name>安装软件pacman -S mingw-w64-x86_64-make mingw-w64-x86_64-gcc
pacman -U <gz-file>安装本地包,其扩展名为pkg.tar.gzpacman -Syu同步Msys2源,并更新pacman -Sy仅同步源pacman -Su更新系统pacman -Sy <packge-name>同步源后再安装软件pacman -R <packge-name>该命令将只删除包,不包含该包的依赖。pacman -Rs <packge-name>在删除包的同时,也将删除其依赖。pacman -Rd <packge-name>在删除包时不检查依赖。pacman -Ss <keywords>这将搜索含关键字的包。pacman -Qi <packge-name>查看有关包的信息。
← ShellScript Shell命令 →