/ etc / profile vs ~ / .profile


13

Corro Ubuntu 12.04.1 LTS. E non riesco a capire quale sia l'ordine / priorità per il caricamento dei file di profilo. Quando avvio il sistema e accedo utilizzando la GUI quale file viene caricato? E perché? Cosa succede se si esegue login-shell? Sarà lo stesso? In realtà in questo momento non riesco a capire perché il mio ~/.profilenon si carica all'avvio del sistema perché qui vedo che dovrebbe:

https://help.ubuntu.com/community/EnvironmentVariables


Come stai testando se ~ / .profile è caricato?
Andrea Corbellini,

C'è una variabile d'ambiente che viene aggiornata in ~ / .profile
sunprophit il

Risposte:


3

Puoi definire una variabile in ogni file:

ORDER=${ORDER}+"/etc/profile"

rispettivamente

ORDER=${ORDER}+"~/.profile"

ed esegui un

echo ${ORDER}

per vedere cosa è stato coinvolto e in quale ordine. Ovviamente non ti dirà se ci sono stati diversi script che ti sei perso.

Quindi, se vedi una fonte menzionata, leggi quello script per vedere se uno script ne genera un altro e includi anche questi.

/etc/bash.bashrc e ~ / .bashrc e ~ / .bash_login vengono in mente, così come le cose da / etc / default.


Hm, $ ORDER è vuoto, il che significa che nessuno di loro è caricato?
sunprophit il

Non sono sicuro del motivo per cui $ ORDER fosse vuoto, forse a causa di un errore di sintassi. Non so molto sulle differenze di dash e bash. Anche se ho intenzione di contrassegnare la tua risposta come quella corretta perché ha aiutato a capire dov'è il problema.
sunprophit,

7

Tutto dipende da quale utente stai tentando di accedere. Il /etc/profilefile globale viene caricato per ogni utente , mentre ~/.profileviene caricato solo per l'utente.

~punta alla home directory dell'utente corrente. Quindi, se lo si inserisce /home/user-a/.profilee si accede come user-a, vengono caricati sia il file globale che il suo file specifico dell'utente (in quell'ordine), mentre se si accede come user-bsenza un .profilefile, si carica solo quello globale.


Nel profilo dell'utente corrente (~ / .profile) è presente una parte che dovrebbe aggiornare le variabili di ambiente. Voglio dire, non è in qualche altro profilo. È il profilo di questo utente. Ma ho provato la soluzione @user_unknown per testare il caricamento dei profili e sembra che nessuno di essi sia caricato.
sunprophit,

0

Entrambi dovrebbero essere caricati e ~ / .profile dovrebbe essere caricato per ultimo (nel senso che ha priorità).


Quindi non sono sicuro di cosa stia succedendo. Se lo eseguo esplicitamente nel terminale si carica. Potrebbe esserci un problema durante il login e nel risultato ~ / .profile non viene caricato, ma nel terminale non ci sono questi problemi. Posso verificare se il sistema ha provato a caricarlo?
sunprophit,

0

È colpa mia. C'era [[some_test]] nel mio ~ / .profile e funziona bene in bash, ma credo che dash esegua alcuni comandi pre_session_creation / post_session_creation all'avvio della sessione e dash non lo sappia [[parola chiave. Quindi tutto era stato caricato ma si era fermato all'errore.

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.