.bashrc和.inputrc有什么区别


14

我是unix系统的新手,发现在诸如.bashrc和的设置文件中创建自定义功能和配置很有趣.inputrc

但是,我不了解两者之间的区别。例如,当我创建别名时,将它们放在中.bashrc

Example 1: alias ...='cd ../../'

当我创建诸如使用箭头键查找上一个或下一个命令之类的操作时,会将命令放入中.inputrc

Example 2: "\e[A": history-search-backward

为什么需要将它们放在不同的设置文件中?我如何区分何时放置在何处?

先感谢您!

Answers:


18

.inputrc文件中的设置会影响使用GNU readline库的所有程序,而不仅仅是GNU readline库bash。将该.inputrc文件视为GNU Readline的配置文件,类似于.NET .bashrc的配置文件bash

GNU Readline描述为:

...一组供应用程序使用的功能,允许用户在键入命令时编辑命令行。

为了进一步说明,.bashrc文件中的设置影响bash。如果希望有选择地在bash没有GNU Readline支持或使用的情况下运行,则可以bash使用以下--noediting选项进行调用:bash --noediting。您可以在此处找到有关bash选项的更多信息。

回答您的最后一个问题

我如何区分何时放置在何处?

如果您希望有一个影响使用GNU Readline库的系统上所有程序的选项,那.inputrc将是最佳选择。另外,如果您只想配置bash会话,那.bashrc将是最佳选择。


谢谢@aliceinpalth。您是说bash属于GNU Readline库吗?GNU Readline库还有什么?
Counter10000 '18

5
@ Counter10000从这个意义上说,库不是“工具集合”(我可以理解为什么会这样),而是“大量不同工具可以使用的功能”。在这种情况下,它的功能是使用命令行(包括回滚,行编辑等)。Bash将此用于shell提示。在我眼前的系统上,它还用于bc(命令行计算器),xfsprogs(文件系统管理程序),sqlite(非常小的数据库系统),lftp(命令行ftp客户端)等等。
mattdm

1
没问题@ Counter10000!我很乐意提供帮助。@mattdm很好地回答了您的问题。要了解有关这些程序如何利用GNU Readline的更多信息,请点击此处
aliceinpalth '18

1
您的答案的最后一段似乎至少是不正确的。我想有些选项只能在inputrc文件中设置,因此这两个文件不是完全“可互换的”。我试图从这个答案中设置选项,但.bashrc没有任何反应。它们仅在.inputrc
user907860 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.