Qual è la differenza tra ~/.profilee ~/.bash_profile?
Qual è la differenza tra ~/.profilee ~/.bash_profile?
Risposte:
La .profileera la configurazione del profilo originale per la shell Bourne (alias, sh). bash, essendo una shell compatibile con Bourne la leggerà e la utilizzerà. L' .bash_profilealtra parte viene letto solo da bash. È destinato a comandi incompatibili con la shell Bourne standard.
.profile. Ad esempio, bashe kshma non csho tcsh. E zshfornisce sia she cshcompatibilità in modo che leggere sia .profilee .login, così come zshfile specifici punti.
L'originale shproviene .profileall'avvio.
bashproverà .bash_profileprima a fare la fonte , ma se ciò non esiste, farà la fonte .profile1 .
Si noti che se bashviene avviato come sh(ad es. /bin/shÈ un collegamento a /bin/bash) o viene avviato con il --posixflag, tenta di emulare she legge solo .profile.
Note:
.bash_profile, .bash_login,.profileGuarda anche:
Sai che esistono molte shell nel mondo UNIX, ma la maggior parte di esse sono:
/bin/sh(Inventore: Stephen Bourne)/bin/bash(Inventore: Brian Fox, nell'ambito del progetto GNU) (potente shell)/bin/csh(Inventore: Bill Joy, Inventore dello stack TCP / IP)/bin/ksh(Inventore: David Korn sotto Bell Labs)/bin/zsh(shell potente)/bin/tcsh(derivato dalla shell C)/bin/dash(Derivato da Almquist shell (ash nell'ambito del progetto NetBSD)) (Dash nato da Lenny)Ma la tua domanda è circa ~/.bash_profilee ~/.profile:
Quando si accede a una macchina UNIX, reindirizza alla propria directory home, in base alla shell scelta da un amministratore nell'ultimo campo /etc/passwdcome:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
La shell viene eseguita e per impostazione predefinita ogni shell ha un file impostato per logine logout. Quando si accede a bash, ~/.profileè gestito e quando si logout, ~/.bash_logoutviene eseguito.
~/.bash_historyil file mantiene il comando di input.
~/.login Quando accedi~/.logout Quando ti disconnetti~/.tcshrccome ~./bashrcin bashÈ possibile impostare la variabile $histfilecome nome del file cronologico e la variabile $historycome numero di comandi da conservare.
In effetti è una shell potente e se hai tempo libero, assicurati di migrare su di essa.
Ad eccezione di altre shell, la shell Z ha molti file di configurazione e file di inizializzazione, solo che scrivo:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Nota: se $ZDOTDIRnon impostato, home set.
Nota: la shell TENEX C è stata biforcuta dalla shell C. Supporti shell C di BSD. Se hai familiarità con la programmazione in linguaggio C, dovresti sentirti a tuo agio poiché la sua sintassi è simile.
~/.login
~/.cshrc
~/.logout
Nota: csh è vecchio. Usa invece tcsh.
~/.profileÈ una shell molto potente e nata sotto il progetto GNU e biforcuta da Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Quando accedi, bash corre ~/.bash_profilee ~/.bash_profilecorre ~/.bashrc. Infatti ~/.bashrcnon è un file di inizializzazione di bash, perché bash non lo esegue.
È morto Anche quando lo usi man sh, vedi il manuale di dash. [Nota del redattore: il bit dashsi applica solo alle distro basate su Debian e Debian come Ubuntu.]
~/.bash_profilelavora sotto bash, ma ~/.profilelavora sotto Bourne e Korn shell.
Una shell di login è semplicemente una shell a cui puoi accedere tramite ssh o dalla console. Una shell non di accesso è una shell a cui anche qualcuno non può accedere. Una shell non di accesso viene spesso utilizzata da programmi / servizi di sistema.
Per quanto riguarda il tuo terzo punto. È vero che .bashrcviene eseguito su ogni istanza della shell. Tuttavia, .bash_profileviene utilizzato solo al momento dell'accesso. Quindi il motivo dei due file separati.
.profileè per cose che non sono specificamente correlate a Bash, come le variabili di ambiente $ PATH, dovrebbe anche essere disponibile in qualsiasi momento. .bash_profileè specifico per shell di login o shell eseguite al login.