为什么说假如没有tab补全,powershell就没法活,而bash啥事没有?
问:如何给powershell脚本起名?xxx.ps1
问:powershell脚本名,如何tab补全?
答:
建议用2---3个字母打头,剩下用中文文件名。即【bf备份所有旧文件_并删除10天前的.ps1】
这样先打【bf】,然后再打tab即可补全脚本名。
问:自己编写的powershell脚本的参数名,如何tab补全?
问:powershell参数名,如何tab补全?
答:
打脚本名 -<打tab>即可补全(含中文参数)
再打tab即可补全第二个参数。
例子:
-------a.ps1开始-------
param
(
$君不见黄河之水天上来_飞流直下3333千尺
)
echo $君不见黄河之水天上来_飞流直下3333千尺
-------a.ps1结束-------
运行:
./a.ps1 -<打tab>
即可出现:
./a.ps1 -君不见黄河之水天上来_飞流直下3333千尺
问:为什么说用powershell编写带参的脚本,比bash简单10倍,功能强10倍?
答:
1 不需要丑陋的gentopts,gentopt。
2 自动支持所有公共参数。不用编写脚本。
3 支持无限参数别名。
4 支持参数只验证。不用编写脚本。
5 支持try等。
问:powershell方法名,如何tab补全?
答:
目的:把字符a通过toupper()方法,变成大写。
'a'.toup<tab>
返回:
'a'.ToUpper(
问:powershell属性名,如何tab补全?
答:
例子
1 运行qq。
2 输入(get-process qq).w
3 打tab
返回
(get-process qq).WorkingSet
问:如何评价powershell的tab补全?
问:powershell的tab补全,你有啥结论?
答:
通过上面的学习我们看到,powershell可以补全:
1 powershell命令名,(含cmd命令,第三方命令)
2 系统文件名,
3 powershell参数名,
4 你自己编写的powershell脚本的参数名,100%可以补全。
5 powershell方法名,
6 powershell属性名,
这些内容中,完全可以含有中文。
问:如何评价bash的tab补全?
问:bash的tab补全,你有啥结论?
答:
bash可以补全:
1 外部命令名,(含第三方命令)
2 系统文件名,
3 99% 的【linux命令参数名】无tab补全!
或者说,大家都不装,都不用linux命令的参数补全。
理由如下:
3.1 虽然有写好的linux命令参数补全包,但不是默认安装。这导致了:
只有1%的人安装使用了参数名补全。剩下99%的人不用参数名补全,他们用手输单个字母参数名。
单个字母参数名,没有全单词,没有驼峰命名,这又导致了参数名不好记。
3.2 “第三方的【linux命令参数名】无法tab补全!”
或
这导致了“第三方的【linux命令参数名】的tab补全,需要其他方法,额外安装”
4 99.99%【你自己编写的shell脚本参数名】无法tab补全!
【你自己编写的shell脚本参数名】,想要有参数补全,必须单独编写补全脚本。
并存放在bash插件目录,这导致了“99.99%【你自己编写的shell脚本参数名】无法tab补全”
powershell不需要单独编写补全脚本。所以“你自己编写的powershell脚本的参数名,100%可以补全。”而且非常简单。
问:bash的tab补全,和powershell的tab补全,有何不同?
答:
1 bash没有属性和方法,所以上数第5,6条差异,大家应该没有异议。
2 当命令名,参数名,属性名,方法名中,有中文的时候,
powershell中文补全好,bash中文补全差,或者无法补全。这一点大家有异议么?
问:安装【命令参数名tab补全】后的bash更慢?还是powershell补全更慢?
答:
我不知道。我只知道powershell这边默认带有所有补全。bash这边默认不带。
问:如何看待【bash的tab补全差】,将影响整个linux?
答:
我脚臭将影响全家,影响老婆、孩子、火车车厢么?会影响的,对吧?
【bash的tab补全差】,连累所有linux程序的补全,含go开发的命令行程序;含py程序;含perl程序。
可以说,【bash的tab补全差】影响【除了linux版powershell】的所有程序。
bash这边,最终结论:
假如说tab补全是灯。那么bash这边一边漆黑。powershell这边一片光明。
一副好牌让bash打烂了。
bash人几乎不用【参数名tab补全】,他们用【手动输入单个字母参数名】,如 ps -e -f
问:powershell区分大小写么?
答:
powershell命令名,powershell参数名,(你在命令行输入时)不区分大小写。但是你输入的参数值,是区分大小写的。
win,linux,中的文件名写入=保留大小写。
win版powershell,的文件名读取=不区分大小写。
linux版powershell,的文件名读取=区分大小写。
问:powershell命令为啥那么长?我很不爽啊。
问:powershell命令会重名吗?
答:
powershell命令太多,超过好几万。微软为了powershell命令不重名,所以把powershell命令搞的很长。
正因为命令长,命令唯一,才让ps基本不需要像python那样,在脚本中import这个库、那个包。
鱼与熊掌而已。唯一的长命令名,不需要学习记忆包名。
但如果使用了第三方模块,还有可能重名。
如:
carbon模块中,有get-schcduletask命令。
内置的ScheduledTasks模块中,也有此命令,
这就尴尬了,命令重名了,你喊声悟空,六耳猕猴跑过来了。你喊声疯子,特朗普跑出来了
不过,人家教我一招:
Microsoft.PowerShell.Management\Get-ChildItem
(这个命令就是dir,在重名的时候才需要这样输入)
即先敲入【模块名】,再敲入【\】,然后再敲【命令名】,当然可以用tab补全。
这招太好了,相当于详细门牌号,两个命令名完全一样(命令冲突)也不怕了。不过命令名就更长了。
install-module -AllowClobber 就是(安装模块时)允许重复的命令名的意思。
powershell这边,最终结论:
powershell命令名更长,powershell参数名更长,更容易理解。
powershell补全比bash好。但由于powershell命令更长,参数更长,所以powershell更依赖tab补全。
问:如何给powershell脚本起名?xxx.ps1
问:powershell脚本名,如何tab补全?
答:
建议用2---3个字母打头,剩下用中文文件名。即【bf备份所有旧文件_并删除10天前的.ps1】
这样先打【bf】,然后再打tab即可补全脚本名。
问:自己编写的powershell脚本的参数名,如何tab补全?
问:powershell参数名,如何tab补全?
答:
打脚本名 -<打tab>即可补全(含中文参数)
再打tab即可补全第二个参数。
例子:
-------a.ps1开始-------
param
(
$君不见黄河之水天上来_飞流直下3333千尺
)
echo $君不见黄河之水天上来_飞流直下3333千尺
-------a.ps1结束-------
运行:
./a.ps1 -<打tab>
即可出现:
./a.ps1 -君不见黄河之水天上来_飞流直下3333千尺
问:为什么说用powershell编写带参的脚本,比bash简单10倍,功能强10倍?
答:
1 不需要丑陋的gentopts,gentopt。
2 自动支持所有公共参数。不用编写脚本。
3 支持无限参数别名。
4 支持参数只验证。不用编写脚本。
5 支持try等。
问:powershell方法名,如何tab补全?
答:
目的:把字符a通过toupper()方法,变成大写。
'a'.toup<tab>
返回:
'a'.ToUpper(
问:powershell属性名,如何tab补全?
答:
例子
1 运行qq。
2 输入(get-process qq).w
3 打tab
返回
(get-process qq).WorkingSet
问:如何评价powershell的tab补全?
问:powershell的tab补全,你有啥结论?
答:
通过上面的学习我们看到,powershell可以补全:
1 powershell命令名,(含cmd命令,第三方命令)
2 系统文件名,
3 powershell参数名,
4 你自己编写的powershell脚本的参数名,100%可以补全。
5 powershell方法名,
6 powershell属性名,
这些内容中,完全可以含有中文。
问:如何评价bash的tab补全?
问:bash的tab补全,你有啥结论?
答:
bash可以补全:
1 外部命令名,(含第三方命令)
2 系统文件名,
3 99% 的【linux命令参数名】无tab补全!
或者说,大家都不装,都不用linux命令的参数补全。
理由如下:
3.1 虽然有写好的linux命令参数补全包,但不是默认安装。这导致了:
只有1%的人安装使用了参数名补全。剩下99%的人不用参数名补全,他们用手输单个字母参数名。
单个字母参数名,没有全单词,没有驼峰命名,这又导致了参数名不好记。
3.2 “第三方的【linux命令参数名】无法tab补全!”
或
这导致了“第三方的【linux命令参数名】的tab补全,需要其他方法,额外安装”
4 99.99%【你自己编写的shell脚本参数名】无法tab补全!
【你自己编写的shell脚本参数名】,想要有参数补全,必须单独编写补全脚本。
并存放在bash插件目录,这导致了“99.99%【你自己编写的shell脚本参数名】无法tab补全”
powershell不需要单独编写补全脚本。所以“你自己编写的powershell脚本的参数名,100%可以补全。”而且非常简单。
问:bash的tab补全,和powershell的tab补全,有何不同?
答:
1 bash没有属性和方法,所以上数第5,6条差异,大家应该没有异议。
2 当命令名,参数名,属性名,方法名中,有中文的时候,
powershell中文补全好,bash中文补全差,或者无法补全。这一点大家有异议么?
问:安装【命令参数名tab补全】后的bash更慢?还是powershell补全更慢?
答:
我不知道。我只知道powershell这边默认带有所有补全。bash这边默认不带。
问:如何看待【bash的tab补全差】,将影响整个linux?
答:
我脚臭将影响全家,影响老婆、孩子、火车车厢么?会影响的,对吧?
【bash的tab补全差】,连累所有linux程序的补全,含go开发的命令行程序;含py程序;含perl程序。
可以说,【bash的tab补全差】影响【除了linux版powershell】的所有程序。
bash这边,最终结论:
假如说tab补全是灯。那么bash这边一边漆黑。powershell这边一片光明。
一副好牌让bash打烂了。
bash人几乎不用【参数名tab补全】,他们用【手动输入单个字母参数名】,如 ps -e -f
问:powershell区分大小写么?
答:
powershell命令名,powershell参数名,(你在命令行输入时)不区分大小写。但是你输入的参数值,是区分大小写的。
win,linux,中的文件名写入=保留大小写。
win版powershell,的文件名读取=不区分大小写。
linux版powershell,的文件名读取=区分大小写。
问:powershell命令为啥那么长?我很不爽啊。
问:powershell命令会重名吗?
答:
powershell命令太多,超过好几万。微软为了powershell命令不重名,所以把powershell命令搞的很长。
正因为命令长,命令唯一,才让ps基本不需要像python那样,在脚本中import这个库、那个包。
鱼与熊掌而已。唯一的长命令名,不需要学习记忆包名。
但如果使用了第三方模块,还有可能重名。
如:
carbon模块中,有get-schcduletask命令。
内置的ScheduledTasks模块中,也有此命令,
这就尴尬了,命令重名了,你喊声悟空,六耳猕猴跑过来了。你喊声疯子,特朗普跑出来了
不过,人家教我一招:
Microsoft.PowerShell.Management\Get-ChildItem
(这个命令就是dir,在重名的时候才需要这样输入)
即先敲入【模块名】,再敲入【\】,然后再敲【命令名】,当然可以用tab补全。
这招太好了,相当于详细门牌号,两个命令名完全一样(命令冲突)也不怕了。不过命令名就更长了。
install-module -AllowClobber 就是(安装模块时)允许重复的命令名的意思。
powershell这边,最终结论:
powershell命令名更长,powershell参数名更长,更容易理解。
powershell补全比bash好。但由于powershell命令更长,参数更长,所以powershell更依赖tab补全。