Jakoś mój monit bash został zmieniony na „elementary: ~ steven $” i chcę go zmienić z powrotem na domyślny monit. Dodałem następujące do ~ / .bashrc, a następnie do ~ / .profile:
export PS1="\s-\v\$ "
Ani nie wykonaj, gdy otworzę Terminal. Jeśli uruchomię polecenie source
dla dowolnego pliku, będzie działało dobrze do końca tej sesji.
Czy coś tu przeoczam?
EDYCJA: Oto wyniki z sugestii Iana:
elementary:~ steven$ bash --login --verbose
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
/usr/libexec/path_helper -s
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/AVRMacPack/bin"; export PATH;
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
if [ -e "/usr/local/AVRMacPack" ]; then
PATH="$PATH:/usr/local/AVRMacPack/bin"
export PATH
fi
# Setting PATH for Python 3.2
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
export PATH
elementary:~ steven$ which bash
which bash
/bin/bash
Odpowiedzi:
.bashrc
jest wykonywany tylko dla nieinteraktywnych powłok zgodnie ze stroną podręcznika bash..bash_profile
jest wykonywany dla powłok logowania..profile
Plik jest ładowany przez powłoki Korn. Nie wiem, czy bash w ogóle nie zwraca na to uwagi. Nie mogłem znaleźć żadnego odniesienia do tego na stronie podręcznika użytkownika bash.W systemie OS X program Terminal.app uruchamia powłokę logowania dla każdego nowego otwieranego okna Terminal.app.
Więc chcesz wprowadzić szybką konfigurację
.bash_profile
.Zawsze możesz wykonać następujące czynności
.bash_profile
. Nie jest to rzadkie, ale nie mogę powiedzieć, jakie mogą mieć następstwa:Wtedy nie będziesz musiał utrzymywać dwóch plików.
źródło
--noprofile
lub--norc
. Spróbuj wykonać to po szybkim uruchomieniu:bash --login --verbose
- czy drukuje coś użytecznego na temat tego, co działa? Ponadto:which bash
- sprawdź, czybash
nie został skasowany.~/.bash_profile
i~/.bashrc
:echo "Start of file $0"
. I na końcu każdego pliku:echo "End of file $0"
a potem spróbujbash --login --verbose
- czy widzisz wynik z nich? Czy pliki są pozyskiwane zgodnie z oczekiwaniami?.profile
jest również odczytywany przez bash, ale tylko wtedy,.bash_profile
gdy nie istnieje.Mogę być niepoprawny, ale jeśli bash jest twoją powłoką, musisz umieścić ją w swoim ~ / .bash_profile, a nie w .bashrc.
źródło
Jeśli z jakiegoś powodu pomieszałeś z kontrolą bash i chcesz załadować swój TERMINAL .profile w każdej sesji ponownie, po prostu napisz ~ / .bash_profile w następujący sposób:
... i rozpocznij nową sesję, aby sprawdzić, czy wszystko wróciło OK
źródło