Co to jest plik .bashrc i do czego służy?

21

Nie mogę znaleźć żadnych jasnych informacji o tym, czym .bashrcjest plik i co robi dokładnie.


Dziękuję za pomoc udzieloną do tej pory. Wydaje się, że ten skrypt robi wszystko, od kolorowania, uzupełniania, aliasów i historii powłok itp. Czy jest coś, co nie wydaje się przydatne?

Justin
źródło
4
.bashrcjest jednym z wielu plików konfiguracyjnych bash. Zobacz oficjalną dokumentację dotyczącą plików startowych Bash .
mur

Odpowiedzi:

21

.bashrcPlik jest skrypt, który jest wykonywany gdy nowy terminal jest sesja rozpoczęła się w trybie interaktywnym . Dzieje się tak, gdy otwierasz nowe okno terminala, naciskając Ctrl+ Alt+ Tlub po prostu otwierając nową kartę terminala.

Natomiast sesja terminalowa w trybie logowania poprosi o podanie nazwy użytkownika i hasła oraz wykonanie ~/.bash_profileskryptu. Tak dzieje się na przykład podczas logowania do systemu zdalnego za pośrednictwem SSH.

Sam .bashrcplik zawiera szereg konfiguracji sesji terminalowej. Obejmuje to konfigurowanie lub włączanie: kolorowanie, uzupełnianie, historię powłoki, aliasy poleceń i więcej. .bashrcPlik rozprowadzany z Ubuntu jest dobrze skomentowany i będzie w stanie zrozumieć większość tego, co robi po prostu czytać.

Możesz dostosować .bashrcdo swoich upodobań. Tutaj możesz uzyskać przykład z wieloma dodatkowymi funkcjami.

Luís de Sousa
źródło
Link jest zepsuty.
rab
1
Link działa.
Luís de Sousa
Na tej stronie plik do pobrania nie działa.
rab
1
Zarówno link, jak i pobieranie działają dobrze
M. Becerra
5

Pytanie o superużytkownika - Co to jest plik .bashrc? autor: @pineapple, na który odpowiedział @DigitalRoss

Właściwie to właśnie bashczyta .bashrc(i /etc/bash.bashrc). Istnieje wiele różnych powłok.

Strona podręcznika bash (autorstwa Briana Foxa i Cheta Rameya; strona informacyjna „Pliki startowe Bash” ) to autorytatywne odniesienie:

Po uruchomieniu interaktywnej powłoki, która nie jest powłoką logowania, bash czyta i wykonuje polecenia z ~/.bashrc, jeśli plik istnieje. Można temu zapobiec, używając tej --norcopcji. Opcja --rcfilepliku zmusi bash do odczytu i wykonywania poleceń z pliku zamiast ~/.bashrc.

Gdy bash jest uruchamiany nieinteraktywnie, na przykład w celu uruchomienia skryptu powłoki szuka zmiennej BASH_ENVw środowisku, rozszerza jej wartość, jeśli się tam pojawia, i wykorzystuje rozszerzoną wartość jako nazwę pliku do odczytu i wykonania. Bash zachowuje się tak, jakby wykonano następujące polecenie:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

ale wartość PATHzmiennej nie jest używana do wyszukiwania nazwy pliku.

Plik to tylko polecenia powłoki. Zwykle służy do zmiany podpowiedzi, ustawiania zmiennych środowiskowych i definiowania procedur powłoki. Plik ten .profilejest tradycyjnie wykorzystywany do tego celu, ale bashma tak wiele rozszerzeń, że potrzebuje własnego pliku startowego dla użytkowników, którzy chcą umieścić bashisms w plikach startowych.

Brak powłoki logowania ” oznacza takie rzeczy, jak uruchamianie skryptów i zwykle okna terminali uruchamiane przez menedżerów okien. Czasami konfiguruję systemy * nix, aby mieć .bashrci BASH_ENVpo prostu źródło .profile. Dopóki nie zbłądzisz poza poleceniami powłoki POSIX, będziesz mieć taką samą inicjalizację w dowolnej powłoce.

Jest to szczególnie cenne, kiedy shjest naprawdę bash, co czasem się zdarza. Aby to zrobić, użyj:

. .profile

Jednym z powodów, dla których wszystko jest tak złożone, jest to, że czasami ludzie umieszczają rzeczy, które produkują dane wyjściowe w plikach startowych powłoki lub bezwarunkowo ustawiają monity. Powoduje to wiele problemów podczas uruchamiania programów powłoki i poleceń backtick w językach, nie wspominając o system(3)programach C. bashMyślę, że sposób uruchamiania ma jeden plik, w którym ustawienie danych wyjściowych i monitów jest OK, i jeden plik, w którym nie ma. Tradycyjnie przeprowadzany byłby test czasu wykonywania w celu rozróżnienia interaktywności, na przykład sprawdzanie, czy ustawiony jest monit.

αғsнιη
źródło