Qual è la differenza tra .profile e .bash_profile e quando configuri quale? (Mac) [duplicato]


23

Possibile duplicato:
differenza tra .bashrc e .bash_profile

Qual è la differenza tra .profilee .bash_profilee quando si configura quale?

Vale a dire se configuro il .bash_profile, devo ancora configurare .profile?

Risposte:


12

Supponendo che bashsia la shell predefinita, le differenze sono descritte nella bashpagina man ( man bash):

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

Ci sono maggiori dettagli nella pagina man che copre la modalità di compatibilità con shell POSIX, da dove .profileproviene. Leggi l'intera sezione della pagina man per tutti i dettagli.


in Ubuntu 18.04 l'apertura di una nuova finestra Terminale non chiama .profilesolo .bashrc:(
CpILL

5

Se configuri .bash_profile, non dovrai anche configurare .profile.

Mi piace mantenere i miei alias e i miei comandi in .profilemodo che se sbaglio qualcosa, so che posso sempre eliminare .profilesenza influenzare il sistema in generale o altre applicazioni che modificano .bash_profile(come MacPorts).

Per usare a .profile, potresti aver bisogno di includere la riga source ~/.profiletra le tue in .bash_profilemodo che il .profilefile venga letto (vedi la risposta di Ned Deily).


3

.profile viene eseguito da bash quando si ottiene un normale processo di shell, ad esempio quando si apre uno strumento terminale. .bash_profile viene eseguito da bash per le shell di login, quindi ad esempio quando si telnet / ssh nella propria macchina in remoto. Ad esempio, se si esegue l'accesso remoto a una macchina (diciamo che si apre un terminale X), inizialmente verrà eseguito .bash_profile. Se in quel XTerminal si digita "xterm" e si genera un altro X Terminal, allora .profile verrà eseguito per la seconda istanza di XTerminal. I file risiedono nella tua home directory (~). Se non sbaglio per impostazione predefinita, entrambi eseguono ~ / .bashrc in modo da poterlo modificare per configurare impostazioni / variabili comuni sia per le shell di login che per quelle non di login (es. Impostazione PATH, alcuni alias / scorciatoie ecc.).


in Ubuntu 18.04 l'apertura di una nuova finestra Terminale non chiama .profile?
CpILL

1

per la configurazione semplice e veloce (dove non vuoi cose complicate) configura semplicemente tutto nel tuo ~ / .profile. Solo quando ti imbatti in qualche problema (ma probabilmente non lo saprai mai) scopri di più sul .bash_login o .bash_profile;)

Sono anche su OS X e non ho mai avuto bisogno di .bash_profile o .bash_login e utilizzo solo .profile, ma il tuo chilometraggio può variare ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.