Jaka jest różnica między .bashrc i .inputrc

14

Jestem nowy w systemie uniksowym i ciekawe jest tworzenie niestandardowych funkcji i konfiguracji w plikach ustawień, takich jak .bashrci .inputrc.

Nie rozumiem jednak różnic między nimi. Na przykład, kiedy utworzyłem alias, wstawiam je .bashrc.

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

Kiedy tworzę operacje, takie jak używanie klawiszy strzałek do wyszukiwania poprzedniego lub następnego polecenia, wstawiam polecenie .inputrc.

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

Dlaczego muszę umieścić je w różnych plikach ustawień? Jak rozróżnić, kiedy położyć co?

Z góry dziękuję!

Licznik 10000
źródło

Odpowiedzi:

18

Ustawienia zawarte w .inputrcpliku wpływają nie tylko na wszystkie programy korzystające z biblioteki readline GNUbash . Pomyśl o tym .inputrc, że jest to plik konfiguracyjny dla GNU Readline podobny do .bashrcpliku konfiguracyjnego bash.

GNU Readline jest opisany jako:

... Zestaw funkcji używanych przez aplikacje, które pozwalają użytkownikom edytować wiersze poleceń podczas ich wpisywania.

Aby wyjaśnić nieco bardziej, ustawienia zawarte w .bashrcpliku mają wpływ tylkobash . Jeśli chcesz, aby ewentualnie działać bashbez wsparcia GNU readline lub użytkowania, można wywołać bashz --noeditingopcją następująco: bash --noediting. Możesz dowiedzieć się więcej o bashopcjach tutaj .

Aby odpowiedzieć na twoje ostatnie pytanie

Jak rozróżnić, kiedy położyć co?

Jeśli chcesz wpłynąć na wszystkie programy w twoim systemie, które używają biblioteki GNU Readline, .inputrcbyłby najlepszym wyborem. W przeciwnym razie, jeśli po prostu chcesz skonfigurować bashsesję, .bashrcbyłby najlepszym wyborem.

aliceinpalth
źródło
Dziękuję @aliceinpalth. Czy masz na myśli, że bash należy do biblioteki GNU Readline? Co jeszcze znajduje się w bibliotece GNU Readline?
Counter10000
5
@ Counter10000 W tym sensie biblioteka nie jest „zbiorem narzędzi” (rozumiem, dlaczego tak myślisz), ale „bryłą funkcji, z której mogą korzystać różne narzędzia”. W tym przypadku są to funkcje do pracy z wierszem poleceń (w tym przewijanie, edycja linii itp.). Bash używa tego do polecenia powłoki. W moim systemie bezpośrednio przede mną jest on używany do bc(kalkulatora wiersza poleceń), xfsprogs(programów administratora systemu plików), sqlite(bardzo małego systemu bazy danych), lftp(klienta ftp z wiersza poleceń) i innych.
mattdm
1
Nie ma problemu @ Counter10000! Cieszę się że mogę pomóc. @mattdm bardzo dobrze odpowiedział na twoje pytanie. Aby dowiedzieć się więcej o tym, jak te programy wykorzystują GNU readline, jest to dobry write-up dostępny tutaj .
aliceinpalth
1
wydaje się, że ostatni akapit w twojej odpowiedzi jest co najmniej niedokładny. Sądzę, że istnieją pewne opcje, które można ustawić tylko w pliku inputrc, więc te dwa pliki nie są całkowicie „wymienne”. Próbowałem ustawić opcje z tym odpowiedź na .bashrci nic się nie wydarzyło. Są skuteczne tylko w ustawieniu.inputrc
user907860,