在 Git-sam 官网中,git 书籍 pro git 有提到 zsh
查了一下,zsh 是 mac 系统的默认 shell
没用过苹果电脑,来问问具体 zsh 有啥厉害的地方
目前已知
1.command-completition 命令补全很好
2.可以自己配置开源的一大堆 theme.....
提问:
用惯 bash shell 的有必要换吗?
1
iamwho 2020-10-24 17:18:53 +08:00 2
没必要
如果你认为列出的两点很重要,那么 fishshell 比 zsh 更好。 |
2
hanxiV2EX 2020-10-24 17:23:35 +08:00 via Android
bash shell 习惯就好,补全和主题都可以自己配置。
|
3
mschultz 2020-10-24 17:26:04 +08:00
|
4
luckyrayyy 2020-10-24 17:26:32 +08:00
好看,插件多,别的没觉得。另外 bash 这两点我也不知道是不满足还是折腾得人少,有可能也满足。
|
5
ipwx 2020-10-24 17:28:15 +08:00
zsh 还挺兼容 bash 语法的,就是有点慢。
|
6
Tink 2020-10-24 17:39:23 +08:00 via Android
这两个大同小异
|
7
laoyur 2020-10-24 17:41:05 +08:00
> 查了一下,zsh 是 mac 系统的默认 shell
? |
9
love 2020-10-24 17:46:47 +08:00
是有改进,但好处没有到要折腾换了默认 bash 的地步,毕竟平时 bash 足够用了
|
10
boris93 2020-10-24 17:50:18 +08:00 via Android
@laoyur #8 如果你是老系统升级上来的,那么你的默认 shell 还是 bash,但是每次打开终端都会提示你换成 zsh
|
11
charlie21 2020-10-24 18:12:59 +08:00
不建议瞎搞 bash 。瞎搞 zsh 出问题之后还可以用 bash,瞎搞 bash 出问题之后你用什么
|
12
crclz 2020-10-24 18:18:04 +08:00
bash 很好用,有复杂的功能的时候可以偶尔写写 python 脚本作为补充
|
13
xupefei 2020-10-24 18:19:48 +08:00 via iPhone 1
我选 fish👍
|
14
zhuangzhuang1988 2020-10-24 18:23:56 +08:00 1
要不试试 pwsh 😄
|
15
lights 2020-10-24 18:34:18 +08:00
我甚至不知道 bash 、zsh 它们有什么本质上的区别
我用 zsh,唯一原因是习惯了 oh-my-zsh + git 的插件 |
16
JackieMe 2020-10-24 18:39:17 +08:00 via Android
换了随便下个 oh my zsh 用两天就知道了,不全确实方便很多,感觉节约点时间。反正我是用了就回不去了。换了用两天也不损失什么,没什么学习成本。
|
17
clrss 2020-10-24 18:42:35 +08:00 via iPhone
没有必要。
mac 下原生 bash 太老了(开源协议问题),可 brew 安装 bash 5 |
18
k3Sv1 2020-10-24 18:56:19 +08:00 via iPhone
如果你觉得你列出的两点是“必要”的,换吧。
虽然 mac 已经默认 zsh 了,我也跟着用了( |
19
nuk 2020-10-24 18:57:23 +08:00
cli 用的不多的话,有配置的时间不如开两把游戏。
|
20
fiveelementgid OP @iamwho emmmmm 查资料的时候确实第一个弹出来的是 fishshell 和 zsh....
|
21
fiveelementgid OP @hanxiV2EX 楼下给了配置....我去看看
|
22
fiveelementgid OP @mschultz 感谢!!!!!
|
23
fiveelementgid OP @luckyrayyy 入 oh-my-bash 了
|
24
fiveelementgid OP @ipwx 慢?没用过
|
25
fiveelementgid OP @Tink 好吧
|
26
fiveelementgid OP @laoyur 是的,这个查出来确实是 2019-11 更换的
|
27
fiveelementgid OP @love 好的
|
28
fiveelementgid OP |
29
fiveelementgid OP |
30
fiveelementgid OP @lights 也不知道,可能都是 shell interface,决定入 oh-my-bash 了
|
31
fiveelementgid OP |
32
ppphp 2020-10-24 19:34:50 +08:00
我是觉得不用 vim 可能哪个 sh 没啥影响,主要还是 rg,fd 这种命令提升幸福感比较多一点
|
33
Jirajine 2020-10-24 19:39:56 +08:00 via Android
你这俩比肯定是 zsh,没有任何用 bash 的必要。
zsh 和 fish 的话,zsh 的优点是兼容 bash,fish 的优点是不兼容 bash,所以看个人喜好。 |
34
IgniteWhite 2020-10-24 20:22:19 +08:00
catalina 之后默认 zsh,据说是版权问题
|
35
Kobayashi 2020-10-24 20:23:04 +08:00 via Android
生态 https://github.com/unixorn/awesome-zsh-plugins
看看这插件管理器和框架的数目。没有哪个 shell 能敌得过 zsh 作为一款 interactive shell 的地位。 不管是 bash zsh fish 我们这里讨论的都是作为 interactive shell 。平时写脚本当然是 bash,这样最大能保证其兼容性。 bash 作为一个 interactive shell,比其他两位弱多了。现在连一个完整的钩子系统都没有。 fish 的确很有创新,从 completion history highlight 这些好设计都被 zsh 插件抄了就可以看出。但 fish 目前最大问题还是社区敌不过 zsh 、语法不合 bash 兼容。 |
36
testcaoy7 2020-10-24 20:29:46 +08:00 via Android
我给我的 Mac 用的 fish
|
37
gitopen 2020-10-24 20:31:28 +08:00 via Android
fish 有 oh my fish
|
38
fiveelementgid OP @ppphp 你说的这两个玩意我都没听过......
|
39
fiveelementgid OP @Jirajine 原来不兼容.....学到了(奇怪的知识增加了
|
40
fiveelementgid OP @testcaoy7 emmmm
|
41
fiveelementgid OP @gitopen 好像全都叫 ohMyxxxxx
|
42
kingfalse 2020-10-24 20:38:44 +08:00 via Android
|
43
Chowe 2020-10-24 20:39:04 +08:00 via iPhone
你们都太高级了,我还在用 busybox ash
|
44
12101111 2020-10-24 20:48:11 +08:00 28
bash 和 zsh 都要追溯到 Unix 第七版的 Bourne shell, 这是几乎所有 Unix 世界 shell 的起源.
Ken Thompson 编写的 Unix 里包括一个 shell, 后来被称为 Thompson shell, 功能非常简单, 因此 Bourne 改进了这个 shell, 就叫 Bourne shell, 但是 Berkeley 的 Bill Joy (也是 vi 的作者和 Sun 创始人)觉得 Bourne shell 还是不好(比如流传到现在的鬼畜的语法), 就自己写了一个语法类似于 C 的 shell, 就叫 C shell, 然后随着 2BSD 发布.后来的几乎所有 shell (不包括微软家的和 fish)几乎都受到 csh 和 Bourne shell 的影响. Almquist 基于 System V release 4 的 shell 写的轻量级 shell 叫 Almquist shell (ash) , 仅兼容 Bourne shell Debian 改进的 ash 叫 dash, 而 dash 被移植到 busybox 里. tcsh 是 csh 的改进, 现在是 FreeBSD 的默认 shell, 也是 macOS 10.3 前的默认 shell, macOS 下的 csh 实际就是 tcsh. Bell 实验室的 Korn 改进了 Bourne shell, 吸收了一些 csh 的功能, 就叫 Korn Shell ksh 是因为需要商用 Unix 授权,因此有人重写了 ksh, 叫 public domain Korn shell (pdksh) OpenBSD 使用的默认 shell 就是 pdksh MirBSD (OpenBSD 的早期 fork) 包含了 pdksh, 叫 mksh, 是现在 Android 的默认 shell ( adb shell 命令) Bash(Bourne again shell)是 GNU 工程实现了 shell, 也是大多数 GNU Linux 的默认 shell, 也曾经是 macOS 的默认 shell (10.4-10.14), 兼容 Bourne shell 但吸收了 csh 和 ksh 的一些功能, Z shell 是 Paul Falstad 编写的兼容 Bourne shell 但吸收了 csh 和 ksh 的一些功能的 shell 所以 bash 和 zsh 是近乎同一时间出现(89 年, 90 年)的两个不同的项目, 其相同点就是采用了 Bourne shell 的语法,因此部分兼容. |
45
zmxnv123 2020-10-24 21:15:33 +08:00
新手程序员用 bash,普通程序员用 zsh,二逼程序员用 fish,大佬程序员用 sh 。
|
46
fiveelementgid OP @kingfalse 没有 Mac 的我默默路过
|
47
fiveelementgid OP @Chowe ????这个又是什么玩意????
|
48
fiveelementgid OP @12101111 emmmmm
|
49
feather12315 2020-10-24 21:22:14 +08:00 via Android
@zmxnv123 #45 我在向二逼程序员进化
|
50
des 2020-10-24 21:29:57 +08:00
fish 用户+1
最近试了试 pwsh,感觉真是的很先进的设计,也非常强大 但是总觉得互交上不太对,不知道是需要配置还是没用习惯 |
51
CNife 2020-10-24 21:37:23 +08:00
fish,懒得折腾 oh-my-zsh
|
52
chengxiao 2020-10-25 00:05:07 +08:00
用 zsh 就是冲着 oh-my-zsh 补全提示 和 那堆主题去的
其他和 bash 没区别吧 |
53
cdlnls 2020-10-25 00:14:39 +08:00 via Android
fish 用过还行,自己电脑用的 zsh,服务器上不折腾用的 bash 。
|
54
cdlnls 2020-10-25 00:16:01 +08:00 via Android 1
用惯 bash 确实没必要换,尝鲜的话可以用用 zsh 或者 fish
|
55
tianshilei1992 2020-10-25 00:54:48 +08:00
fish 最大的问题就是不兼容 bash 语法…
|
56
R0ckyY2 2020-10-25 02:40:27 +08:00
Google 一下 “zsh vs. bash",你会得到你想要的回答,比在这问强多了。
|
57
nuk 2020-10-25 03:04:14 +08:00
@fiveelementgid windows 登录有终端的复制粘贴,加自动补全就妥妥的了,shell 玩的越溜,回车速度越快,服务器爆炸也越快。。
|
59
pC0oc4EbCSsJUy4W 2020-10-25 04:24:20 +08:00
直接使用 oh my zsh 太慢了
zsh 可以使用其他框架的,逗比 omz 强,速度也快 zinit 等 |
60
wtks1 2020-10-25 04:37:20 +08:00 via Android
为了兼容性,还是用 bash 吧,免得换到别的设备上适应不过来
|
61
dcoder 2020-10-25 06:25:52 +08:00
@fiveelementgid
为了兼容性,还是用 bash 吧,免得换到别的设备上适应不过来 +1 用 bash 有个潜在的使用场景,就是去 Linus server 上用 terminal, 那里没有 zsh 没必要搞 zsh. Mac 的默认 bash 很容易从 zsh 换回 bash |
62
noqwerty 2020-10-25 07:25:23 +08:00 via Android
开箱即用 fish shell 挺香的,偶尔需要跑一些网上找的不兼容的 bash 脚本就手动开一个 bash 不就好了
|
63
Smash 2020-10-25 08:36:14 +08:00 via Android
自己的 mbp 和黑苹果都是 fish 。我觉得不冲突,不了兼容的时候,手动敲下 bash 切回去不就行了吗。
|
64
aloxaf 2020-10-25 08:53:40 +08:00 via Android
简要地讲,作为交互式 shell zsh 的地位是无可撼动的。
|
65
aloxaf 2020-10-25 08:55:38 +08:00 via Android
bash 相比 zsh 的唯一优势是各大系统预装,写起脚本来兼容性好。作为交互式 shell
|
66
jin7 2020-10-25 10:52:11 +08:00
无所谓 有啥用啥
|
67
cco 2020-10-25 10:53:30 +08:00
首先,这不是默认的 bash 。
其次,好用,自动补全,大小写不铭感,有多个主题好看等。 没用过 fish 。 |
68
EvilDevilJin 2020-10-25 11:22:51 +08:00
用的 zsh,就是为了那 oh my zsh,一堆插件语法高亮自动记忆建议补全,还有各种高颜值主题
|
69
newtype0092 2020-10-25 11:33:41 +08:00
fish +1
折腾多了就会发现,开箱即用和最简化的配置方式才是长期使用最看重的点。 |
71
fiveelementgid OP @dcoder 嗯
|
72
fiveelementgid OP @R0ckyY2 看提问.....我就是在 Google 查到这玩意我才知道 zsh 过来问的.....
|
73
fiveelementgid OP @nuk 深有体会 hhhhhhh
|
74
fiveelementgid OP @cco zsh 确实是 Mac 默认的.....(谷歌说的
|
75
R0ckyY2 2020-10-25 13:48:27 +08:00
@fiveelementgid 那你就继续 Google 查”why zsh", "why bash","zsh bash which is better" 等。
|
76
zlowly 2020-10-25 14:15:07 +08:00
如果是自己个人使用,也有时间折腾,换 zsh 可以有更好功能更强的定制。如果是工作需要维护服务器,则不建议更换。
|
77
fiveelementgid OP @R0ckyY2 ......我已经折腾出来了用 oh-my-bash 凑合着用了
|
78
fiveelementgid OP @zlowly 不是职业运维,但是自己的服务器基本都是自己打理啥的.......放弃了,用 bash 套个 oh-my-bash 凑合了
|
79
R0ckyY2 2020-10-25 14:48:09 +08:00
@fiveelementgid 如果 zsh 的话,推荐 zimfw ( https://github.com/zimfw/zimfw ),这是我在尝试了主流的 manager 后,觉得易用性和功能上最好的,集轻量、速度于一身。
Prompt 的话,最好的就是 powerlevel10k ( https://github.com/romkatv/powerlevel10k ),没有之一,它的“异步”加载,可以使得我们“忽略”zsh 在用了 plugin 后加载速度慢的缺点。 附上我自己的 zsh 配置,比较基础,供参考: https://github.com/yanzhang0219/dotfiles/tree/master/.config/zsh 谢谢。 |
80
JavaIO 2020-10-25 15:32:48 +08:00
折腾完 zsh,最后还是换成 bash
|
81
610915518 2020-10-25 16:39:10 +08:00
就是为了用 oh-my-zsh 而使用的 zsh,随便装个主题就能用了。
|
82
wzxlovesy 2020-10-25 16:43:06 +08:00 via Android
zsh 在一些低性能嵌入式设备上很慢……我在 rpi4 上的 docker 里尝试打开 zsh 大概要十几秒,所以对性能有严苛要求的环境还是用 bash 或者 sh
|
84
fox0001 2020-10-25 18:41:43 +08:00 via Android
有空折腾这个,还不如多写两行代码…
|
86
fiveelementgid OP @fox0001 在写了,在写了,别骂了,再骂人都傻了
|
87
lululau 2020-10-25 22:46:43 +08:00 via iPhone
如果认为 zsh 就是个漂亮主题和还用的补全,可以看看我录的这个对于 zsh 的介绍 https://b23.tv/iI5nTh
|
89
Dogtler 2020-10-26 11:39:38 +08:00
ohmyfish,真的香,快乐的一比
|