能否在安装archlinux的时候以及后续的日常使用中使用dash替换bash?

dash用来运行脚本在速度上要比bash快,而其他不兼容POSIX的shell,比如fish在交互上要比bash更友好,更面向交互。在”更好的交互”这个方向上也有其他不弱于fish的shell可选,但是就单论脚本执行速度,那dash是无与伦比的快。

所以为什么不使用dash来替换bash呢?这里的替换指的是不下载bash,直接下载dash。

可以这样吗?

何苦呢……Arch Linux很多脚本也是依赖bash而不是POSIX sh的,换不了。

另外我并不觉得dash快。尤其是bash/zsh脚本可以用更省事的非POSIX特性的时候。

1 Like

别换。

linux默认用bash基本上已经成了惯例,擅自替换会造成不可知后果,正如ArchWiki所言:

大多数 POSIX 兼容的脚本在脚本的第一行指定 /bin/sh,这意味着它将运行 /bin/sh 作为 shell,在 Arch 中默认情况下,/bin/sh 是指向 /bin/bash 的符号链接。

您可以将 /bin/sh 重新符号链接到 /bin/dash,这可以提高系统性能,但首先您必须验证所有非显式声明 #!/bin/bash 的脚本都不需要任何 Bash 的特性,并且所有 /bin/sh 脚本都安全地符合 POSIX 标准。

鉴于潜在的挂着sh实际用bash特性的脚本的存在,完全避免使用bash几乎是不可能的,相比之下换用dash能带来多少可感知的性能提升呢?我不认为这是一笔划算的买卖。