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

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

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

14981 次点击
所在节点    程序员
137 条回复
wxf666
2022-09-01 19:34:23 +08:00
@documentzhangx66 我不知道你打算怎么备份,tar ? rsync ? dd ?或者啥更专业的命令

要不你直接说会碰到啥问题吧
smallthing
2022-09-02 03:39:11 +08:00
半懂不懂的为啥要发帖子给人增加压力?
首先:不鼓励使用别名
从 Powershell 6.x 开始,“Core” curl 不再是 的别名 Invoke-WebRequest (别名 wget 也被删除)。而是 Invoke-WebRequest 直接使用。

如果你要跨平台使用,你需要安装的是显然是 pwsh (黑色的 powershellcore )而不是蓝色的那个
底下一堆说参数不支持的难道不知道就算是老版本的 powershell 也可以用 curl.exe 来调用原始 curl ?
smallthing
2022-09-02 03:47:25 +08:00
@yanue 对 相比之下 linux shell 简陋至极。
其实主要是 c#生态在国内不好,如果像 go/python 一样有很多人写了免费运维工具。pwsh 的优势会暴涨。
wxf666
2022-09-02 08:56:13 +08:00
@smallthing 在写复杂脚本时,我也认为 Linux Shell 很丑陋


但在交互式下,你觉得 PowerShell 的优势是啥呢?

- 是和 105 楼说的那样,参数写得明显直白,能减少出错,更加安全?

- 还是 36 楼说的,Linux Shell 命令太短,很容易不理解 ln ls ll du dd df 什么意思?
ryan4yin
2022-09-02 11:03:01 +08:00
非 Windows 系统没啥必要单独装 powershell 用,真要装还不如装这个:

https://www.nushell.sh/
documentzhangx66
2022-09-02 17:40:14 +08:00
@wxf666 会遇到啥问题,我在前面已经说了,比如 -v ,这样写是很方便,但 -v 在不同环境下,意义不一样,有时候是 version ,有时候是 verbose 。

企业级,或者说生产环境,或者说工作,一定要严谨、认真,因为不这样做,一定会有隐患。

如果只是你私人的小项目,你喜欢怎么玩都行,因为就算被黑了,损失也不大。工作上的东西,你偷懒了,极端情况下,失职造成巨大损失,有可能就是牢狱之灾了,这还会影响下代人。

在工作上偷懒,本质是对公司中的其他人、投资者的不负责、不公平。
documentzhangx66
2022-09-02 17:41:00 +08:00
@james122333

别人不严谨、摆烂,会成为你不严谨与摆烂的理由吗?
wxf666
2022-09-02 17:55:04 +08:00
@documentzhangx66 这样的需求,Python 等脚本语言,应该更适合?

别说参数了,连语法都有专业 IDE 实时检查,还能逐步调试等
documentzhangx66
2022-09-03 14:57:41 +08:00
@wxf666

是的。

严格来说,不仅需要实时检查,单步调试,就连命令与数据,也应该分开,不然一定会导致 SQL 这种注入攻击。

问题是到了这一步,大部分人觉得,代价太高了,不愿意去搞。
wxf666
2022-09-03 15:33:41 +08:00
@documentzhangx66 你都说那个风险可能导致坐牢,开个 IDE 写个几行几十行 Python Ruby 啥的,代价也不算高吧
documentzhangx66
2022-09-03 21:22:54 +08:00
@wxf666

酒驾会坐牢,大家都知道。

你上头条或抖音,随便搜搜,酒驾的事情少嘛?

同一个道理:总会有人偷懒,刚好撞上大坑。
chackchackGO
2022-09-04 10:43:45 +08:00
不知道为什么 core7 在我的 win10 环境下首次命令运行速度极慢, 命令补全的速度也很慢, 实在忍不了.
james122333
2022-09-09 00:00:30 +08:00
@documentzhangx86

这只是另一种强迫症 严谨还不光只是名词 是贯穿整个程序的 言简意赅串联而成的应用是不严谨吗?
james122333
2022-09-09 00:10:34 +08:00
@documentzhangx86

很多时候这种严谨会特别抢戏也会破坏整体的严谨
873792861
2022-09-18 13:39:44 +08:00
@873792861
@Howlaind 你不妨比较下在 5.1 版本下 powersehll 提交 form-data 这种包含字符串字段和图片的,用 powershell 引用 httpclient 和用 requests 来写,哪个更方便?
Howlaind
2022-09-18 13:56:35 +08:00
@873792861 Invoke-WebRequest 或者 Invoke-RestMethod 命令在 PowerShell 6.1.0 之后支持-Form 参数,
Howlaind
2022-09-18 13:58:32 +08:00
抱歉,上面一句手滑没打完。
通过这个参数,可以很方便的提交包含图片的 form-data 。可以在官方文档中查看事例。
当然 5.1 我也很久没用过了。

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

https://tanronggui.xyz/t/876580

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

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

© 2021 V2EX