Qual è la differenza tra .bashrc e .inputrc


14

Sono nuovo nel sistema unix e trovo interessante creare funzioni e configurazioni personalizzate nei file di impostazione come .bashrce .inputrc.

Tuttavia, non capisco le differenze tra i due. Ad esempio, quando ho creato un alias, li inserisco .bashrc.

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

Quando creo operazioni come l'uso del tasto freccia per cercare il comando precedente o successivo, inserisco il comando .inputrc.

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

Perché ho bisogno di metterli in diversi file di impostazione? Come faccio a distinguere quando mettere cosa dove?

Grazie in anticipo!

Risposte:


18

Le impostazioni presenti nel .inputrcfile influiscono su tutti i programmi che utilizzano la libreria readline GNU , non solo bash. Pensa al .inputrcfile come a un file di configurazione per GNU Readline simile a come .bashrcè un file di configurazione bash.

GNU Readline è descritto come:

... Un insieme di funzioni che le applicazioni possono utilizzare per consentire agli utenti di modificare le righe di comando durante la digitazione.

Per chiarire un po 'di più, influiscono solo le impostazioni presenti nel .bashrcfile . Se si desidera eseguire a scelta , senza sostegno o di utilizzo di GNU Readline, è possibile richiamare con l' opzione come segue: . Puoi scoprire di più sulle opzioni qui .bashbashbash--noeditingbash --noeditingbash

Per rispondere alla tua ultima domanda di

Come faccio a distinguere quando mettere cosa dove?

Se desideri che un'opzione influisca su tutti i programmi sul tuo sistema che usano la libreria GNU Readline, .inputrcsarebbe la scelta migliore. Altrimenti, se vuoi semplicemente configurare la tua bashsessione, .bashrcsarebbe la scelta migliore.


Grazie @aliceinpalth. Vuoi dire che bash appartiene alla libreria GNU Readline? Cos'altro c'è nella libreria GNU Readline?
Counter10000,

5
@ Counter10000 In questo senso, la libreria non è "una raccolta di strumenti" (posso vedere perché potresti pensarlo) ma "un grumo di funzionalità che possono usare diversi strumenti". In questo caso, è funzioni per lavorare con una riga di comando (incluso scrollback, modifica della linea e così via). Bash lo usa per il prompt della shell. Sul mio sistema proprio di fronte a me, è anche usato per bc(calcolatrice da riga di comando), xfsprogs(programmi di amministrazione del filesystem), sqlite(un sistema di database molto piccolo), lftp(un client ftp da riga di comando) e altro.
Mattdm,

1
Nessun problema @ Counter10000! Sono felice di aiutare. @mattdm ha risposto molto bene alla tua domanda. Per saperne di più su come questi programmi utilizzano GNU Readline, c'è un buon articolo disponibile qui .
aliceinpalth,

1
sembra che l'ultimo paragrafo della tua risposta sia almeno impreciso. Suppongo che ci siano alcune opzioni, che possono essere impostate solo nel file inputrc, quindi i due file non sono completamente "intercambiabili". Ho cercato di impostare le opzioni da questa risposta in .bashrce non è successo niente. Hanno solo effetto impostato.inputrc
user907860
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.