Esistono due scenari:
- Stai usando Linux
- Stai utilizzando Mac Os X.
Per entrambi si desidera eseguire il source ~/.bashrc
o il sourcing nel profilo che viene caricato all'avvio della shell per il terminale.
LINUX
In Linux, ~/.profile
è automaticamente sorgente nella tua shell all'avvio. Quindi, se vai al tuo terminale e digiti cd ~; ls -A
, vedrai tutti i tuoi file e directory nella tua home directory ( /home/usrname/
). Dovresti vedere un file chiamato .profile
. Questo è il file che viene automaticamente "originato" all'avvio del terminale.
Se vuoi aggiungere alias e funzioni a ~/.bashrc
(che è quello che faccio), allora dovresti (all'interno di ~/.profile
aggiungere un'istruzione if che controlla se ~/.bashrc
è un file non vuoto e quindi sorgente.
Per verificare se lo fai ~/.profile
già, inserisci nano ~/.profile
. Questo lo aprirà in un editor di testo (puoi usare gedit se sai di averlo o anche vim se sai come usarlo). Potresti ottenere un file di testo vuoto (non dovresti), ma se lo fai semplicemente procedi. Se non vedi una riga da nessuna parte che dice source ~/.bashrc
, inserisci le seguenti righe da qualche parte (mettila in un posto ragionevole come alla fine o all'inizio e non nel mezzo di un'istruzione if):
if [ -s ~/.bashrc ]; then
source ~/.bashrc;
fi
Questo controlla se ~/.bashrc
è un file non vuoto (con if [ -s ~/.bashrc ]
) e se è tale, lo genera. Abbastanza semplice. Ora puoi aggiungere qualsiasi alias, funzione, variabile, ecc ~/.bashrc
. Validi a .
MAC OS X
Per impostazione predefinita, le fonti Max OS X ~/.bash_profile
. Per poter aggiungere cose ~/.bashrc
(che è, di nuovo, ciò che faccio anche in OS X), segui la stessa procedura di Linux. Nel terminale entra cd ~; nano .bash_profile
. Cerca una riga che dice source ~/.bashrc
e se non è presente aggiungi l'istruzione if sopra ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).
APPUNTI
Quando scrivi un'istruzione if, assicurati di lasciare spazi tra praticamente tutto (ad esempio if [ -s ~/.bashrc]; then echo "found"; fi
non funziona perché non c'è spazio tra gli spazi ~/.bashrc
e ]
- l'interprete penserà che questa sia una parola).
Se vuoi capire come controllare meglio le cose in un'istruzione if, vai al terminale e inserisci man \[
; questo essenzialmente ti dà il declino di un'istruzione if. Ad esempio, if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
controlla se /path/to/file
è un file e se viene stampato su stdout di conseguenza. Faccio sempre riferimento anche a questo per un riferimento più semplice e rapido: 7.2. Operatori di test dei file .
Spero che questo possa essere d'aiuto. Ricordo quanto ero confuso quando ho iniziato tutta questa roba (che non era molto tempo fa); quindi, buona fortuna con i tuoi futuri sforzi UNIX!