Dove sono i file di avvio del profilo di bash?

8

So che puoi avere un file .profile o .bashrc nella tua cartella Inizio per personalizzare l'avvio di bash di Mac OS X 10.6.4 Terminal.

Ogni volta che avvio Terminal, c'è una riga che mi dice "Hai la posta". Sto cercando di trovare dove è indicata questa riga nei miei file di avvio, ma non riesco a trovare .bash né .profile.bashrc nella mia cartella home.

Ho letto anche che il file delle impostazioni globali è in /etc/profile e /etc/bashrc , ma non sembrano dirmi nulla:

/ 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

BTW, non c'è /etc/bash

Qualche idea? Grazie!

    
posta hpy 13.09.2010 - 03:04
fonte

3 risposte

10

Probabilmente questo non risponde alla domanda posta ma qui ci sono altre informazioni sui file di avvio.

Stai cercando i file in Finder? Assicurati di cercare da un terminale e di utilizzare ls -A in modo che i file nascosti (file che iniziano con ' . ') siano visualizzati.

Quanto segue è tratto dalla Guida di riferimento Bash. Descrive i file di avvio che vengono eseguiti quando si avvia una nuova finestra di terminale in OS X (che è una shell di login interattiva).

6.2 File di avvio di Bash

Questa sezione descrive come Bash esegue i suoi file di avvio. Se uno dei file esiste ma non può essere letto, Bash segnala un errore. Le tilde sono espanse nei nomi dei file come descritto sopra in Tilde Expansion (vedi Sezione 3.5.2 [Tilde Expansion], pagina 19).

Le shell interattive sono descritte nella Sezione 6.3 [Interactive Shells], pagina 75.

Invocato come shell di login interattiva o con '--login'

Quando Bash viene invocato come shell di login interattiva o come shell non interattiva con l'opzione --login , prima legge e esegue i comandi dal file /etc/profile , se tale file esiste. Dopo aver letto quel file, cerca ~/.bash_profile , ~/.bash_login e ~/.profile , in quell'ordine, e legge ed esegue i comandi dal primo esistente ed è leggibile. L'opzione --noprofile può essere usata quando la shell viene avviata per inibire questo comportamento.

Quando una shell di login termina, Bash legge ed esegue i comandi dal file '~ / .bash_logout', se esiste.

    
risposta data 13.09.2010 - 07:46
fonte
4

Quella riga in particolare ( You have mail ) non è in realtà parte dell'avvio di bash ma è un avviso che il tuo account locale sul tuo computer ha ricevuto posta per qualche motivo.

Puoi usare mail per leggere ed eliminare il messaggio o semplicemente eliminare il messaggio (molto probabilmente un rimbalzo o qualcosa dallo sviluppo) da /var/mail/username

    
risposta data 13.09.2010 - 07:46
fonte
4

Questa notifica è configurata dalla variabile di ambiente MAILCHECK . Visualizza man bash e cerca MAILCHECK (premi / e digita MAILCHECK per cercare nella pagina man).

Ecco l'estratto pertinente:

 MAILCHECK
              Specifies how often (in seconds)  bash  checks  for  mail.   The
              default  is  60 seconds.  When it is time to check for mail, the
              shell does so before displaying the  primary  prompt.   If  this
              variable  is  unset,  or  set  to  a  value that is not a number
              greater than or equal to zero, the shell disables mail checking.

Per verificare che questa variabile sia effettivamente impostata, esegui echo $MAILCHECK

Per disabilitare questa notifica, aggiungi la seguente riga al tuo ~/.bashrc

unset MAILCHECK
    
risposta data 15.02.2011 - 14:29
fonte

Leggi altre domande sui tag