换回 win 了,习惯了 linux 命令,用不惯 cmd 那一套,win 下使用 linux 命令的方法有哪些?不想使用 wsl ,还有其他的方法吗?
1
nagisaushio 137 天前 via Android
装个 git bash ?
|
2
Ggmusic 137 天前 via iPhone
powershell 下安装 busybox ,可以跑一些基础命令。
|
3
EndlessMemory 137 天前
有个叫做 cmder 的开源软件,可以在 Windows 上执行部分 Linux 命令,也可以用来替代一部分 cmd 的功能
|
4
itakeman OP @nagisaushio 感觉用起来还是没有 linux 下舒服
|
5
henix 137 天前 1
git bash 使用的 msys2 ,还有更老的 Cygwin
|
6
abc612008 137 天前
为什么不想用 wsl
|
7
dayeye2006199 137 天前 via Android 9
你上来就去除一个最优选项,这是为何?
|
8
waahii 137 天前
推荐使用 msys2 + ucrt ,你甚至能通过他们来装 zed 。 但是用这个安装的 python 不太好用,其他体验还可以。
|
9
itakeman OP |
10
zwy100e72 137 天前
cygwin / msys2 => 把 Linux 软件重新编译后在 windows 下运行
虚拟机 / wsl2 => 相对隔离,又可以通过多种方式打通的使用 Linux 二进制 |
11
uncat 137 天前
Visual Studio Code + Remote SSH extension ?
|
12
Cappuccin0 137 天前 via iPhone
一直在用 Msys2 大部分常见的命令都有了 zsh 也能用 整个目录一锅端也不需要 admin 权限安装
缺点是性能肯定有影响 不过能用就凑合用了 |
13
ns09005264 137 天前
我听人说 powershell 很好,比 sh 好,也许花半天了解一下,拥抱 powershell 试试。
|
14
rimwindy 137 天前
不经常写 Bash 脚本的话,PowerShell 还是挺好用的吧
|
15
klesh 137 天前 3
推荐一下 nushell ,基于 powershell 的思想,但更快,更科学和好用:
1. 支持三大平台:写的脚本可以多个平台通用。 2. 语法严格,有类型系统:与 bash / zsh 相比,更符合程序员的使用习惯。 |
16
coldle 137 天前 via Android
@itakeman #9
想定位问题容易我其实觉得不如开传统虚拟机....git bash(cygwin), msys2, nushell 啥的出问题都是些让人懒得定位的问题,他无时无刻不在质问你为啥不用真的 linux... 实在不想开虚机的话可以参考 ssp 这篇文章配置 nushell: https://sspai.com/post/88838 |
17
yinmin 137 天前 via iPhone
MobaXterm 里有 1 个 linux 子集。先安装 MobaXterm ,然后把 MobaXterm\root\slash\bin 目录加入到 windows 的 PATH 路径里,就能在 cmd 里使用常见的 linux 工具命令了,很轻量。
另外微软推出了“终端”的命令软件替代 cmd.exe ,整合上面通过 path 引入 linux 工具命令,用起来还行。 |
18
yinmin 137 天前 via iPhone
另外,我不喜欢 wsl ,hyper-v 跑 linux 虚拟机更干净整洁。
|
19
itakeman OP @coldle 我为什么不直接用 linux 呢?我用 linux 有很多年了,平时一些小问题也就忍了,直到有一天,莫名其妙崩了,而且怎么弄都弄不好,我的心态也跟着崩了,奈何已经习惯了 linux 命令。。。
我现在有个思路,虚拟机装 linux ,开机自启动,关机自关闭,弄一个终端连到 linux ,尽量做到无缝化体验 |
20
duluosheng 137 天前
git bash 、msys2
|
21
wjx0912 137 天前
github search: gow
|
22
coldle 137 天前 via Android
@itakeman #19
那就上虚拟化吧,多打快照多备份,只要底座没崩基本上不会出问题。而底座既然不是作为开发机折腾,出问题的概率很低。我现在基本上都是 pve 打底,唯一一个物理开发机的 linux 也是在容器里开发 |
23
Chefback 137 天前
|
24
xtreme1 137 天前
为啥不接受 wsl1 呢? 对于你这个需求挺合适啊
|
25
v0768ex 137 天前 via Android
一直使用 git bash + cmder mini ,可满足大部分需要
|
26
sendi 137 天前
windows powershell 是最好的 shell
要用 bash 建议老老实实用 linux 系统吧 wsl 也行吧 不建议 |
27
eunrui 137 天前
以前用过一个 UnxUtils
|
28
n18255447846 137 天前
自己写一些.bat 文件转换到 bin 目录,添加到系统 path 。比如 ls
``` call dir %* ``` 有些也可以直接 mklink ,相当于 linux 下的 ln 链接 |
29
guoqiao 137 天前 1
作为多年的 Linux 用户, 前段时间切换到 Windows, 我有跟楼主一样的需求.
那些强推 WSL 的其实没有 get 到楼主和我这类人的真实需求: 我们需要用常见的 Linux 命令(ls, cp, mv, rm, cat, mkdir, touch,etc), 来直接操作 Windows 系统, 而不是通过 WSL 子系统. 我们都知道 WSL 很好用, 但它毕竟是子系统, 是 Linux. 哪怕你可以跨系统在 /mnt/{c,d,e}/ 路径下访问和操作 Windows 宿主系统, 但他们并不是无缝兼容的. 比如, 你此时创建的文件, 它们的换行符都是 Linux 下的 LF (/n), 而不是 Windows/Dos 下的 CRLF (/r/n). 这个问题在代码文件以及 git 里会造成不必要的麻烦. 你会发现 git status 动辄显示一堆文件发生了改变, 以及你 WSL 里写的脚本因为换行符的原因无法在 Windows 上执行, 需要用 unix2dos 之类的工具来转换一下. |
30
asdfghjklqwertyu 136 天前
gow
|
31
lolizeppelin 136 天前 via iPhone
常用的 grep 之类的 gun utils 有 win 版
有地方下载 |
32
n18255447846 136 天前
|
33
fsdrw08 136 天前 via Android 1
入乡随俗,windows 的 Powershell 用习惯了功能比 gnu/bash 只强不弱
|
34
param 136 天前 via Android
@itakeman 快照啊,自动快照、定时快照、手动快照。btrfs 和 zfs 都可以。用 Linux 的好处不就是可以定制系统,遇到什么问题都能有解决方案吗?怕系统崩就快照,还不放心可以全量/增量全盘备份。
|
35
param 136 天前 via Android
Linux 可以很轻松地定制快照、备份策略,这些反而是 Windows 不容易做到的。Linux 可以深度定制功能特性,而 Windows 只能使用微软提供的既有功能选项。
|
36
ranaanna 136 天前
@guoqiao #29 如果只是 ls, cp, mv, rm, cat, mkdir 之类的,那么 Windows PowerShell 不是都有的吗?当然 touch 似乎没有。文件路径用/也是可以的。难道大家切换到 Windows ,还是喜欢用 30 年不变的 cmd?
|
37
duty 136 天前
https://github.com/uutils/coreutils ,这个项目了解一下,把它在 Windows 上设置一个别名,我之前改成 `cu` 使用起来就可以 `cu rm -rf *`这种。
|
38
kneo 136 天前 via Android
Windows 都能习惯,有什么不能忍的。
|
40
zwy100e72 136 天前
虚拟机装 Linux 和 wsl2 差距很小了
wsl2 优点是基础环境是 WSL 自己管理的,发行版天然跑在容器里;还有 WSLg 这种转发图新应用的玩法,虚拟机相对难做到; cuda 转发、图形加速虚拟机也很难实现;启动和关闭是系统维护的,随用随开,用起来简单点。 缺点的话,没法换基础镜像,也没法用官方不支持的功能 |
41
legendBro 136 天前
Cygwin 是一个免费和开源的软件,可以在 Windows 上运行 Linux 应用程序。它可以通过运行 setup-x86_64.exe 或 setup-x86.exe 进行安装,具体取决于您的系统架构。安装过程包括从 GUI 选择要安装的包,然后单击“安装”并等待所有内容下载。
|
42
james122333 136 天前 via Android
在 win 下用终端是不得已的选择 无非是公司强迫用 win 不然坚持一下 linux 更好 在 win 下用终端难受的点就是一下用键盘一下用鼠标的状况
无法全键盘操作 那操作界面本来就是鼠标友好 用了顶多就是减缓焦虑 并不是异样感觉消失了 gnu 的东西除了 autotools 一言难尽以外其它都很不错 虽然不太符合类 unix 哲学 |
43
itakeman OP @guoqiao 看了那么多,只有你说出了我想说,却没表达出来的话。
另外就算同样的命令,就算拿到 win 下怎么用怎么别扭。咋搞?换回 linux ?还是继续用 win |
44
itakeman OP @james122333 你说的也是我想的一点,怎么用怎么别扭
|
45
424778940 136 天前
msys2 完美解决
|
46
jqtmviyu 136 天前
哈哈, 和楼上的一样. 就是习惯了 linux 下的语法和常见命令了, 结果回到 windows, 只能用 powershell 和 cmd, 结果命令一敲一个报错.
没办法的, windows 就是为 gui 设计的, 勉强不来. 老老实实开虚拟机. |
47
jim9606 136 天前
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 做相关自动化会容易些。 |
51
dayeye2006199 136 天前 via Android
不喜欢 wsl 那就 hyperv 加 Linux …但话说这和 wsl 有啥区别
|
52
YouMoeYi 136 天前
@ranaanna touch 可以用 ni(New-Item), 或者 Set-Alias -Name touch -Value New-Item -Scope Global
|
53
mingl0280 136 天前 2
@guoqiao
1. 换行符问题可以通过 vim/编辑器的默认设置调整解决 2. git 可以设定换行符是否 as-is ,正确的模式下不会出现 git status 改变。 3. wsl 可以直接右键菜单启动,直达当前操作目录也是可以的(反正我注册表就这么写的)。 所以你的问题其实在于:既不熟悉 linux 也不熟悉 windows 。 |
55
hash 136 天前
用 Windows 就安心玩游戏,做正事请用 Mac 或 Linux
|
57
QiWei 136 天前 2
常用的 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 、自己实现一个,造福同类。 |
60
liuhai233 136 天前
我用的 git bash
|
61
duty 136 天前
@itakeman #59 那你这要求就有点高了,在 Windows 上始终可能像 Linux 那样,但说实话,稍微了解下 powershell 就会觉得现在的 powershell 是真他喵的强大
|
62
guoqiao 136 天前
@itakeman 我觉得正确的姿势是, 如果已经切换到 Windows, 就不要再执念于 CLI 了. 就如同使用 Linux, 就不要太执着于 GUI. 桥归桥, 路归路, 不要缘木求鱼为难自己.
|
65
guoqiao 136 天前 1
|
66
clacf1 135 天前
我是随时启动一个 vmware ,里面装的是 ubuntu 。固定 IP 后,使用 ssh 客户端访问
|
67
liuliancao 135 天前
主要想干嘛呢 如果是服务器管理 我们用的是 cygwin 开 ssh
|
68
junyee 135 天前
cmder 用了多年了, 内置了 git bash.
也可以使用 linux 路径, 甚至 /dev/sda 之类的设备访问. 缺点是中文支持不甚理想.. 默认的 "入" 终端符号都是坑. 要求轻量可以考虑 busybox-w32 ,下载后将 busybox 重命名为 sh.exe . 然后单文件(仅数百 KB) 就能使用很多 linux 命令.如 grep/sed/awk/wget , 不过功能特性略有缺失. |
69
tinytoadd 135 天前
轻度使用的话加 alias
重度使用的话 nushell 走起 |
70
1rv013c6aiWPGt24 135 天前
我和你差不多,用 scoop 装了 coreutils
![]( https://tgimg.yuanj.top/file/9d8ba7b33a5b8a7b60296.png) |
71
paradox8599 135 天前 via Android
https://github.com/skeeto/w64devkit
这个基本能满足我的需求 |
72
abcde123456789 135 天前
我就没这些烦恼,可能我比较菜,系统有什么就用什么
|
74
xuelu520 135 天前
cmder ,最好的还是装个 wsl 吧
|
75
l4ever 135 天前
git bash 卡死了
|
76
yinmin 135 天前
试试 busybox for windows ,体验度比较接近 linux 吧
https://frippery.org/busybox/ 下载后放到 d:\busybox ,然后运行 d:\busybox\busybox --install -s d:\busybox 产生命令软链接 然后把 d:\busybox 加入到 windows 的 path 里,就可以使用 linux 的常用命令了。 |