感觉很少是自身圈子原因。 我个人特别系统使用 WindowsTerminal 中启动 PowerShell ,git 高亮提示使用 starship 但是 powershell 中的很多设定让人吐槽 例如:curl 是个别名,正常使用 curl 这个工具的参数会报错,此时只能灰溜溜的开启 dos 去请求数据。 还有重定向编码为 UTF16 ,设计 UTF8 颇为复杂,为此逛了 StackOverflow 不少帖子
101
FengMubai 2022-08-31 18:35:28 +08:00
内嵌命令不好记, 参数格式不统一
|
103
cnbatch 2022-08-31 19:03:50 +08:00
|
104
jousca 2022-08-31 19:11:51 +08:00
不好用,原因就是命令太长了,又多又长. 不是很好用。
|
105
documentzhangx66 2022-08-31 19:32:26 +08:00 2
1.楼上很多小伙伴,一看就很不严谨。
New-Item -Type SymbolicLink -Path foo -Target bar 这种设计,明显要比 ln -s foo bar 好得多。 因为前者能让你清楚地知道,你在干嘛。 我在 linux 里使用 verbose 参数,我都不会用 -v ,而是使用 --verbose 。因为前者在某些环境下,有可能是 version ,而后者一定是 verbose 。 2.PS 强大,但为什么用的人少,因为 Windows 本来就不是一个命令行的系统,而且 Windows 下面很多软件的设计都遵循这个结果。真正想用命令行的,都去用 linux 了。 |
106
reallittoma 2022-08-31 20:23:56 +08:00
@blankmiss #102 应该是日文系统
|
107
reallittoma 2022-08-31 20:25:42 +08:00
@documentzhangx66 #105 Linux 的缩写习惯,明明是时代的限制,后来大家反而认为它是一种优势
|
108
geelaw 2022-09-01 00:34:40 +08:00
@mijazz #91 你想说的或许是 Get-ChildItem ,然后 gci 显然是三个单词的首字母,绝大多数情况 cmdlet 后面的名词是单数,除非结果 /目标一定是多个对象的时候,以及除了复数单词更常见的时候(比如是 ...Data 而不是 ...Datum )。
|
109
mijazz 2022-09-01 09:51:41 +08:00
@geelaw #108
噢对, 没留意到是`Get-ChildItem`, 这么一来就行得通了. @documentzhangx66 #105 这个说法我很赞同, 在给参数的时候我也会给全, 特别是写 Script 的时候. ps 这碗饭我咽不下的地方在于大写和`-`的结合, 确实是个人习惯问题 |
110
marcong95 2022-09-01 10:29:05 +08:00
对于主要在 windows 下开发的,偶然需要写个小脚本辅助一下的场景,我是觉得确实挺 power 的,cmd/bash 可能由于历史原因语法特别奇葩,大量特殊符号的运用,连搜索都不好搜,相对来说 powershell 的比较贴近日常使用的程序语言,上手难度--
而且楼上说指令太长的,说实话,对于一万年都不用一次的东西,你要是写的时候写的全称,之后再读的时候就不用查文档了。Linux 风格的那种一堆开关堆起来不查文档想破头都想不出来 |
111
yedanten 2022-09-01 10:29:23 +08:00 via Android
不否认,powershell 很强大,但是每次用都得查文档,根本记不住,作为交互式来说,体验极差。作为 shell 文件,我写 py 不香么
|
112
wxf666 2022-09-01 10:42:32 +08:00
@documentzhangx66 在交互式下,你也认为『 New-Item ... 比 ln ... 好,因为前者能让你清楚地知道,你在干嘛』吗?
|
113
droppedbytech 2022-09-01 14:22:46 +08:00
其实就是习惯和普及度的问题吧...unix 系和 Bash 实在太普及了,导致生态有明显差距,尤其是对于全栈或者偏后台的开发者来说,一些命令已经是肌肉记忆了。
如果只说 Shell 语言设计的好不好,bash 显然是不好,模块化 /调试 /可读性可以说都很差,但继承者们的 zsh 还是得兼容,就像 bash 也兼容了很多更早的 sh 一样,就是因为 unix 出现的早,习惯这套东西的人实在太多了,而蕴含的思想也确实足够经典和优秀。一门语言,不管是 shell 语言还是正儿八经的编程语言,并不是设计的好就能普及的,和很多因素挂钩,不然 JavaScript 早就应该被淘汰了吧🐶。感觉除非 Windows (或者哪个使用 PS 作为默认 shell 的操作系统)哪天成为了服务器 /嵌入式 /个人电脑 /便携移动设备的统治级操作系统,就像现在 Linux 这样,PowerShell 才会真正意义上普及吧,使用场景会驱动人们去学习。 |
114
documentzhangx66 2022-09-01 17:21:56 +08:00
|
115
byzod 2022-09-01 17:46:05 +08:00
`解释性完整命名风格` + `没有自动补全` = `灾难`
|
116
wxf666 2022-09-01 18:27:56 +08:00
@documentzhangx66 你日常在 shell 里都打些啥命令啊,天天碰到这些问题么。。
|
117
documentzhangx66 2022-09-01 18:35:17 +08:00
@wxf666
这是严谨,也是企业级的思路。 举个最简答的例子吧,假设你要帮你朋友的电脑进行重装,你如何指导他进行备份数据? 在企业级的思路了,很多日常的搞法,其实风险很大的。你可以借这个经典问题,思考一下。 |
118
james122333 2022-09-01 19:17:20 +08:00
|
119
james122333 2022-09-01 19:20:43 +08:00
|
120
james122333 2022-09-01 19:27:09 +08:00
|
121
wxf666 2022-09-01 19:34:23 +08:00
|
122
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 ? |
123
smallthing 2022-09-02 03:47:25 +08:00
@yanue 对 相比之下 linux shell 简陋至极。
其实主要是 c#生态在国内不好,如果像 go/python 一样有很多人写了免费运维工具。pwsh 的优势会暴涨。 |
124
wxf666 2022-09-02 08:56:13 +08:00
@smallthing 在写复杂脚本时,我也认为 Linux Shell 很丑陋
但在交互式下,你觉得 PowerShell 的优势是啥呢? - 是和 105 楼说的那样,参数写得明显直白,能减少出错,更加安全? - 还是 36 楼说的,Linux Shell 命令太短,很容易不理解 ln ls ll du dd df 什么意思? |
125
ryan4yin 2022-09-02 11:03:01 +08:00
|
126
documentzhangx66 2022-09-02 17:40:14 +08:00
@wxf666 会遇到啥问题,我在前面已经说了,比如 -v ,这样写是很方便,但 -v 在不同环境下,意义不一样,有时候是 version ,有时候是 verbose 。
企业级,或者说生产环境,或者说工作,一定要严谨、认真,因为不这样做,一定会有隐患。 如果只是你私人的小项目,你喜欢怎么玩都行,因为就算被黑了,损失也不大。工作上的东西,你偷懒了,极端情况下,失职造成巨大损失,有可能就是牢狱之灾了,这还会影响下代人。 在工作上偷懒,本质是对公司中的其他人、投资者的不负责、不公平。 |
127
documentzhangx66 2022-09-02 17:41:00 +08:00
|
128
wxf666 2022-09-02 17:55:04 +08:00
|
129
documentzhangx66 2022-09-03 14:57:41 +08:00
|
130
wxf666 2022-09-03 15:33:41 +08:00
@documentzhangx66 你都说那个风险可能导致坐牢,开个 IDE 写个几行几十行 Python Ruby 啥的,代价也不算高吧
|
131
documentzhangx66 2022-09-03 21:22:54 +08:00
|
132
chackchackGO 2022-09-04 10:43:45 +08:00
不知道为什么 core7 在我的 win10 环境下首次命令运行速度极慢, 命令补全的速度也很慢, 实在忍不了.
|
133
james122333 2022-09-09 00:00:30 +08:00 via Android
|
134
james122333 2022-09-09 00:10:34 +08:00 via Android
|
135
873792861 2022-09-18 13:39:44 +08:00
|
136
Howlaind 2022-09-18 13:56:35 +08:00 via Android
@873792861 Invoke-WebRequest 或者 Invoke-RestMethod 命令在 PowerShell 6.1.0 之后支持-Form 参数,
|
137
Howlaind 2022-09-18 13:58:32 +08:00 via Android
抱歉,上面一句手滑没打完。
通过这个参数,可以很方便的提交包含图片的 form-data 。可以在官方文档中查看事例。 当然 5.1 我也很久没用过了。 |