如何让 windows 命令行如 mac 般丝滑?

2024-01-26 10:16:20 +08:00
 firhome

标题可能起的不对,10 多年 mac 用户,最近买了台 windows 机器做开发。

发现命令行完全看不懂怎么玩,一个 PowerShell 可以打开好几个不同的工具,分不清 cmd 和 PowerShell 的区别。

现在装了 git bash ,PowerShell 里又可以打开 git bash 了。 简直晕了。。。

在 mac

gss = git status

再比如 open . 打开当前目录之类的。。。

然后很多 mac 设置的 alias 不知道 windows 怎么设置?或者有什么设置工具推荐吗?

5245 次点击
所在节点    Windows
42 条回复
mmxq
2024-01-26 12:06:42 +08:00
完全可以.......
Windows Terminal + scoop ( winget ) + starship 用来最基础的美化和安装包管理,启动速度和效果非常好。
然后想实现 Linux 下的命令可以 scoop install busybox 用 Linux 下习惯的命令操作日常,不在被 powershell 那冗长的命令膈应。
楼上说到 grep 检索包含 log 的命令完全可以照搬过来一行搞定。
acctv2
2024-01-26 12:19:58 +08:00
@error451 PS 设计上是脚本语言,不是单纯的 shell 命令。你要是只用用 ls 之类的可以自己设置 alias 。

话说丝滑不丝滑跟这个有什么关系? PS 执行的时候很卡吗?
chendl111
2024-01-26 12:25:50 +08:00
用 wsl2
charlie21
2024-01-26 12:43:40 +08:00
所有开发环境装在 wsl 2 里,宿主机只装 choco 和一个 Windows Terminal 完事
lpdswing
2024-01-26 14:17:48 +08:00
没必要折腾,正常用 cmd 就够了
cbdyzj
2024-01-26 14:18:23 +08:00
没有办法,不建议用 Windows 做开发
Mbb38C3HtyZydTt7
2024-01-26 14:57:23 +08:00
只需要 pwsh7 即可,也就是最新版的 pwsh , 有自动补全
然后 `vim $profile`,相当于 `vim .bashrc`
把下面这行加进去,就可以和正常的 linux 一样用了, 比如快捷键 `Ctrl F` , `Ctrl P` 之类的
`Set-PSReadLineOption -EditMode Emacs`

alias 比较麻烦一点,但是能用
```
function gitStatus { git status }
Set-Alias -Name gs -Value gitStatus

Set-Alias -Name l -Value 'ls'

```
不会的直接叫 ChatGPT 把命令转化为相同的 pwsh 命令即可

pwsh 命令行 + scoop 包管理器 ,体验真的很不错了
lividsu
2024-01-26 14:59:30 +08:00
powershell 里支持 ls, pwd 什么的,用起来比 cmd 舒服很多
newdongyuwei
2024-01-26 15:07:17 +08:00
git bash 都安装了,可以加下面的 alias:
alias open=explorer
body007
2024-01-26 15:17:17 +08:00
我用 cmder ,很丝滑。可能我比较菜吧。
bianhui
2024-01-26 15:20:10 +08:00
假装自己用的就是 mac
vvhy
2024-01-26 15:32:10 +08:00
@error451
grep 不是单独的程序吗,什么时候变成 bash 的功能了。另外 powershell 也可以`ls *log*`。
bash 面向字符串,powershell 面向对象,只能说是思想不一样,各有优点。
至于命令名字太长,个人觉得写完整更清晰好记。
ksc010
2024-01-26 16:40:58 +08:00
cmder
z1829909
2024-01-26 17:16:45 +08:00
echo $profile 会输出一个文件地址, 在里面可以写一些 function, 可以加别名
start .打开当前目录
joshua7v
2024-01-26 17:23:02 +08:00
我是用各自平台的命令,常见的很多命令都有对应的可以用

rm -> del
grep -> findstr
open -> start
...
rxmt
2024-01-26 17:26:03 +08:00
有没有人觉得,用 windows 的话 git 自带的 git bash 挺好用的。。。日常用 mac ,偶尔 windows 会把 git bash 放进 windows terminal 里面用...
lyc8503
2024-01-26 23:53:34 +08:00
msys2 或者 wsl

众所周之,wsl 是最好的 linux 发行版

反而是 mac 下的终端有些指令参数和 linux 不一致
cabbage
2024-01-27 01:04:54 +08:00
@rxmt +1 以前工作环境是 Windows 7 的时候就把 gitbash 带的 bash 当日常 shell 重度用,ps 我确实用不来。记得 windows 的 gitbash 其实就是给安装了个 mingw 环境,附带一票 coreutils 小工具,openssh 之类,再加上个 git ,除开个别路径问题外,日常用和普通 gnu linux 差别不大,体验尚可。好像还带了个可选安装的 kitty 终端模拟器,反正比 windows 黑乎乎的 conhost 好用太多
Ethkuil
2024-01-27 10:14:44 +08:00
winget add Git.Git
winget add MSYS2.MSYS2

# .bashrc
export PATH="$PATH:/c/msys64/usr/bin/"

pacman -S tree rsync

winget add gerardog.gsudo
winget add Docker.DockerDesktop

ln -s -> mklink
open -> start
shutdown -> shutdown

我觉得完全不比 mac 的差吧?

## 路径

Git Bash for Windows 默认用 Unix 风格路径,Windows 风格则可套层引号转义后使用,兼顾。
此外,Git for Windows 自带一个 cygpath 命令,能方便地在各种路径风格间转换。
顺便一提,Git for Windows 里的 pwd 可接受 -W 标志 输出 Windows 风格路径。

一般 Unix 那套已经够了,不过偶尔在 Bash 里调用 Windows 命令时,还是要直面这个问题的。补充两点:
1. 不知是冷知识还是热知识:Windows 其实支持使用正斜杠作为路径分隔符。故在 Bash 里调用 Windows 命令时,路径参数形如 C:/my/path 为好,因为在 Bash 里处理反斜杠太噩梦了。
2. 许多 Windows 自带命令的参数格式是 /a, /s 这样以正斜杠开头的,在 MSYS 环境里会被当成「路径」转义掉,然后就不能正确执行了……
例:shutdown /s /t 60
不知是冷知识还是热知识:有些 Windows 命令其实也支持 -a 这样以连字符开头的 参数格式,尽管其 help 里只会演示 正斜杠开头的。
解决方案:shutdown -s -t 60
iorilu
2024-01-27 13:28:16 +08:00
不想学习新东西就装 wsl ,然后和原来一样用就是

或者装 Windows terminal ,学点 powershell 也行,
不装 wsl 可用 git bash ,但肯定不好看就是

另外,powershell 可是比其他 shell 功能远远强大,当然了,不是 Windows 开发专家的人一般没人会研究

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

https://yangjunhui.monster/t/1011691

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

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

© 2021 V2EX