.bashrc 和 .inputrc 有什么区别

Cou*_*000 23 bash shell-script bashrc inputrc

我是新来的UNIX系统,并且发现很有意思的设定文件来创建自定义的功能和配置像.bashrc.inputrc

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

Example 1: alias ...='cd ../../'
Run Code Online (Sandbox Code Playgroud)

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

Example 2: "\e[A": history-search-backward
Run Code Online (Sandbox Code Playgroud)

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

先感谢您!

ali*_*lth 25

.inputrc文件中的设置影响所有使用GNU readline 库的程序,而不仅仅是bash. 在想象.inputrc文件作为对GNU的ReadLine类似于如何配置文件.bashrc是一个配置文件bash

GNU Readline 被描述为:

... 一组供应用程序使用的函数,允许用户在输入命令行时对其进行编辑。

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

回答你的最后一个问题

我如何区分什么时候放什么地方?

如果您想要一个选项来影响系统上使用 GNU Readline 库的所有程序,.inputrc这将是首选。否则,如果您只是想配置您的bash会话,.bashrc这将是最佳选择。

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