win 下使用 Linux 命令的方法有哪些?

2024-06-23 08:04:19 +08:00
 itakeman

换回 win 了,习惯了 linux 命令,用不惯 cmd 那一套,win 下使用 linux 命令的方法有哪些?不想使用 wsl ,还有其他的方法吗?

9144 次点击
所在节点    Windows
76 条回复
legendBro
2024-06-23 21:03:23 +08:00
Cygwin 是一个免费和开源的软件,可以在 Windows 上运行 Linux 应用程序。它可以通过运行 setup-x86_64.exe 或 setup-x86.exe 进行安装,具体取决于您的系统架构。安装过程包括从 GUI 选择要安装的包,然后单击“安装”并等待所有内容下载。
james122333
2024-06-23 22:26:07 +08:00
在 win 下用终端是不得已的选择 无非是公司强迫用 win 不然坚持一下 linux 更好 在 win 下用终端难受的点就是一下用键盘一下用鼠标的状况
无法全键盘操作 那操作界面本来就是鼠标友好
用了顶多就是减缓焦虑 并不是异样感觉消失了
gnu 的东西除了 autotools 一言难尽以外其它都很不错 虽然不太符合类 unix 哲学
itakeman
2024-06-23 23:06:36 +08:00
@guoqiao 看了那么多,只有你说出了我想说,却没表达出来的话。
另外就算同样的命令,就算拿到 win 下怎么用怎么别扭。咋搞?换回 linux ?还是继续用 win
itakeman
2024-06-23 23:08:15 +08:00
@james122333 你说的也是我想的一点,怎么用怎么别扭
424778940
2024-06-23 23:52:46 +08:00
msys2 完美解决
jqtmviyu
2024-06-23 23:52:48 +08:00
哈哈, 和楼上的一样. 就是习惯了 linux 下的语法和常见命令了, 结果回到 windows, 只能用 powershell 和 cmd, 结果命令一敲一个报错.

没办法的, windows 就是为 gui 设计的, 勉强不来. 老老实实开虚拟机.
jim9606
2024-06-24 00:45:25 +08:00
msys2/cygwin ,其实 git for windows 就是基于 msys2 的。
wsl 可以考虑 wsl1 ,这个不是虚拟机相对轻量一些。
不喜欢 cmd 很正常,MS 留着这个也就为了兼容而已,不会做改进的。

个别工具 win 已经自带,例如 curl 、tar 、ssh ,开箱即用。

另外个人感觉涉及到数据传递时 bash/coreutils 搞下来好麻烦,pwsh 的 oop 特性处理这些会方便些,例如 json 提取数据+数值计算+运行命令这种,bash 只能传字符串,同类操作换*ix 世界就上 python 了。另外许多 Windows 平台相关操作 cli 以 pwsh 为首选,所以 pwsh 做相关自动化会容易些。
tool2dx
2024-06-24 00:45:50 +08:00
习惯了 ls, 不想用 dir

于是,我创建了一个 C:/Windows/ls.bat ,里面写着
@echo off
dir

不知道算不算自欺欺人,勉强凑合着用。
f14g
2024-06-24 00:52:39 +08:00
@itakeman 你说的这个不就是 wsl2 吗?🤔
f14g
2024-06-24 00:53:34 +08:00
@tool2dx 直接用 pwsh 就好了呀,pwsh 已经自动帮你做了 ls 了。
dayeye2006199
2024-06-24 01:48:23 +08:00
不喜欢 wsl 那就 hyperv 加 Linux …但话说这和 wsl 有啥区别
YouMoeYi
2024-06-24 06:02:10 +08:00
@ranaanna touch 可以用 ni(New-Item), 或者 Set-Alias -Name touch -Value New-Item -Scope Global
mingl0280
2024-06-24 07:21:47 +08:00
@guoqiao
1. 换行符问题可以通过 vim/编辑器的默认设置调整解决
2. git 可以设定换行符是否 as-is ,正确的模式下不会出现 git status 改变。
3. wsl 可以直接右键菜单启动,直达当前操作目录也是可以的(反正我注册表就这么写的)。
所以你的问题其实在于:既不熟悉 linux 也不熟悉 windows 。
duty
2024-06-24 09:11:04 +08:00
@itakeman #43 你可以看一下我前面发的那个,难道不符合你的需求吗
hash
2024-06-24 10:40:17 +08:00
用 Windows 就安心玩游戏,做正事请用 Mac 或 Linux
idealhs
2024-06-24 11:08:47 +08:00
@hash 我即世界😅不知道多少 Windows 在做比你正的多的正事儿
QiWei
2024-06-24 11:10:19 +08:00
常用的 Linux 工具主要是 coreutils 、findutils ,大部分工具有 windows native 版本。

集成环境就不说了,前面的回答提到了。

首选 [GNU utilities for Win32]( http://unxutils.sourceforge.net/),虽然有些年头了,基础工具大部分不需要升级,或后续加的功能用到的几率不大,个别工具( sed 、grep 、awk )后续版本加了些功能,可能用到,后面再说解决方案。有少量工具工作不正常:如 tac 管道支持不正常,sed 的 s 命令中 regexp 部分中使用引用,如果引用部分超过 7 个字符,产生不正确结果。

unxutils 覆盖不到的工具:可以用以下工具集替换,优先级为倒序,原因是尽量用单文件没依赖,兼容底版本系统。

1 、[busybox-w32]( http://frippery.org/busybox/index.html),不想每次调用都需要输入 busybox ,可以存在于环境变量 path 的任一文件夹中创建对应命令的批处理文件,如:date.bat ,内容为 @busybox %~n0 %*

2 、[coreutils]( https://github.com/uutils/coreutils),buxybox 的 rust 实现,不支持旧操作系统。

3 、[GnuWin32]( https://gnuwin32.sourceforge.net/),工具比较全面,只有 32 位,但采取的是动态编译,不能把可执行文件单独拎出来用。

4 、用 MSYS2 项目中用 MinGW 预编译的工具包,大概率有静态版:pacman -Sy mingw-w64-{x86_64,i686}-xxx

5 、可以自己编译个别软件,编译工具集用 MSYS2 就可以了。如 grep 、sed 、gawk 等工具的新版本就可以用这种方法。

6 、不支持直接编译的,可以在网上找别人移植版、或自己有能力就改动一些不兼容内容,不涉及底层调用的,改起来不复杂,只是个别系统函数替换。

7 、找同类软件替代,得益于新语言的发展,如:rust 、golang ,设计之初就考虑到了跨平台特性,基础库的通用性,使得编写跨平台相对简单多了,催生出好多旧有工具替代品,举几个典型的:fd (find)、rg (grep)、bat (cat/less)、sd (sed),多不胜举。

8 、一些其它软件附带的工具,比如比较工具,如果支持比对 pdf ,大概率就附带有 pdf2txt 之类命令,支持 office 比对,也就有可能附带有相应的转换工具。还有 ftp 类工具附带 ssh 、sftp 命令。还有其它类似软件附带编译好的命令行工具,诸如此类,这个就靠平时收集了。

9 、自己实现一个,造福同类。
QiWei
2024-06-24 11:13:51 +08:00
@hash 多大年龄了,还秀优越感,能回答就回答,不能回答也不要把狭隘和傲慢分享给别人。
itakeman
2024-06-24 12:31:22 +08:00
@duty 非原生的,我有点想用回 linux 了
awsl2333
2024-06-24 13:15:34 +08:00
我用的 git bash

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX