Non stiamo parlando di due comandi diversi ma di un comando senza un flag specifico (il trattino è un flag) e lo stesso comando con il flag.
Digitare SU - è uguale a digitare su -l; Entrambi i comandi cancelleranno la maggior parte delle variabili di ambiente. Pertanto, prima di continuare con questo articolo, vediamo cos'è una variabile di ambiente.
Variabili di ambiente in Linux:
Le variabili di ambiente sono valori utilizzati per definire le caratteristiche dell'ambiente in cui vengono eseguiti i processi di shell e i loro processi figli.).
Il sistema ha molte variabili; Questo articolo si concentrerà su quelle variabili interessate quando usiamo il Su comando.
Per vedere tutte le variabili nel tuo sistema, puoi eseguire il esportare comando come mostrato di seguito.
esportare
Come vedi nello screenshot sopra, ci sono molte variabili nel nostro sistema. Ci concentreremo sulle variabili specifiche CASA, CONCHIGLIA, UTENTE, Logname, E SENTIERO.
La prima variabile che vedremo è SENTIERO. I valori di questa variabile di ambiente sono utili per il sistema per sapere dove trovare i comandi o i programmi da eseguire. La variabile di ambiente del sistema predefinito SENTIERO è definito in /etc/profilo file. Le variabili del percorso degli utenti si trovano all'interno delle loro directory di casa a ~/.profilo.
Per imparare i valori delle variabili dell'ambiente percorso, puoi utilizzare il eco comando seguito dal $ simbolo e variabile di ambiente che si desidera controllare, in questo caso, SENTIERO, come mostrato nell'esempio seguente.
Echo $ Path
Come puoi vedere, il sistema restituisce le variabili di ambiente definite per il nostro sistema per sapere dove cercare e trovare i comandi che vogliamo eseguire.
La seconda variabile di ambiente spiegata in questo articolo è la variabile shell. Il valore di questa variabile dice al sistema quale shell stiamo usando, se bash, ZSH, KSH, ecc.
Per vedere il valore della variabile dell'ambiente shell, ripeti il passaggio spiegato in precedenza, sostituendo $ percorso con $ shell, come mostrato nello screenshot seguente.
Echo $ Shell
E come puoi vedere, il guscio è bash. È così che il nostro sistema sa cosa stiamo usando la shell, con il valore mostrato sopra.
Un'altra importante variabile di ambiente in Linux è $ Home. Questo valore indica ciò che è la directory home dell'utente. Per imparare questo valore, puoi eseguire il comando di seguito.
Echo $ Home
Il valore di $ logname della variabile di ambiente è l'utente che hai effettuato come.
echo $ logname
Il valore variabile di $ utente ambientale è l'ID utente, che è lo stesso di $ logname.
Echo $ utente
Le variabili di ambiente spiegate sopra sono quelle colpite da Su comando quando il trattino o il -l vengono aggiunti la bandiera.
Differenza tra comandi "su" e "su -":
La differenza tra il Su comando senza flag e Su con un trattino o -l Il comando senza flag mantiene le variabili di ambiente e cambia solo l'utente.
Se usato con trattini o il -l bandiera, la maggior parte delle variabili di ambiente vengono cancellate.
Il prossimo esempio mostra il Linuxhint L'utente passa alla root utilizzando Su senza opzioni.
Quindi, dopo aver controllato la variabile dell'ambiente $ logname, vediamo che rimane come Linuxhint e non radice.
Su
echo $ logname
Contrariamente all'esempio precedente, se il trattino è implementato, verrà aggiornato per il root quando si controlla la variabile $ logname.
Su -
echo $ logname
Proviamo lo stesso con la variabile dell'ambiente $ utente.
Su
Echo $ utente
Come puoi vedere, quando fai su come Linuxhint Per cambiare in root e controllare la variabile utente $, rimane come Linuxhint.
Contrariamente all'esempio precedente, se implementa il trattino, la variabile utente $ verrà cancellata e aggiornata come mostrato di seguito.
Su -
Echo $ utente
Per porre fine a questo tutorial, quest'ultimo esempio mostra il -l la bandiera fa esattamente lo stesso del trattino.
Su -l
echo $ logname
Echo $ utente
Conclusione:
Le variabili di ambiente sono un concetto di base che ogni utente Linux deve sapere. Una volta che hai capito la loro funzione, puoi facilmente realizzare la differenza tra il Su comando senza e con il -l bandiera (che è la stessa della sillana Su). Se ti è piaciuto questo tutorial, potresti voler leggere la gestione dei privilegi sudo su Linux.
Spero che questo articolo mostri la differenza tra "Su" E "Su -"È stato utile. Continua a seguire questo blog per altri tutorial e suggerimenti Linux.