Quelle est la différence entre .bashrc et .inputrc

14

Je suis nouveau dans le système Unix et je trouve intéressant de créer des fonctions et des configurations personnalisées dans les fichiers de configuration comme .bashrcet .inputrc.

Cependant, je ne comprends pas les différences entre les deux. Par exemple, lorsque j'ai créé un alias, je les ai insérés .bashrc.

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

Lorsque je crée des opérations telles que l'utilisation de la touche fléchée pour rechercher la commande précédente ou suivante, je place la commande .inputrc.

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

Pourquoi dois - je les mettre dans des fichiers de paramètres différents? Comment distinguer quand mettre quoi et où?

Merci d'avance!

Counter10000
la source

Réponses:

18

Les paramètres qui se trouvent dans le .inputrcfichier affectent tous les programmes qui utilisent la bibliothèque GNU readline , pas seulement bash. Considérez le .inputrcfichier comme étant un fichier de configuration pour GNU Readline similaire à la façon dont .bashrcun fichier de configuration est utilisé bash.

GNU Readline est décrit comme:

... Un ensemble de fonctions à utiliser par les applications qui permettent aux utilisateurs de modifier les lignes de commande au fur et à mesure de leur saisie.

Pour clarifier un peu plus loin, les paramètres qui sont dans le .bashrcfichier n'affectent . Si vous souhaitez en option exécuter sans support GNU Readline ou d' utilisation, vous pouvez invoquer avec l' option de la manière suivante: . Vous pouvez en savoir plus sur les options ici .bashbashbash--noeditingbash --noeditingbash

Pour répondre à votre dernière question

Comment distinguer quand mettre quoi et où?

Si vous souhaitez qu'une option affecte tous les programmes de votre système qui utilisent la bibliothèque GNU Readline, ce .inputrcserait le premier choix. Sinon, si vous souhaitez simplement configurer votre bashsession, ce .bashrcserait le meilleur choix.

aliceinpalth
la source
Merci @aliceinpalth. Voulez-vous dire que bash appartient à la bibliothèque GNU Readline? Qu'y a-t-il d'autre dans la bibliothèque GNU Readline?
Counter10000
5
@ Counter10000 En ce sens, la bibliothèque n'est pas "une collection d'outils" (je peux voir pourquoi vous pourriez penser cela) mais "un ensemble de fonctionnalités que différents outils peuvent utiliser". Dans ce cas, ce sont des fonctions pour travailler avec une ligne de commande (y compris le défilement arrière, l'édition de ligne, etc.). Bash l'utilise pour l'invite du shell. Sur mon système juste en face de moi, il est également utilisé pour bc(calculateur de ligne de commande), xfsprogs(programmes d'administration du système de fichiers), sqlite(un très petit système de base de données), lftp(un client ftp en ligne de commande), et plus encore.
mattdm
1
Pas de problème @ Counter10000! Je suis ravi de vous aider. @mattdm a très bien répondu à votre question. Pour en savoir plus sur la façon dont ces programmes utilisent GNU Readline, une bonne rédaction est disponible ici .
aliceinpalth
1
il semble que le dernier paragraphe de votre réponse soit au moins inexact. Je suppose qu'il existe certaines options, qui ne peuvent être définies que dans le fichier inputrc, de sorte que les deux fichiers ne sont pas complètement "interchangeables". J'ai essayé de définir les options de cette réponse dans .bashrcet rien ne se passait. Ils n'ont d'effet que définis.inputrc
user907860