GNU/Linux >> Linux Esercitazione >  >> Linux

.bashrc vs .bash_profile

Se trascorri molto tempo sulla riga di comando, è probabile che tu voglia personalizzare il tuo ambiente shell. Questo può significare creare alias, aggiungere una nuova directory a $PATH o modificando l'aspetto del prompt della shell.

Potresti esserti imbattuto in alcuni tutorial in cui dicono di inserire la tua configurazione in .bashrc , .bash_profile o un altro file di configurazione che viene letto ed eseguito dalla shell bash.

In questo articolo parleremo dei file di avvio di Bash e della differenza tra .bashrc e .bash_profile file.

Accesso interattivo e shell senza accesso #

Quando viene richiamato, Bash legge ed esegue i comandi da una serie di file di avvio. Quali file vengono letti dipende dal fatto che la shell venga invocata come shell interattiva di accesso o non di accesso.

Una shell può essere interattiva o non interattiva.

In parole povere, una shell interattiva è una shell che legge e scrive sul terminale di un utente, mentre una shell non interattiva è una shell che non è associata a un terminale, come quando si esegue uno script.

Una shell interattiva può essere una shell di accesso o non di accesso.

Una shell di login viene invocata quando un utente accede al terminale da remoto tramite ssh o localmente, o quando Bash viene lanciato con --login opzione. Una shell interattiva senza login viene invocata dalla shell di login, come quando si digita bash nel prompt della shell o quando si apre una nuova scheda del terminale di Gnome.

File di avvio Bash #

Quando viene invocato come shell di accesso interattiva, Bash cerca il /etc/profile file e, se il file esiste, esegue i comandi elencati nel file. Quindi Bash cerca ~/.bash_profile , ~/.bash_login e ~/.profile file, nell'ordine elencato, ed esegue i comandi dal primo file leggibile trovato.

Quando Bash viene invocato come shell interattiva senza login, legge ed esegue comandi da ~/.bashrc , se quel file esiste ed è leggibile.

Differenza tra .bashrc e .bash_profile #

.bash_profile viene letto ed eseguito quando Bash viene invocato come shell di accesso interattiva, mentre .bashrc viene eseguito per una shell interattiva senza login.

Usa .bash_profile per eseguire comandi che dovrebbero essere eseguiti una sola volta, come la personalizzazione di $PATH variabile di ambiente.

Inserisci i comandi che dovrebbero essere eseguiti ogni volta che avvii una nuova shell nel .bashrc file. Ciò include alias e funzioni, prompt personalizzati, personalizzazioni della cronologia e così via.

Tipicamente, ~/.bash_profile contiene righe come sotto quella sorgente .bashrc file. Ciò significa che ogni volta che accedi al terminale, entrambi i file vengono letti ed eseguiti.

if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

La maggior parte delle distribuzioni Linux utilizza ~/.profile invece di ~/.bash_profile . Il ~/.profile il file viene letto da tutte le shell, mentre ~/.bash_profile solo da Bash.

Se sul tuo sistema non è presente alcun file di avvio, puoi crearlo.

Conclusione #

.bash_profile e .bashrc sono file contenenti comandi di shell che vengono eseguiti quando viene invocato Bash. .bash_profile viene letto ed eseguito su shell di login interattive, mentre .bashrc su shell non di accesso.

Consulta il manuale di Bash per ulteriori informazioni sui file di avvio di Bash.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Personalizzazione della shell Bash

  2. Capisci il significato di `$_`?

  3. Come cambiare Cron Shell (sh To Bash)?

  4. Funzioni nelle variabili Shell?

  5. Cosa fa . ~/.bashrc Comando Fare??

Shell Scripting Parte V:Funzioni in Bash

Come installare Linux Bash Shell su Windows 10

Installazione di Fish Shell su Ubuntu su Windows 10

Esegui tutti gli script della shell nella cartella

Procedura:cronologia Bash/shell illimitata?

Come eseguire il grep di una sezione di un file nella shell bash