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

209 天前
 itakeman

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

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

没办法的, windows 就是为 gui 设计的, 勉强不来. 老老实实开虚拟机.
jim9606
208 天前
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
208 天前
习惯了 ls, 不想用 dir

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

不知道算不算自欺欺人,勉强凑合着用。
f14g
208 天前
@itakeman 你说的这个不就是 wsl2 吗?🤔
f14g
208 天前
@tool2dx 直接用 pwsh 就好了呀,pwsh 已经自动帮你做了 ls 了。
dayeye2006199
208 天前
不喜欢 wsl 那就 hyperv 加 Linux …但话说这和 wsl 有啥区别
YouMoeYi
208 天前
@ranaanna touch 可以用 ni(New-Item), 或者 Set-Alias -Name touch -Value New-Item -Scope Global
mingl0280
208 天前
@guoqiao
1. 换行符问题可以通过 vim/编辑器的默认设置调整解决
2. git 可以设定换行符是否 as-is ,正确的模式下不会出现 git status 改变。
3. wsl 可以直接右键菜单启动,直达当前操作目录也是可以的(反正我注册表就这么写的)。
所以你的问题其实在于:既不熟悉 linux 也不熟悉 windows 。
duty
208 天前
@itakeman #43 你可以看一下我前面发的那个,难道不符合你的需求吗
hash
208 天前
用 Windows 就安心玩游戏,做正事请用 Mac 或 Linux
idealhs
208 天前
@hash 我即世界😅不知道多少 Windows 在做比你正的多的正事儿
QiWei
208 天前
常用的 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
208 天前
@hash 多大年龄了,还秀优越感,能回答就回答,不能回答也不要把狭隘和傲慢分享给别人。
itakeman
208 天前
@duty 非原生的,我有点想用回 linux 了
liuhai233
208 天前
我用的 git bash

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

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

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

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

© 2021 V2EX