GNU/Linux >> Linux Esercitazione >  >> Linux

Perché si potrebbe aggiungere ~/.profile a ~/.bash_profile?

Durante l'installazione di RVM viene visualizzato il seguente messaggio:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

Sono preoccupato perché il mio file ~/.profile contiene xmodmap ~/.Xmodmap che ovviamente non voglio eseguire (scambiando i miei tasti CapsLock ed ESC) ogni volta che apro una nuova shell.

Perché i saggi sviluppatori di RVM potrebbero suggerire di procurarsi .profile in .bash_profile ?

Risposta accettata:

.profile e .bash_profile sono identici in termini di quando devono essere eseguiti:vengono eseguiti quando accedi. La differenza è che solo bash esegue .bash_profile; Le shell in stile Bourne (dash, ksh, ecc.) eseguono .profile . Bash stesso esegue .profile se .bash_profile non esiste.

Anche se hai bash come shell di accesso, .profile è spesso quello che viene eseguito quando accedi in modalità grafica: molte distribuzioni configurano lo script di avvio della sessione X per l'esecuzione in sh e carica .profile .

Da qui il consiglio di usare .profile invece di .bash_profile per fare cose come definire le variabili d'ambiente. A meno che tu non abbia assolutamente bisogno di funzionalità specifiche di bash, metti tutto in .profile . Ma anche se lo fai, c'è un motivo per mantenere un .bash_profile , ovvero quando bash lo carica, non carica .bashrc , anche se interattivo. Quindi, per la maggior parte delle persone, ~/.bash_profile dovrebbe consistere in queste due righe:

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

Non dovresti eseguire xmodmap da .profile . Questo non viene eseguito quando apri una nuova shell, ma viene eseguito, ad esempio, quando accedi in remoto con SSH con inoltro X11. Sfortunatamente, non esiste un file standard che viene caricato quando accedi in modalità grafica. Debian carica ~/.xsessionrc (Penso che questo si applichi a tutti i display manager, eccetto Gdm che carica ~/.xprofile invece); altre distribuzioni hanno configurazioni diverse. Se hai bisogno della portabilità della distribuzione incrociata, potrebbe essere più semplice configurare il tuo ambiente desktop per eseguire xmodmap quando inizia. Se tutto ciò che stai facendo è scambiare CapsLock e Ctrl, questo può essere fatto con le impostazioni XKB a cui la maggior parte dei moderni ambienti desktop fornisce un'interfaccia.

Correlati:come impostare una variabile uguale all'output di un comando in GRUB2?
Linux
  1. Perché la sincronizzazione è così importante quando si crea una chiavetta USB avviabile Linux?

  2. Perché lanciamo sockaddr_in a sockaddr quando chiamiamo bind()?

  3. Perché si dovrebbe usare sudo?

  4. Perché LXC quando c'è linux-vserver?

  5. Come aggiungere al gruppo quando il nome ha uno spazio?

Che cos'è un TAM e perché potresti volerlo diventare?

Perché il ~/.bash_profile non funziona?

.bash_profile non originato durante l'esecuzione di Su?

Che cos'è un Homelab e perché dovresti averne uno?

Perché è possibile capovolgere lo schermo?

Inoltro IP =quando e perché è necessario?