Quindi, non ho .bash_profile
né .profile
nella mia cartella home. Come li creo? Dopodiché, cosa devo fare affinché ogni volta che apro il terminale questi file vengano letti?
Puoi utilizzare il comando touch
.
Ad esempio,
cd ~
per andare alla directory home.
Ora creeremo un file chiamato .bash_profile
(il punto significa che sarà nascosto).
Quindi usa nano
o vi
nel Terminale. A meno che tu non sappia cos'è vi
, usa nano
. Per aprire questi file, useresti:
sudo nano .bash_profile
sudo
assicura che sarai in grado di salvare questi file. Qui puoi aggiungere aliases
. nano
o vi
creerà automaticamente un nuovo file se non esiste nella tua directory corrente in Terminale.
Dopo aver finito, premi Ctrl + O , Invio e Ctrl + X per salvare e uscire. Infine, usa
source ~/.bash_profile
per ricaricare il terminale e leggerà ciò che hai inserito in quei file.
Naturalmente puoi anche fare lo pseudonimo, se vuoi. :)
Per rispondere alla tua domanda finale, questi file verranno letti automaticamente ogni volta che si apre il terminale. Tuttavia, se c'è un errore (ad esempio, non inserire spazi tra gli alias), lo dirà.
Come ha sottolineato George, .bash_profile
verrà eseguito solo su shell di login. Per le shell non di accesso, è necessario creare un file .bashrc
con:
sudo nano .bashrc
Preferisco usare editor di testo GUI come BBEdit o TextWrangler. Questi editor di testo possono gestire file invisibili come .profile e .bash_profile e hanno il vantaggio di avere un'interfaccia GUI, a differenza di nano, che è un'interfaccia console.
Puoi anche usare un editor di testo della GUI come TextEdit:
touch ~/.bash_profile
open -e ~/.bash_profile
open -e
è una scorciatoia per open -a TextEdit
.
Non è necessario creare .profile o .bashrc. Terminal e iTerm 2 aprono nuove shell come shell di login, quindi bash non legge .bashrc. Se sia .bash_profile che .profile esistono, bash legge solo .bash_profile quando viene invocato come shell di login interattiva. .profile viene letto da ksh quando viene invocato come una shell di login interattiva e da bash quando viene invocato come sh come una shell di login interattiva.
In realtà ho detto a iTerm 2 di aprire nuove shell come shell non di login, e il mio .bash_profile contiene solo una riga come . ~/.bashrc
. tmux e la modalità shell in emacs aprono nuove shell come shell non di accesso per impostazione predefinita. .bash_profile viene comunque letto quando eseguo l'ssh sul mio computer.