我最近无法回答fish
shell 和bash
shell 之间的区别。我的一些问题涉及 --> 为什么bash
使用.bashrc
和fish
不使用?如果有人能阐明这个问题,我将不胜感激。注意:这个问题不仅与大多数 shell 有关,fish
而且bash
与大多数 shell 都有关。
答案1
不同的 shell 支持不同的命令和语法。虽然常用的 shell 在某种程度上与 Bourne shell(bash 的前身、POSIX shell 标准和许多其他 shell)兼容,但它们确实有所不同。特别是,bash 添加了许多其他 shell 所没有的功能。
“bash” 是“Bourne again shell”的缩写,指的是它要取代的 shell。
为什么 bash 使用 .bashrc 而 fish 不使用?
因为.bashrc
是特定于 bash 的。大多数人使用 bash 作为他们的交互式 shell,即使他们使用不同的 shell 来执行脚本。使用.bashrc
设置 bash 交互式环境允许您在其中放置仅在 bash 上工作的东西。
的替代方案.bashrc
并非特定于 bash 的,而是.profile
。 中的命令.profile
旨在用于任何shell 以交互方式使用(该概念.profile
源自于 Bourne shell)。
请注意,.bashrc
非登录 shell(例如,登录 shell 的子 shell)可以读取,但.profile
不能。