Come creare ~ / .bash_profile e ~ / .profile


25

Quindi, non ho .bash_profilenessuno dei due .profilenella mia cartella home. Come li creo? Dopodiché, cosa devo fare ogni volta che apro il terminale questi file vengono letti?

Risposte:


28

Puoi usare il touchcomando

Per esempio,

cd ~

per andare alla home directory.

Ora creeremo un file chiamato .bash_profile(il punto significa che sarà nascosto).

Quindi utilizzare nanoo vinel Terminale. A meno che tu non sappia cos'è vi, basta usare nano. Per aprire questi file, utilizzare:

sudo nano .bash_profile

sudosi assicura che sarai in grado di salvare questi file. Qui puoi aggiungere aliases. nanoo vicreerà automaticamente un nuovo file se non esiste nella directory corrente in Terminal.

Dopo aver finito, premere Ctrl+ O, Entere Ctrl+ Xper salvare e uscire. Infine, usa

source ~/.bash_profile

per ricaricare il Terminale e leggerà ciò che hai inserito in quei file.

Certo, puoi farlo anche tu se vuoi. :)

Per rispondere alla tua domanda finale, questi file verranno letti automaticamente ogni volta che apri il Terminale. Tuttavia, se si verifica un errore (ad esempio, non inserire spazi tra gli alias), te lo dirà.

Maggiori informazioni

Come ha sottolineato George, .bash_profileverrà eseguito solo su shell di accesso. Per le shell non di accesso, è necessario creare un .bashrcfile con:

    sudo nano .bashrc

link

.bash_profile vs .bashrc

Importanza di .bashrc


5
Perché stai usando touchper creare prima file vuoti? nanolo fa automaticamente comunque.
Nohillside

5
Inoltre, probabilmente non vuoi sia ~ / .profile che ~ / .bash_profile - se bash vede .bash_profile, non si preoccupa di .profile. Infine, verrà eseguito solo per le shell "login"; le shell non login eseguono invece ~ / .bashrc. Vedi le precedenti domande SO qui e qui .
Gordon Davisson,

@GordonDavisson è bello averne ~/.profileuna copia ~/.bash_profile? E se hai entrambi, cosa hai dentro ~/.profileche non puoi fare ~/.bash_profile?
Gio G.

2
@ThiG: non vorrei che uno fosse una copia dell'altro; è probabile che tu aggiunga qualcosa a uno, dimentichi di aggiungerlo all'altro e ti confondi. Vedi i miei consigli su questa domanda SO per ciò che considererei la migliore pratica.
Gordon Davisson,

sudosi assicura che incasini i diritti dell'utente. Non farlo.
Max Ried

2

Puoi copiare quei file da / etc / skel / che sono file scheletro per i nuovi utenti creati da comandi come useradd su distribuzioni basate su Debian:

cp -nr /etc/skel/. ~/

Questi file verranno caricati automaticamente dalla shell ogni volta che accedi. Il modo di caricare i file di profilo è descritto nella pagina del manuale della shell. Nel caso in cui usi la shell bash in modo speciale (es. Via ssh, ansible, ecc ...) dovresti usare il comando 'bash -ilc "che vuoi eseguire in ENV preparato da quei file di profilo"'. -i significa shell interattiva ciò che è spesso richiesto da .bashrc -l shell di login che causa il caricamento di .profile (o esiste .bash_profile - vedere la pagina di manuale di bash) che quindi carica .bashrc


0

Preferisco usare gli editor di testo della 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.

TextWrangler

BBEdit


0

Puoi anche utilizzare un editor di testo della GUI come TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -eè una scorciatoia per open -a TextEdit.

Non devi necessariamente creare .profile o .bashrc. Terminal e iTerm 2 aprono nuove shell come shell di login, quindi bash non legge .bashrc. Se esistono sia .bash_profile che .profile, bash legge solo .bash_profile quando viene invocato come shell di login interattiva. .profile viene letto da ksh quando viene invocato come shell di login interattiva e da bash quando viene invocato come sh come shell di login interattiva.

Ho effettivamente detto a iTerm 2 di aprire nuove shell come shell non di accesso, 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 ancora letto quando ssh sul mio computer.


Fammi vedere se ho capito ... Hai entrambi ~/.bash_profilee ~/.profile? E anche tu ~/.bashrc?
Gio G.

Non ho un .profile e il mio .bash_profile contiene solo . ~/.bashrc.
Lri,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.