PowerShell 这种强大的命令行工具,为什么使用的人很少?

2022-08-30 22:15:53 +08:00
 pepi

感觉很少是自身圈子原因。 我个人特别系统使用 WindowsTerminal 中启动 PowerShell ,git 高亮提示使用 starship 但是 powershell 中的很多设定让人吐槽 例如:curl 是个别名,正常使用 curl 这个工具的参数会报错,此时只能灰溜溜的开启 dos 去请求数据。 还有重定向编码为 UTF16 ,设计 UTF8 颇为复杂,为此逛了 StackOverflow 不少帖子

14977 次点击
所在节点    程序员
137 条回复
lxml
2022-08-31 11:38:36 +08:00
开局输给了 linux 的 bash 就是原罪,微软出品更是原罪
codingBug
2022-08-31 11:39:50 +08:00
@brucmao starship 好像看起来很棒
MonoLogueChi
2022-08-31 11:42:35 +08:00
虽然我一直在用 powershell ,但是我不推荐别人去用。先说这玩意强,确实强,必须先吹一波管线和类型,powershell 是有类型的,而不是像其他 shell 一样,只是字符串,这个东西用过才能理解。
再说为啥不推荐别人用,先说从 powershell 本身来说,Windows ,混乱,先有 cmd ,再有 windows powershell(5),还有 powershell core(6 7),而且这 3 个东西还必须共存,有些东西不通用,没有相关经验的话,根本搞不清什么时候该用哪个。linux ,需要额外安装 powershell 。再来说 powershell 语法,前面也说了这玩意强,但是强是有代价的,命令多,语法复杂,而且是有类型的,这样就造成了一个问题,简单命令也会特别长,特别啰嗦,如果不能理解 powershell 的设计理念,入门就会非常难
AoEiuV020CN
2022-08-31 11:57:18 +08:00
总是给我“不好用”的感觉,
cmd 能解决的还是优先 cmd ,
datou
2022-08-31 12:07:24 +08:00
powershell 最扯淡的是很多大驼峰命令
lolizeppelin
2022-08-31 12:43:14 +08:00
@MonoLogueChi

shell 搞那么复杂还不如用正儿八经的编程语言......powershell 这种不上不下的非常尴尬
除非要用什么 windows 相关接口 python 写起来太麻烦..否则不如写 python.
tankren
2022-08-31 12:51:25 +08:00
要么 bat 要么 python 吧
nicevar
2022-08-31 14:01:28 +08:00
主要是 psh 没有太好的被迫学习环境,不像 bash ,熟悉 linux 必须得学,用 MacOS 装逼也得学,但是用 Windows 大多情况用 bat 就行了,psh 就没什么太大必要。
laqow
2022-08-31 14:01:40 +08:00
设计个语言完全不考虑打字方不方便,大部分右键需要解决的问题 cmd 就能解决的,系统很霸道地把 shift 右键的 cmd 换成 powershell
cosette
2022-08-31 14:29:50 +08:00
出现的晚了,“命令行”跟*nix 就和“图形界面”跟 windows 一样,硬要说 win 上的命令行,普及度更广的应该是批处理,也是靠各种脚本流行的。

因此即便在 linux 上用命令行完成某些事情要一长串让人眩晕的管道命令,但大家已经学会了忍受,因为你用不好是你学艺不精。举例来说,在 linux 上的各种命令里使用 正则表达式 就让人头疼甚至心生恐惧,书写风格都不是统一的,捕获分组到底是 `()` 还是 `\(\)` ,哪些情况下要转义,让人迷惑。但你不能抱怨这些,因为从历史考察某些命令工具可能比很多人出生的要早,已经有极多的用户,从另一个层面来讲,*nix 有极浓的 geek (工程师)文化,“你要是觉得不好用,你自己去写一个工具”,这源自于*nix 社区在极早期发展的时候的文化,所以大家热衷于写各种脚本,造各种轮子,一方面锻炼自己的能力融入这个“geek”文化圈子,另一方面也是在方便自己。

说回 powershell ,完成某些任务确实很方便,而且命令、参数的语义性很强(看起来很长),但网上没那么多的轮子,如果某项工作有其他熟悉的替代方案,那懒得去学。
mijazz
2022-08-31 14:32:55 +08:00
拖 OP 的福, 我今天安装了个 powershell 7

像#30 - #41 左右讨论的一样, powershell 自己的 cmdlet 不可以说设计得不好, 是我的思维已经被 `bash` 或者 `zsh` 这些同类固化了.

我不会想着进目录就 Get-Children, 虽然他也有`ls`的 alias, 但是写 Script 还是得用全称.

我感觉下来没什么可以吐槽的点, 毕竟也是个啥都能干的 shell, 但是它自带的 alias 也太奇怪了, Get-Children -> `dir`, `ls`我都能理解, 两个兼容性的字段, 但是`gci`是什么操作...不应该是`gcd`才顺口嘛...

[cmdlet alias 对照]( https://www.pdq.com/powershell/)
stoluoyu
2022-08-31 14:33:53 +08:00
大部分用命令行的人肯定要会用 linux ,没动力再学一套语法了,我也就用到的时候偶尔现查一下。
Slurp
2022-08-31 15:16:34 +08:00
作为一个日常使用的 Shell ,先把启动速度弄好再说吧。

我 Zsh 装一堆插件照样可以 0.09 秒启动。PowerShell 上来就 2 秒。
rrZ2C
2022-08-31 16:08:06 +08:00
我是因为以前工作环境已 Linux 为主, 习惯了

我看其他同事也更是无所谓 cmd 还是 window terminal
11232as
2022-08-31 16:10:39 +08:00
习惯了 UNIX 那套思想后用不习惯 powershell
rming
2022-08-31 16:11:05 +08:00
我能问下我这个是怎么回事么?虽然我不用
ryansvn
2022-08-31 16:12:32 +08:00
@cweijan 对,很多 cmd 的命令参数都不支持,老是报错,就很讨厌了
yanue
2022-08-31 16:25:41 +08:00
跟 linux shell 不是一个级别的
WOLFRAZOR
2022-08-31 18:21:53 +08:00
没力气再学多一套了(用到再现查指南),习惯了 UNIX 的 terminal 之后用这个很不习惯
tanek
2022-08-31 18:32:29 +08:00
@ColorfulBoar 可能是还在找上一次打开窗口的 history 呢。

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

https://tanronggui.xyz/t/876580

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

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

© 2021 V2EX