~ / .profile, ~ / .bashrc, e ~ / .bash_profile non in esecuzione sul nuovo terminale Start Up
-
21-12-2019 - |
Domanda
Sto cercando di creare un alias permanente per il mio terminale.Ho messo l'alias nei miei ~ / .profile, ~ / .bashrc, e ~ / .Bash_profile file, precedentemente vuoto.Quando avviando un nuovo terminale, Bash non riconosce l'alias, ma se la fonda nessuno, lo fa.Perché non vengono eseguiti quando apro un terminale?Sono su OSX.
Soluzione
Due cose devono accadere qui quando si utilizza iTerm
per far funzionare il caricamento di DotFiles.
Prima dovresti aggiungere quanto segue al tuo .bash_profile
[[ -s ~/.bashrc ]] && source ~/.bashrc
.
In secondo luogo è necessario assicurarsi che nelle preferenze iTerm
il terminale sia impostato per avviare una shell di login.
Spero che questo aiuti!
Altri suggerimenti
Utilizzando il terminale Mac predefinito, ciò che ha funzionato per me era quello di aggiungere un comando da eseguire all'avvio per originare il mio .bash_profile.
Preferenze> Profilo> Avvio> Aggiungi comando 'Source ~ / .bash_profile'
Mac Terminal Preferences Finestra Screenshot
potrebbe essere considerato un po 'hacky, ma fa il trucco.
A partire da Sierra alta, sia il terminale che iterm vogliono caricare prima ~ / .profile.Quindi ti suggerisco di mettere una riga nel tuo .profile per far funzionare il tuo Mac come altri UNIX:
Source ~ / .bash_profile
Modifica di questo file, non dovrai cercare tra i menu di più app per sovrascrivere il comportamento bizzarro di Apple in ciascuna.
Aggiunta di source ~/.profile
al mio .bash_profile
ha funzionato per me.
Perché i file di inizializzazione dei tuoi shell non vengono caricati?
Come con la maggior parte delle cose, dipende da
Ho recentemente sperimentato lo stesso fenomeno e ha attraversato il seguente esercizio per risolverlo:
Io uso iterm. Iterm esegue un shell di accesso per impostazione predefinita. Verifica nelle preferenze Iterm> Generale> Comando> (*) Shell di accesso Pertanto, so che ~ / .bash_profile verrà sempre chiamato.
Sapendo che, ho messo il seguente nel mio file ~ / .bash_profile:
for file in ~/.{bashrc,bash_exports,bash_aliases,bash_functions}; do
[ -r "$file" ] && source "$file"
done
unset file
.
Avviso che utilizzo file separati per .bashrc, .bash_exports, ecc. Mantiene le cose separate e semplici.
Nota Anche questo / etc / profilo è caricato in primo luogo, ma dal momento che non ho mai utilizzato quel file di init di sistema, sapevo che non era il mio problema. Per i dettagli check out $ man bash
Allora, ho iniziato con il mio file ~ / .bash_profile.
ho scoperto che quando ho installato baldacchino express che è installatore ha sostituito il contenuto del mio ~ / .BASH_PROFILE File con il seguente contenuto:
# Added by Canopy installer on 2017-04-19
# VIRTUAL_ENV_DISABLE_PROMPT can be set to '' to make the bash prompt show that Canopy is active, otherwise 1
alias activate_canopy="source '/Users/lex/dev/python/User/bin/activate'"
# VIRTUAL_ENV_DISABLE_PROMPT=1 source '/Users/lex/dev/python/User/bin/activate'
.
P.S. Il baldacchino è un ottimo IDE Python gratuito, che consiglio vivamente.
Fortunatamente, backup i miei file ~ / .bash * in modo che il ripristino sia stato facile e rapidamente risolto il mio problema.
Il mio consiglio sarebbe quello di comprendere l'ordine delle chiamate ai file di inizializzazione e iniziare con il primo e farai strada attraverso di loro finché non trovi il problema.
Oh, e potresti voler verificare quale shell stai usando (io uso bash):
~ $ echo $SHELL
/usr/local/bin/bash
. Immagino che tu possa usare un altro guscio, come Bash, TCSH, SH, Zsh ecc.
Metti source .bash_profile
nel tuo file "Bashrc" appropriato recupererà il caricamento automatico, I.e.
..login per tcsh, .bash_profile per Bash, .zshrc per zsh