Qual é a diferença entre .bashrc e .inputrc

13

Eu sou novo no sistema unix e acho interessante criar funções e configurações personalizadas nos arquivos de configuração como .bashrce .inputrc.

No entanto, eu não entendo as diferenças entre os dois. Por exemplo, quando eu criei o alias, eu os coloquei .bashrc.

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

Quando eu criar operações como o uso de chave de seta para olhar para o comando anterior ou seguinte, eu coloquei o comando .inputrc.

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

Por que preciso colocá-los em diferentes arquivos de configuração? Como faço para distinguir quando colocar o que onde?

Agradeço antecipadamente!

Counter10000
fonte

Respostas:

17

As configurações que estão no .inputrcarquivo afetam todos os programas que usam a biblioteca de linha de leitura GNU , não apenas bash. Pense no .inputrcarquivo como sendo um arquivo de configuração para o GNU Readline semelhante a como .bashrcé um arquivo de configuração bash.

O GNU Readline é descrito como:

... Um conjunto de funções para uso por aplicativos que permitem aos usuários editar linhas de comando conforme são digitadas.

Para esclarecer um pouco mais, as configurações que estão no .bashrcarquivo afetam apenasbash . Se você gostaria de optar por executar bashsem apoio GNU Readline ou uso, você pode invocar bashcom a --noeditingopção da seguinte forma: bash --noediting. Você pode descobrir mais sobre as bashopções aqui .

Para responder sua última pergunta de

Como faço para distinguir quando colocar o que onde?

Se você deseja uma opção para afetar todos os programas em seu sistema que usam a biblioteca GNU Readline, .inputrcseria a melhor opção. Caso contrário, se você simplesmente deseja configurar sua bashsessão, .bashrcseria a melhor opção.

aliceinpalth
fonte
Obrigado @aliceinpalth. Você quer dizer bash pertence à biblioteca GNU Readline? O que mais há na biblioteca GNU Readline?
usar o seguinte
5
@ Counter10000 Nesse sentido, a biblioteca não é "uma coleção de ferramentas" (posso ver por que você acha isso), mas "um monte de funcionalidades que diferentes ferramentas podem usar". Nesse caso, são funções para trabalhar com uma linha de comando (incluindo rolagem, edição de linha etc.). O Bash usa isso para o prompt do shell. No meu sistema, bem na minha frente, ele também é usado para bc(calculadora de linha de comando), xfsprogs(programas de administração do sistema de arquivos), sqlite(um sistema de banco de dados muito pequeno), lftp(um cliente ftp da linha de comando) e muito mais.
mattdm
1
Não tem problema @ Counter10000! Fico feliz em ajudar. @mattdm respondeu muito bem à sua pergunta. Para saber mais sobre como esses programas utilizam o GNU Readline, há uma boa descrição disponível aqui .
Aliceinpalth
1
parece que o último parágrafo da sua resposta é pelo menos impreciso. Suponho que existem algumas opções, que podem ser definidas apenas no arquivo inputrc, portanto os dois arquivos não são completamente "intercambiáveis". Tentei definir as opções a partir desta resposta no .bashrce nada aconteceu. Eles só têm efeito sendo definido em #.inputrc
user907860 5/1118