W moim .bashrc
pliku umieściłem niektóre polecenia aliasu , aby mogły być ładowane za każdym razem, gdy otwieram nowe okno terminala. To się jednak nie zdarza.
Muszę wybrać run script:
w Terminalu> Preferencje> „ MyDefaultTheme ”> Wstępny panel powłoki i dodać:
source .bashrc && clear
aby działał ...
Wydaje się to dziwne, ponieważ wiele samouczków mówi tylko, że wystarczy dodać do .bashrc
pliku i wszystko jest w porządku.
Zauważ, że nie uruchamiam się bash
podczas korzystania z terminala, bardziej podoba mi się ten drugi (domyślny) (nie wiem co to jest), ponieważ pokazuje mi, gdzie jestem cały czas, np .:
>>d54c6b47b:~ romeo$
zamiast:
>>bash$
W bash wszystko jest ładowane tak, jak powinno.
Więc moje pytanie brzmi: dlaczego mój .bashrc
plik nie ładował się automatycznie i czy musiałem dodawać opcję wywoływania go za każdym razem?
Również niektóre samouczki kazały mi zrobić coś takiego:
$alias la=’ls -la’ >> ~/.bashrc
który powinien napisać do mnie alias .bashrc
, to też nie działa ...
Pamiętaj, że jestem nowicjuszem w systemie UNIX, więc bądź łagodny.
źródło
.bashrc
”, ale o to chodzi.csh
(lub inny wariant) lepiej. Ale powinieneś wiedzieć, że>>bash$
można to zmienić :).profile
w swoim katalogu domowymOdpowiedzi:
Po prostu włóż to do swojego
.profile
pliku z katalogu domowego i powinien on działać przy następnym uruchomieniu nowej powłoki lub po uruchomieniusource ~/.profile
Ten link wyraźnie określa kolejność, w jakiej pliki startowe są odczytywane i ładowane przez powłokę: http://hayne.net/MacDev/Notes/unixFAQ.html#shellStartup
źródło
~/.bashrc
. Jednak rozwiązaniem nie jest po prostu umieszczenie.bashrc
treści w pliku startowym logowania, ponieważ te dwa pliki są przeznaczone do przeprowadzenia różnych rodzajów instalacji. Zamiast tego kanoniczną konfiguracją dla Bash jest umieszczenie~/.bash_profile
źródła~/.bashrc
w odpowiednim punkcie skryptu (zwykle na końcu).Byłem tam, zrobiłem to. Zrozumiałem, że OS X nie odczytuje
.bashrc
pliku przy starcie basha. Zamiast tego czyta następujące pliki (w następującej kolejności):/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
Zobacz także pouczający i użyteczny komentarz Chrisa Johnsena :
I zazwyczaj wystarczy umieścić rzeczy, które bym normalnie umieszczone w
~/.bashrc
do~/.profile
- pracował tak daleko jak czar.źródło
/usr/bin/login
, co czyni powłokę powłoką logowania. Na każdej platformie (nie tylko Mac OS X) bash nie używać.bashrc
dla powłok zgłoszeniowych (tylko/etc/profile
i pierwsza.bash_profile
,.bash_login
,.profile
że istnieje i jest czytelny). Dlatego „wstawsource ~/.bashrc
w.bash_profile
” to standardowa rada.~/.bash_profile
,~/.profile
,~/.bash_login
, nie wszystkie z nich. Możesz uruchomić prosty test, tworząc 3 pliki. To wygląda jak terminal bash ma preferencje~/.bash_profile
>~/.bash_login
>~/.profile
. Jeśli którykolwiek z nich istnieje, te o mniejszej preferencji są pomijane. Dlatego czasami zaleca się również źródło~/.profile
w~/.bash_profile
.Wkładam wszystko do
~/.bashrc
i tylkosource ~/.bashrc
w .profilu.Dzięki temu sesje screen i xterm (i chyba tmux) dziedziczą moje środowisko, ponieważ uruchamiane są tylko sesje bez logowania
.bashrc
, podczas gdy sesje logowania (np. Terminal lub iTerm) są uruchamiane.profile
.źródło
.profile
jest wspólny dla wielu powłok i powinien zawierać tylko kod sh zgodny z POSIX. Jeśli źródło.bashrc
, prawdopodobnie zawiera kod specyficzny dla Bash (istnienie.bashrc
pliku jest specyficzne dla Bash). Polecam zmienić nazwę.profile
na,.bash_profile
ponieważ używasz go w sposób specyficzny dla Bash. Lub włóż kod ogólny.profile
i stwórz.bash_profile
źródło.profile
i.bashrc
.Istnieją dwa scenariusze:
Zarówno dla źródła, które chcesz pobrać
~/.bashrc
w swoim profilu, który jest ładowany lub pozyskiwany, gdy uruchamia się powłoka dla twojego terminala.LINUX
W systemie Linux
~/.profile
jest automatycznie źródłem w powłoce podczas uruchamiania. Tak więc, jeśli przejdziesz do terminala i napiszeszcd ~; ls -A
, zobaczysz wszystkie swoje pliki i katalogi w katalogu domowym (/home/usrname/
). Powinieneś zobaczyć plik o nazwie.profile
. Jest to plik, który jest automatycznie „pozyskiwany” podczas uruchamiania terminalu.Jeśli chcesz dodać aliasy i funkcje
~/.bashrc
(to jest to, co robię), powinieneś (w środku~/.profile
dodać instrukcję if, która sprawdza, czy~/.bashrc
jest niepusty plik, a następnie go źródła.Aby sprawdzić, czy
~/.profile
już to robi, wpisznano ~/.profile
. Spowoduje to otwarcie go w edytorze tekstu (możesz użyć gedit, jeśli wiesz, że go masz, lub nawet vim, jeśli wiesz, jak go używać). Możesz otrzymać pusty plik tekstowy (nie powinieneś), ale jeśli to zrobisz, po prostu kontynuuj. Jeśli nie widzisz linię gdziekolwiek , który mówisource ~/.bashrc
, a następnie wprowadź poniższe linie gdzieś (umieścić go w odpowiednim miejscu, jak na koniec lub początek i nie w środku if):Sprawdza, czy
~/.bashrc
jest niepustym plikiem (z if[ -s ~/.bashrc ]
), a jeśli tak, to go pozyskuje. Dość proste. Teraz możesz dodać dowolny poprawny alias, funkcję, zmienną itp~/.bashrc
. Do.MAC OS X
Domyślnie, źródła Max OS X
~/.bash_profile
. Aby móc dodawać~/.bashrc
różne rzeczy (co znowu robię w OS X), postępuj zgodnie z tą samą procedurą co Linux. W terminalu wpiszcd ~; nano .bash_profile
. Sprawdź wiersz, który mówi,source ~/.bashrc
a jeśli go nie ma, dodaj instrukcję if powyżej (if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).UWAGI
Pisząc instrukcję if, pamiętaj, aby pozostawić spacje między zasadniczo wszystkim (na przykład
if [ -s ~/.bashrc]; then echo "found"; fi
nie działa, ponieważ nie ma spacji między~/.bashrc
i]
- tłumacz będzie myślał, że to jedno słowo).Jeśli chcesz dowiedzieć się, jak sprawdzić rzeczy w instrukcji if, przejdź do terminalu i wpisz
man \[
; daje to w zasadzie wyczerpanie instrukcji if. Na przykładif [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
sprawdza, czy/path/to/file
jest to plik i czy jest odpowiednio drukowany na standardowe wyjście. Odnoszę się do tego również w celu łatwiejszego spojrzenia i szybkiego zapoznania się: 7.2. Operatorzy testowania plików .Mam nadzieję, że to pomoże. Pamiętam, jak byłem zdezorientowany, kiedy zacząłem wszystkie te rzeczy (co nie było tak dawno temu); powodzenia w przyszłych przedsięwzięciach UNIX!
źródło
.profile
systemie Linux jest pozyskiwany tylko wtedy, gdy twoja powłoka jest powłoką logowania, w przeciwnym razie.bashrc
jest pozyskiwanaSourcing .profile w .bash_profile zrobił to dla mnie
źródło
.bashrc
pochodziło z twojego,.bash_profile
a nie z.profile
..bash_profile
jest specyficzny dla Bash i powinien pozyskać pozostałe dwa.Odkryłem, że po zainstalowaniu rvm (autoinstalator, bez ręcznej edycji) stworzył on
~/.bash_login
plik dla siebie, w którym wcześniej go nie miałem.Oznacza to jednak, że moje
~/.profile
ustawienia i aliasy nie są już ładowane! Wiele skrótów zniknęło. Myślałem, że biegną sekwencyjnie, a nie wyłącznie: - /dodałem
do
~/.bash_login
łączenia rzeczy zgodnie z oczekiwaniami.źródło
.profile
jest wspólny dla kilku różnych powłok i powinien zawierać tylko kod sh zgodny z POSIX..bash_profile
jest specyficzny dla Bash i może zawierać kod specyficzny dla Bash. Ogólnie rzecz biorąc, jeśli używasz Bash, powinieneś,.bash_profile
chyba że jesteś ostrożny, aby upewnić się, że twój kod startowy nie zawiera niczego, co zależy od Bash. Jakikolwiek utworzony program.bash_login
prawdopodobnie tak zrobił, ponieważ zawiera kod specyficzny dla Bash, ale powinien był dołączyć kod źródłowy,.profile
jeśli istnieje.Umieszczam ...
... w
~/.bashrc
, a następnie źródło~/.bashrc
do mojego~/.bash_profile
nie działało dla zainstalowanego programu Terminal.Ale potem poszedłem do menu rozwijanego Edycja> Preferencje profilu , zakładka Tytuł i polecenie i wybrałem Uruchom polecenie jako powłokę logowania z sekcji poleceń tej strony.
Po wykonaniu tej czynności uruchomienie nowego terminalu wyświetla pożądany wynik podczas pisania
tzn. „rvm jest funkcją”. Nie zrobił tego aż zrobiłem tę zmianę, a to jedyna zmiana zrobiłem po
.bash_profile
i.bashrc
zmian opisanych w innych odpowiedzi tutaj.źródło
Przede wszystkim powiem ci, że
~/.bashrc
jest to plik wykonywany za każdym razem, gdy wywoływana jest druga powłoka (na przykład podczas uruchamiania skryptu powłoki) i~/.profile
jest wywoływany przy każdym logowaniu.Dlatego polecam napisać
. ~/.bashrc
polecenie w swoim~/.profile
pliku, a to polecenie uruchomi plik bashrc przy każdym logowaniu.źródło
Ten sam problem napotkałem po zainstalowaniu rbenv na moim zdalnym serwerze (Digital Ocean) Ubuntu 16.04.
Jakoś to stworzyło
~/.bash_profile
. Tak samo~/.bashrc
jest w systemie OS X.Ubuntu zaczął tylko czytać
~/.bash_profile
, ale nie~/.bashrc
tak, jak powinien.Właśnie utworzyłem kopię zapasową danych
~/.bash_profile
:I przemianowano stary
~/.bashrc
na~/.bash_profile
To zadziałało dla mnie. Po zalogowaniu ssh mam wszystko załadowane
~/.bashrc
.źródło
Jeśli to może pomóc komukolwiek innemu ...
Upewnij się, że edytujesz odpowiedni
.bashrc
plik dla odpowiedniego użytkownika. Miałem podobny problem z używaniem Vagrant. Po uruchomieniuvagrant ssh
mój.bashrc
plik nie był uruchomiony. Rozwiązanie było proste, ponieważ myślałem, że włóczęga loguje się z użytkownikiem o imieniu włóczęga i faktycznie loguję się jako inny użytkownik. Więc edytowałem niewłaściwy.bashrc
plik. Po edycji poprawnego.bashrc
pliku moje aliasy zostały rozpoznane.źródło
Nawiasem mówiąc, jeśli aktywowałeś ZSH, to zastępuje bash!
Więc wszystkie te
~/.bashrc
pliki nie są ładowane.Zamiast tego musisz ustawić swoje aliasy
~/.zshrc
.źródło
Aby pozostać przy logowaniu w stylu OSX
.profile
i wspierać normalne zachowanie bash.bashrc
, możesz użyć.bashrc
pliku, jeśli przełączysz się między zwykłym nix a OSX, podając symboliczny link do.bashrc
pliku o nazwie.bash_profile
. Przed wypróbowaniem tego upewnij się, że ten plik już nie istnieje, ale właśnie tak to robię.źródło
.bash_profile
) i inicjalizacji innej na każdym poziomie powłoki (.bashrc
)./ etc / bashrc jest przeznaczony do profili globalnych w systemach Mac. Możesz dodać: alias ls = "ls -G" na początku tego pliku, a twoje dobro, każdy będzie miał pokolorowane pliki i foldery w systemie, więc nie będziesz musiał niczego dodawać dla każdego użytkownika. Zauważysz również wraz z „sudo su -”, aby zrootować z siebie nadal będziesz mieć pokolorowane pliki i foldery bez dodatkowych problemów.
Kolejna fajna wskazówka: w przypadku korzystania z Iterm2 Maca, importowanie profili kolorów spowoduje natychmiastowe renderowanie kolorowania plików i folderów zgodnie ze schematem kolorów po ustawieniu tej opcji „/ etc / bashrc”.
źródło