Wo sind Startdateien für Bash-Profile?

8

Ich weiß, dass Sie eine .profileoder .bashrc-Datei in Ihrem Home-Ordner haben können, um den Start von Mac OS X 10.6.4 Terminal Bash anzupassen.

Jedes Mal, wenn ich Terminal starte, gibt es eine Zeile mit der Aufschrift "Sie haben E-Mails". Ich versuche herauszufinden, wo diese Zeile in meinen Startdateien angegeben ist, kann aber weder .bash .profilenoch .bashrcin meinem Home-Ordner finden.

Ich habe auch gelesen, dass sich die globale Einstellungsdatei in /etc/profileund befindet /etc/bashrc, aber sie scheinen mir nichts zu sagen:

/ etc / profile

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi

/ etc / bashrc

# 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

Übrigens gibt es keine /etc/bash

Irgendwelche Ideen? Vielen Dank!

hpy
quelle

Antworten:

11

Dies beantwortet wahrscheinlich nicht die E-Mail-Frage, aber hier finden Sie weitere Informationen zu den Startdateien.

Suchen Sie nach den Dateien im Finder? Stellen Sie sicher, dass Sie von einem Terminal aus suchen und verwenden, ls -Adamit versteckte Dateien (Dateien, die mit einem ' .' beginnen) angezeigt werden.

Das Folgende stammt aus dem Bash-Referenzhandbuch. Es beschreibt die Startdateien, die ausgeführt werden, wenn Sie ein neues Terminalfenster in OS X (einer interaktiven Anmeldeshell) starten.

6.2 Bash-Startdateien

In diesem Abschnitt wird beschrieben, wie Bash seine Startdateien ausführt. Wenn eine der Dateien vorhanden ist, aber nicht gelesen werden kann, meldet Bash einen Fehler. Tildes werden in Dateinamen erweitert, wie oben unter Tilde-Erweiterung beschrieben (siehe Abschnitt 3.5.2 [Tilde-Erweiterung], Seite 19).

Interaktive Shells werden in Abschnitt 6.3 [Interaktive Shells], Seite 75 beschrieben.

Wird als interaktive Login-Shell oder mit '--login' aufgerufen.

Wenn Bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der --loginOption aufgerufen wird , werden zuerst Befehle aus der Datei gelesen und ausgeführt /etc/profile, sofern diese Datei vorhanden ist. Nachdem die Datei zu lesen, sucht er nach ~/.bash_profile, ~/.bash_loginund ~/.profilein dieser Reihenfolge, und liest und die Befehle ausführt , von der ersten , die lesbar existiert und ist. Die --noprofileOption kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu verhindern.

Wenn eine Anmeldeshell beendet wird, liest Bash Befehle aus der Datei '~ / .bash_logout' und führt sie aus, falls vorhanden.

Robert S. Ciaccio
quelle
4

Diese bestimmte Zeile ( You have mail) ist nicht Teil des Starts von bash, sondern eine Warnung, dass Ihr lokales Konto auf Ihrem Computer aus irgendeinem Grund E-Mails erhalten hat.

Sie können maildie Nachricht lesen und löschen oder einfach die Nachricht (höchstwahrscheinlich ein Bounce-Back oder etwas aus der Entwicklung) von löschen/var/mail/username

Chealion
quelle
4

Diese Benachrichtigung wird durch die Umgebungsvariable konfiguriert MAILCHECK. Siehe man bashund die Suche nach MAILCHECK(drücken Sie /und geben Sie MAILCHECKin der Manpage suchen).

Hier ist der relevante Auszug:

 MAILCHECK
              Gibt an, wie oft (in Sekunden) Bash nach E-Mails sucht. Das
              Standard ist 60 Sekunden. Wenn es Zeit ist, nach E-Mails zu suchen, wird die
              Shell tut dies, bevor die primäre Eingabeaufforderung angezeigt wird. Wenn das so ist
              Variable ist nicht gesetzt oder auf einen Wert gesetzt, der keine Zahl ist
              Größer oder gleich Null deaktiviert die Shell die E-Mail-Prüfung.

Führen Sie aus, um zu überprüfen, ob diese Variable tatsächlich festgelegt ist echo $MAILCHECK

Um diese Benachrichtigung zu deaktivieren, fügen Sie die folgende Zeile zu Ihrer hinzu ~/.bashrc

MAILCHECK deaktivieren
Simonair
quelle