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

338 天前
 firhome

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

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

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

在 mac

gss = git status

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

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

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

话说丝滑不丝滑跟这个有什么关系? PS 执行的时候很卡吗?
chendl111
338 天前
用 wsl2
charlie21
338 天前
所有开发环境装在 wsl 2 里,宿主机只装 choco 和一个 Windows Terminal 完事
lpdswing
338 天前
没必要折腾,正常用 cmd 就够了
cbdyzj
338 天前
没有办法,不建议用 Windows 做开发
Mbb38C3HtyZydTt7
338 天前
只需要 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
338 天前
powershell 里支持 ls, pwd 什么的,用起来比 cmd 舒服很多
newdongyuwei
338 天前
git bash 都安装了,可以加下面的 alias:
alias open=explorer
body007
338 天前
我用 cmder ,很丝滑。可能我比较菜吧。
bianhui
338 天前
假装自己用的就是 mac
vvhy
338 天前
@error451
grep 不是单独的程序吗,什么时候变成 bash 的功能了。另外 powershell 也可以`ls *log*`。
bash 面向字符串,powershell 面向对象,只能说是思想不一样,各有优点。
至于命令名字太长,个人觉得写完整更清晰好记。
ksc010
338 天前
cmder
z1829909
338 天前
echo $profile 会输出一个文件地址, 在里面可以写一些 function, 可以加别名
start .打开当前目录
joshua7v
338 天前
我是用各自平台的命令,常见的很多命令都有对应的可以用

rm -> del
grep -> findstr
open -> start
...
rxmt
338 天前
有没有人觉得,用 windows 的话 git 自带的 git bash 挺好用的。。。日常用 mac ,偶尔 windows 会把 git bash 放进 windows terminal 里面用...
lyc8503
337 天前
msys2 或者 wsl

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

反而是 mac 下的终端有些指令参数和 linux 不一致
cabbage
337 天前
@rxmt +1 以前工作环境是 Windows 7 的时候就把 gitbash 带的 bash 当日常 shell 重度用,ps 我确实用不来。记得 windows 的 gitbash 其实就是给安装了个 mingw 环境,附带一票 coreutils 小工具,openssh 之类,再加上个 git ,除开个别路径问题外,日常用和普通 gnu linux 差别不大,体验尚可。好像还带了个可选安装的 kitty 终端模拟器,反正比 windows 黑乎乎的 conhost 好用太多
Ethkuil
337 天前
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
337 天前
不想学习新东西就装 wsl ,然后和原来一样用就是

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

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

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

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

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

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

© 2021 V2EX