标题可能起的不对,10 多年 mac 用户,最近买了台 windows 机器做开发。
发现命令行完全看不懂怎么玩,一个 PowerShell 可以打开好几个不同的工具,分不清 cmd 和 PowerShell 的区别。
现在装了 git bash ,PowerShell 里又可以打开 git bash 了。 简直晕了。。。
在 mac
gss = git status
再比如 open . 打开当前目录之类的。。。
然后很多 mac 设置的 alias 不知道 windows 怎么设置?或者有什么设置工具推荐吗?
1
libook 327 天前 1
不丝滑==不了解
等你了解 cmd/powershell 像对 bash 那么了解了,你就会觉得丝滑了。 话说 windows 上有 WSL(2),可以给你一个 Linux Shell ,那个可以比 mac 更丝滑。 |
2
fatigue 327 天前
windows terminal 默认启动 wsl 就行了,用了好多年了
|
3
mcluyu 327 天前
下个微软终端, 然后装 wsl ,wsl 里再装你 mac 上用的 shell 比如 zsh ,oh my zsh 那不就一样了
|
4
Vegetable 327 天前 5
1. gss 是 zsh(oh my zsh)的内置的 alias ,gss='git status --short' 并不是什么 mac 的功能,这一点你用了十多年不知道吗?
2. mac 的 open 对应 windows 的 start 和 linux 的 xdg-open ,手边没有 windows 我也不确定了,不过 windows 打开当前目录我一般用 explorer . 3. windows 目前主流是用 terminal 启动 powershell ,但是体验上并不算太好,https://learn.microsoft.com/zh-cn/windows/terminal/ 4. windows 也有类似 oh my zsh 的 oh my posh ,可惜启动速度超级慢 5. 想在 windows 获得流畅的命令行体验,还是 WSL 靠谱 |
5
dhb233 327 天前 2
这么说的话,用习惯了 Linux 的命令行,还觉得 mac 的很奇怪呢。很多命令名字一样,用法不一样
|
6
littlewing 327 天前
WSL2
|
7
Kaiv2 327 天前 2
建议安装 linux 系统使用
|
8
star9029 327 天前
Windows terminal + nushell + 各种命令行小工具
|
9
pendulum 327 天前
这个要花时间学的,不想学就 wsl
|
10
zhazi 327 天前 2
windows 的盘符和目录转义符让我完全没兴趣用它的 terminal
|
11
kinboy 327 天前
现在开发环境都在 WSL2 里面,无比丝滑,配合 VSCode remote ssh
快捷键 win + ` 随时呼出 WSL 系统本地存储默认在 C 盘,记得装完以后迁移到其他盘去 |
12
godall 327 天前 1
在 Linux/mac 里:
alias ll=ls -l 在 Windows 里: doskey ll=dir /l 是完全一样的,仅仅就是 alias 与 doskey 的区别 |
13
yangzzzzzz 327 天前 1
可以试试 ps7 + starship https://starship.rs/
|
14
yangzzzzzz 327 天前 1
或者楼上说的 装个 wsl2 开发环境装在 wsl 里 https://juejin.cn/post/7064161133996802061
|
15
xmuli 327 天前 via iPhone 1
写过一篇扫盲 《 Shell 、Bash 、CMD 、PowerShell 的区别》 https://xmuli.tech/posts/d0c4daee/
然后 Windows 使用优雅的终端《 Windows 打造颜值和实用可媲美 Linux 的终端:Pwsh7 + OhMyPosh 》 https://xmuli.tech/posts/5b69dcad/ 应该解疑 op “不丝滑”的原因,另推荐直接使用 pwsh7 取代 GitBash --来自一个三大系统都会使用到的用户 |
16
byte10 327 天前
把 windows 安装成 pve 就可以了,然后拿 M1 AIR + vscode remote ,完美体验。
|
17
error451 327 天前 9
@libook powershell 丝滑?你真搞笑。
bash 巨简单的操作, 在 powershell 跟屎一样。 比如 ls | grep log 找出结果中包含 log 的行 ,知道 powershell 里怎么做吗? get-ChildItem | Where-Object Name -like "*log*" 注意啊 -like "log" 还只能精确匹配 log . 我不知道命令咋用了,bash 就是简单的 ls --help powershell 给你来个 Get-help Get-ChildItem , 然后 帮助也不是那么详细,动不动给你来个更多信息请访问网址 XXX ..... 你特么的在逗我吗? 你家服务器随便就能上外网是吧。 grep 不论是查找标准输入输出,还是查找文件内容, 统统搞定。 powershell 给你分成三个, 标准输入输出的 得用 Where-Object , 查找文本得用 Select—String , 查找内容得用 Select-Content 设计 powershell 的人脑子里有屎是吧? 敢情 power 的意思就是命令越复杂越好是吧? 如何设置 alias ? 请参考 get-help set-alias 用法是 set-alias -name (alias) -value (command) ps 高版本的 powershell 估计也意识到太过分了,内置了一大堆 alias 比如 get-childitem -> ls 等等, 但是, 仍然是... |
18
wjx0912 327 天前
别折腾了,这是不可能的事
|
19
version 327 天前
实际上没那么多命令行要操作吧...天天重复命令行...还不如使用 vscode 配置 tasks 界面上操作选择任务.
git 老老实实安装个 sourcetree 看些别人的更新日志.开源项目的代码变动.也方便.点点点就好. |
20
Alias4ck 327 天前
弄个 wsl 一样丝滑
|
21
mmxq 327 天前
完全可以.......
Windows Terminal + scoop ( winget ) + starship 用来最基础的美化和安装包管理,启动速度和效果非常好。 然后想实现 Linux 下的命令可以 scoop install busybox 用 Linux 下习惯的命令操作日常,不在被 powershell 那冗长的命令膈应。 楼上说到 grep 检索包含 log 的命令完全可以照搬过来一行搞定。 |
22
acctv2 327 天前
|
23
chendl111 326 天前
用 wsl2
|
24
charlie21 326 天前 via Android
所有开发环境装在 wsl 2 里,宿主机只装 choco 和一个 Windows Terminal 完事
|
25
lpdswing 326 天前
没必要折腾,正常用 cmd 就够了
|
26
cbdyzj 326 天前
没有办法,不建议用 Windows 做开发
|
27
Mbb38C3HtyZydTt7 326 天前
只需要 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 包管理器 ,体验真的很不错了 |
28
lividsu 326 天前
powershell 里支持 ls, pwd 什么的,用起来比 cmd 舒服很多
|
29
newdongyuwei 326 天前
git bash 都安装了,可以加下面的 alias:
alias open=explorer |
30
body007 326 天前
我用 cmder ,很丝滑。可能我比较菜吧。
|
31
bianhui 326 天前
假装自己用的就是 mac
|
32
vvhy 326 天前 2
@error451
grep 不是单独的程序吗,什么时候变成 bash 的功能了。另外 powershell 也可以`ls *log*`。 bash 面向字符串,powershell 面向对象,只能说是思想不一样,各有优点。 至于命令名字太长,个人觉得写完整更清晰好记。 |
33
ksc010 326 天前
cmder
|
34
z1829909 326 天前
echo $profile 会输出一个文件地址, 在里面可以写一些 function, 可以加别名
start .打开当前目录 |
35
joshua7v 326 天前
我是用各自平台的命令,常见的很多命令都有对应的可以用
rm -> del grep -> findstr open -> start ... |
36
rxmt 326 天前 1
有没有人觉得,用 windows 的话 git 自带的 git bash 挺好用的。。。日常用 mac ,偶尔 windows 会把 git bash 放进 windows terminal 里面用...
|
37
lyc8503 326 天前 via Android
msys2 或者 wsl
众所周之,wsl 是最好的 linux 发行版 反而是 mac 下的终端有些指令参数和 linux 不一致 |
38
cabbage 326 天前
@rxmt +1 以前工作环境是 Windows 7 的时候就把 gitbash 带的 bash 当日常 shell 重度用,ps 我确实用不来。记得 windows 的 gitbash 其实就是给安装了个 mingw 环境,附带一票 coreutils 小工具,openssh 之类,再加上个 git ,除开个别路径问题外,日常用和普通 gnu linux 差别不大,体验尚可。好像还带了个可选安装的 kitty 终端模拟器,反正比 windows 黑乎乎的 conhost 好用太多
|
39
Ethkuil 326 天前 via Android
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 |
40
iorilu 325 天前 via Android
不想学习新东西就装 wsl ,然后和原来一样用就是
或者装 Windows terminal ,学点 powershell 也行, 不装 wsl 可用 git bash ,但肯定不好看就是 另外,powershell 可是比其他 shell 功能远远强大,当然了,不是 Windows 开发专家的人一般没人会研究 |
42
CLMan 324 天前
命令行,不仅仅是 shell(cmd,powershell,bash,zsh...),还包括一系列命令行工具,Linux,MacOS 用户熟悉的是 Unix Tools 。
CMD 是 DOS 系统的延续,powershell 是 Winodws 从 Vista 重新设计的一款 shell 。由于 Winodws 主要面向消费者市场,且后续进入 GUI 时代,因此 DOS 系的 shell 和命令行套件就渐渐没啥人用了。而 Unix 系的 shell 和套件由于 linux 在服务端的流行,因此成为了主流。 shell 本质上只是一个程序,powershell 里面启动 git bash ,与 bash 里面启动 zsh ,或者任意 shell 里面启动 Python 没有什么区别。 用 cmd,powershell 意味着你需要从头学一个 shell ,除非是项目需求,个人是不建议学这两个东西,应用面太窄。 Windows 上的 git 提供了 bash ,以及部分 UNIX Tools 。 msys2 或者 cygwin 相比 git ,提供了 bash 以及完整的 Unix Tools 。 但无论是 git 还是 msys2,cygwin ,与 windows 不太搭,包括样式、启动速度、以及存在一些兼容性问题,比如需要用 winpty 来执行 python 命令。 wsl2 需要开启 Hyper-V ,对性能存在一些影响。由于是采用虚拟化方案,跨文件系统的 IO 性能较差。 总之,目前没有一个完美的解决方案,能平替 Linux/MacOS 下的 Unix 系的命令行效果。 |