Ci sono due scenari:
- Stai utilizzando Linux
- Stai utilizzando Mac Os X
Per entrambi, vuoi che venga importato ~/.bashrc
nel tuo profilo che viene caricato, o di provenienza, quando inizia la shell per il tuo terminale.
Linux
In Linux, ~/.profile
è automaticamente sorgente nella shell quando viene avviata. Quindi, se vai al tuo terminale e digita 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 "acquisito" 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 controlli se ~/.bashrc
è un file non vuoto e poi fonte.
Per verificare se il tuo ~/.profile
lo fa già, inserisci nano ~/.profile
. Questo lo aprirà in un editor di testo (puoi usare gedit se sai di averlo o addirittura se sai come usarlo). Si può ottenere un file di testo vuoto (non si dovrebbe), ma se si procede semplicemente. Se non vedi una linea ovunque che dice source ~/.bashrc
, quindi 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
Controlla se ~/.bashrc
è un file non vuoto (con if [ -s ~/.bashrc ]
), e se è tale, lo invia. Abbastanza semplice. Ora puoi aggiungere qualsiasi alias, funzione, variabile, ecc. Validi a ~/.bashrc
.
MAC OS X
Per impostazione predefinita, sorgenti Max OS X ~/.bash_profile
. Per poter aggiungere cose a ~/.bashrc
(che è, ancora, quello che faccio in OS X, pure), allora segui la stessa procedura di Linux. Nel terminale inserisci cd ~; nano .bash_profile
. Controlla la riga che dice source ~/.bashrc
e, in caso contrario, aggiungi l'istruzione if precedente ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).
NOTE
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 ~/.bashrc
e ]
- l'interprete penserà che questa sia una parola).
Se vuoi capire come controllare le cose in una dichiarazione if migliore, vai al terminale e inserisci man \[
; questo essenzialmente ti dà la decadenza 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 è stampato su stdout di conseguenza. Faccio sempre riferimento anche a questo per un riferimento più facile e immediato: 7.2. Operatori di test dei file .
Spero che questo aiuti. Ricordo quanto fossi confuso quando ho iniziato tutta questa roba (che non era molto tempo fa); quindi, buona fortuna per i tuoi futuri sforzi UNIX!