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!