GnuWin32,Windows下使用Linux命令

news2024/12/23 17:43:21

1. 前言

昨天我写了一篇 UnxUtils工具包,Windows下使用Linux命令 的文章,今天无意间又发现了 GnuWin32 ,它提供Win32版本的GNU工具(Linux下的命令基本都有)。
你可以在 GnuWin32 Files 手动下载你想要的命令安装包。
你也可以通过 GetGnuWin32 自动下载和安装最新的二进制和文档 GnuWin32 的包。

接下来就总结如何使用 GetGnuWin32 下载和安装 GnuWin32 中的包(遇到了几个问题,给出了解决方案)

2. 下载并安装GetGnuWin32.exe程序

下载地址:https://sourceforge.net/projects/getgnuwin32/files/getgnuwin32/0.6.30/

找到GetGnuWin32-0.6.3.exe <–点击下载

下载完成后,点击GetGnuWin32-0.6.3.exe进行安装,在选择安装路径的时候,保持默认目录(即 GetGnuWin32-0.6.3.exe 所在目录)
选择安装路径,默认
安装完成后,会生成一个GetGnuWin32文件夹
GetGnuWin32文件夹

3. 执行download.bat

以管理员身份执行download.bat进行下载Linux命令相关的安装包及文档等。
然后,我这里发现,安装失败了,这个错是GetGnuWin32-0.6.3.exe进行自更新时,下载更新包失败。
安装失败
以管理员身份打开一个命令行窗口,然后切换到GetGnuWin32目录,执行命令download.bat -v加上-v参数,使输出日志更详细些。
download.bat -v
然后在输出日志中找到这个地址:
http://getgnuwin32.sourceforge.net/update94d563d1564001.zip
在浏览器地址栏中访问这个地址,可以正常下载(不知道为啥)
将下载的update94d563d1564001.zip解压,然后把解压的内容与GetGnuWin32合并(覆盖原有的文件即可)。
下载更新包
然后在管理员命令行窗口,执行命令download.bat -v -d命令,-d参数跳过GetGnuWin32更新。
download.bat -v -d
你以为到这就结束了???也许吧。。。但是我这里,使用 iweb、voxel 这两个镜像站点,根本下载不了,再等下去也是失败,CTRL+C 结束掉。

重新执行命令download.bat -v -d master,其中master是镜像站点 ,多个镜像站点可以用空格隔开,如 master jaist ncu(这里建议使用master即可,貌似它会自动分配适合的站点)
带镜像站点的参数
然后可能是一个漫长的等待,十几分钟到数小时不等,下载的包在packages目录下
下载的packages包
然后你发现了没,新的问题来了,下载的包名,有的是*.zip@viasf=1,在测试过程中发现,还有可能出现*.zip@viasf=1.1,比如我使用download.bat -v -d master jaist进行下载时,就会同时出现 *.zip@viasf=1*.zip@viasf=1.1 (可能跟使用了多个镜像站点有关,具体不清楚)
这里写了一个bat批处理,来批量修改后缀为.zip

@echo off
set oldExt_1=.zip@viasf^=1
set oldExt_2=.zip@viasf^=1.1
set newExt=.zip
REM 将".zip@viasf=1.1"后缀的文件删除,如果有的话
for /f "delims=" %%f in ('dir /b "*%oldExt_2%"') do (
	del "%%f"
)
REM 将".zip@viasf=1"后缀的文件更改为".zip"后缀
for /f "delims=" %%f in ('dir /b "*%oldExt_1%"') do (
    ren "%%f" "%%~nf%newExt%"
)
echo Done!
pause

待所有安装包下载完成后,然后将该脚本,放到packages目录,双击运行即可。

4. 执行install.bat

GetGnuWin32目录,运行install.bat,将解压上述下载的Linux相关命令
install.bat执行
注意看安装完成后的提示信息,作者说了,GnuWin32已经停更好几年了,里边的一些包可能已过时,如果需要最新的包,使用MSYS MINGW或Cygwin代替,我好想又发现"新大陆"了。。。

install.bat命令执行完后,将生成gnuwin32目录,如下:
gnuwin32目录

5. 配置环境变量

将生成的gnuwin32目录下的bin,添加到系统的环境变量(Path)。
添加环境变量

6. 测试效果

测试linux命令是否可用
完美 ؏؏☝ᖗ乛◡乛ᖘ☝؏؏

7. 总结

  1. 在执行download.bat时,遇到几个问题:
    1)在下载GetGnuWin32更新包时,下载失败。
    2)使用默认配置的镜像iwebvoxel 无法下载GnuWin32的包。
    通过使用download.bat -v -d master 方式指定master镜像并跳过更新,最终可成功下载包。
    3)下载的包,部分包后缀为.zip@viasf=1,然后写了个批处理,批量将错误的后缀,改为.zip后缀。
  2. 实际上我在下载时,还是有很多包下载失败了,下载失败的包会在 packages/downfail.txt 文件中列出。下载失败的包,我试了几个,手动在 GnuWin Files 下载,也还是失败。。。
  3. GnuWin32已停更多年,里边的包,很多也过时了,所以,某些命令如果你需要较新的版本,作者建议你使用 MSYS2MinGWCygwin,其实我觉得如果可以,建议你去 GNU 下载源码,然后自己使用工具编译成Windows下可执行的exe程序,这样就能保证是最新版本了。

最后想说的是,这400多个包,真的没必要都下载,有些命令,可能我这辈子都不一定会用到,O(∩_∩)O哈哈~。

TODO:接下来,我将抽空研究一下 MSYS2MinGWCygwin



参考资料:
https://gnuwin32.sourceforge.net/
GetGnuWin32 – Maintaining a Gnuwin32 Package archive
GNU 软件
GetGnuwin32使用
https://sourceforge.net/projects/gnuwin32/
https://sourceforge.net/projects/getgnuwin32/

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

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

相关文章

centos7 访问windows系统的共享文件夹

window系统上共享文件夹 选择共享文件夹&#xff0c;点击属性 点击共享 选择用户&#xff0c;点击共享 centos系统挂载共享文件夹 创建挂载目的文件夹 mkdir -p /mnt/smb 挂载命令 mount -t cifs -o usernamezenglg,password*** //192.168.1.10/ftp /mnt/smb/其中&#xff…

新星计划打卡学习:VUE3组合式API

目录 1、vue3组件页面的构成 2、setup选项 3、reactive 4、ref 最后 1、vue3组件页面的构成 从上到下依次是 逻辑、结构、样式 2、setup选项 经过语法糖的封装更简单的使用组合式api <script setup> // 经过语法糖的封装更简单的使用组合式api const message t…

SpringCloudAlibaba微服务实战系列(三)Sentinel1.8.0+流控

SpringCloudAlibaba–Sentinel Sentinel被称为分布式系统的流量防卫兵&#xff0c;是阿里开源流量框架&#xff0c;从服务限流、降级、熔断等多个纬度保护服务。Sentinel同时提供了简洁易用的控制台&#xff0c;可以看到接入应用的秒级数据&#xff0c;并可以在控制台设置一些…

Cookie 和 Session 区别——2023最新面试精简版本

Cookie 和 Session 的区别 原理&#xff1a;从”登录“过程看Jwt和Token&#xff0c;以及区分Cookie和Session概念 面试&#xff1a; 好的&#xff0c;面试官。 我先解释一下 Cookie&#xff0c;它是客户端浏览器用来保存服务端数据的一种机制。 当通过浏览器进行网页访问的时…

Redis原理篇(一)

一、原理篇-Redis数据结构 1.1 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 Redis虽由C语言开发&#xff0c;不过Redis没有直接使用C语言中的字符串&#xff0…

vulnhub靶机Thales:1

Thales:1 靶机地址&#xff1a;Thales: 1 ~ VulnHub 主机发现 arp-scan -l 扫描端口 nmap --min-rate 10000 -p- 192.168.21.135 nmap -sV -sT -O -p22,8080 192.168.21.135 简单的漏洞的扫描 nmap --scriptvuln -p22,8080 192.168.21.135 答题思路就是从8080端口拿到账号密…

MS VC 2022开发Linux应用记录之01篇

安装MSVS2022的时候勾上对开发Linux C程序的选项在Windows中安装Oracle Virtual Box程序&#xff0c;在里面安装Ubuntu最新稳定版,要选择多个CPU核在VirtualBox中添加一个网卡,选择Host Only在虚拟机中使用ifconfig命令&#xff0c;在宿主机中使用ipconfig, 可以看到两者存在同…

有限状态自动机

1 什么是有限状态自动机 1.1什么是计算 维基百科定义&#xff1a;计算&#xff08;英语&#xff1a;Calculation&#xff09;是一种将“单一或多个的输入值”转换为“单一或多个的结果”的一种思考过程。可以简单理解为给出一个问题得到一个答案的过程。如下图所示日常生活比…

AITO问界,先经沧海而后造船

IT领域最重要的原则之一&#xff0c;就是软件快速迭代。 对于科技产品来说&#xff0c;需求永远在升级。一项技术或软件系统问世之后&#xff0c;如果后续不再迭代&#xff0c;结果可能是灾难性的。 比如几年前&#xff0c;很多读者可能都买过一些“不了了之”的智能消费硬件&a…

性能测试Ⅳ

在进行性能测试的时候需要使用不同阶段的数据来测试&#xff0c;分析不同数据下资源的情况。 java -jar -Xms1M -Xmx1M -XX:MaxMetaspaceSize10m DBPlus-0.0.1-SNAPSHOT.jar 最小内存 最大内存 如果内存太小会导致内存泄露 启动程序 java -Djava.rmi.serv…

JavaWeb课程设计项目实战(09)——项目编码实践6

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 在本节教程中&#xff0c;我们实现修改学生的功能。当在学生列表页面点击修改后首先将依据id查询该生的详细信息&#xff0c;然后将这些信息展示在修改页面。当完成学生信息…

Transformer Encoder (Bert)

参考&#xff1a;图解Self-Attention_子燕若水的博客-CSDN博客 举个例子&#xff1a; 假设输入数据形状为(243,34),表示的是243帧,每帧包含34个特征(比如17个关键点的x,y坐标)。那么这个数据在Transformer Encoder中的流动过程如下: 输入数据shape是(243, 34),表示243个时间…

【字符流】案例:点名器

案例&#xff1a;点名器 1.需求&#xff1a; 我有一个文件里面存储了班级同学的姓名&#xff0c;每一个姓名占一行&#xff0c;要求通过程序实现随机点名器 2.思路&#xff1a; 创建字符缓冲输入流对象创建ArrayList集合对象调用字符缓冲输入流对象的方法读数据把读取到的字…

vue ---- filters过滤器中不能使用this问题

在日常开发中&#xff0c;使用filters是很正常&#xff0c;最近遇到切换单位&#xff0c;页面上显示的数据要根据单位转换&#xff0c;这时就需要根据data里面的变量去转换&#xff0c;可是filters里面不能使用this 解决&#xff1a; 1、先在return中声明一个变量that&#xf…

vuejs源码之模版编译原理

之前我们说过虚拟dom&#xff0c;也就是虚拟dom拿到vnode后所做的事情&#xff0c;而模版编译是如何让虚拟dom拿到vnode。 模版编译的目标就是生成渲染函数&#xff0c;而渲染函数的作用是每次执行它&#xff0c;它就会使用当前最新的状态生成一份新的vnode&#xff0c;然后用…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition&#xff0c;是 Java 的标准版&#xff0c;主要用于桌面应用程序开发&#xff0c;它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?

目录 环境 问题情况 解决思路 原因分析 解决方法 番外知识 环境 VMware Workstation 16 Pro &#xff08;版本&#xff1a;16.1.2 build-17966106&#xff09;ubuntu-22.04.2-desktop-amd64 问题情况 本人在运行百万并发的服务端程序时&#xff0c;程序运行报&#xff1a…

语音基石模型Speech Foundation Models

语音基石模型&#xff08;Speech Foundation Models&#xff09; 主要包含三部分&#xff1a; 1.语音表示学习&#xff08;Speech representation learning&#xff09; 自监督学习模型&#xff08;Self-suprevised learning, SSL model&#xff09;Representation benchmark…

CMU 15-445 -- Embedded Database Logic - 12

CMU 15-445 -- Embedded Database Logic - 12 引言User-Defined Functions (UDF)SQL FunctionsExternal Programming Language Stored ProceduresStored Procedures 与 UDF 的区别 Database TriggersChange NotificationsUser-Defined Types (UDT)Viewsviews vs select...intov…

区别出过孔的内径、外径、单边孔环、电镀铜厚

自记&#xff1a; 这个参数是啥&#xff1f;下图区别出过孔的内径、外径、单边孔环、电镀铜厚 嘉立创单双面最小过孔内径0.3mm/外径0.6mm&#xff08;极限0.56mm&#xff09;&#xff0c;四、六层最小过孔内径0.2mm/外径0.45mm&#xff08;极限0.40mm&#xff09;&#xff0c;外…