Su vs. SU -

Su vs. SU -
Der Unterschied zwischen dem su und die Bindestriche su - Befehle sind die su Befehl ohne Argumente hält fast alle Umgebungsvariablen zum ursprünglichen Benutzer an. Entgegen diesem Bindestrich su - Der Befehl löscht die meisten Umgebungsvariablen.

Wir sprechen nicht über zwei verschiedene Befehle, sondern über einen Befehl ohne eine bestimmte Flagge (der Bindestrich ist eine Flagge) und der gleiche Befehl mit der Flagge.

Das Tippen von SU - ist das gleiche wie das Tippen von Su -L; Beide Befehle werden die meisten Umgebungsvariablen löschen. Bevor Sie diesen Artikel fortsetzen, sehen wir uns also an, was eine Umgebungsvariable ist.

Umgebungsvariablen unter Linux:

Die Umgebungsvariablen sind Werte, mit denen die Eigenschaften der Umgebung definiert werden, in der Shell -Prozesse und ihre untergeordneten Prozesse ausgeführt werden, beispielsweise mit Prozessen die Umgebungsvariable $ Shell, um die verwendete Shell zu kennen (Bash, ZSH usw.).

Das System hat viele Variablen; Dieser Artikel konzentriert sich auf die betroffenen Variablen, wenn wir die verwenden su Befehl.

Um alle Variablen in Ihrem System zu sehen, können Sie die ausführen Export Befehl wie unten gezeigt.

Export

Wie Sie im obigen Screenshot sehen, gibt es in unserem System viele Variablen. Wir werden uns auf die spezifischen Variablen konzentrieren HEIM, HÜLSE, BENUTZER, Logname, Und WEG.

Die erste Variable, die wir sehen werden, ist WEG. Die Werte dieser Umgebungsvariablen sind für das System nützlich, um zu wissen, wo die Befehle oder Programme zur Ausführung ermittelt werden können. Die Umgebungsvariable des Standardsystems WEG ist in der definiert /etc/Profil Datei. Die Pfadvariablen der Benutzer befinden sich in ihren Heimverzeichnissen unter ~/.Profil.

Um Ihre Pfadumgebungsvariablenwerte zu erlernen, können Sie die verwenden Echo Befehl gefolgt von dem $ Symbol und die Umgebungsvariable, die Sie in diesem Fall überprüfen möchten, WEG, Wie im folgenden Beispiel gezeigt.

Echo $ path

Wie Sie sehen können, gibt das System die definierten Umgebungsvariablen für unser System zurück, um zu wissen, wo wir die Befehle suchen sollen, die wir ausführen möchten.

Die in diesem Artikel erläuterte zweite Umgebungsvariable ist die Shell -Variable. Der Wert dieser Variablen gibt dem System an, welche Shell wir verwenden, wenn Bash, ZSH, KSH usw.

Um den Wert Ihrer Shell -Umgebungsvariablen zu sehen, wiederholen Sie den zuvor erläuterten Schritt und ersetzen Sie $ path durch $ Shell, wie im Screenshot unten gezeigt.

Echo $ Shell

Und wie Sie sehen können, ist die Hülle Bash. So weiß unser System, welche Shell wir verwenden, mit dem oben gezeigten Wert.

Eine weitere wichtige Umgebungsvariable unter Linux ist $ Home. Dieser Wert gibt an, wie das Home -Verzeichnis des Benutzers ist. Um diesen Wert zu lernen, können Sie den folgenden Befehl ausführen.

Echo $ Home

Der Wert von Umgebungsvariablen $ logName ist der Benutzer, in dem Sie angemeldet sind.

Echo $ logName

Der Variablenwert der $ User -Umgebung ist die Benutzer -ID, die dem $ logName entspricht.

Echo $ user

Die oben erläuterten Umgebungsvariablen sind diejenigen, die von den betroffen sind su Befehl, wenn der Bindestrich oder der -l Flaggen werden hinzugefügt.

Unterschied zwischen „SU“ und „SU -“ -Handbefehlungen:

Der Unterschied zwischen dem su Befehl ohne Flaggen und su mit einem Bindestrich oder -l ist der Befehl ohne Flaggen hält Ihre Umgebungsvariablen und ändert nur den Benutzer.

Bei Verwendung mit Bindestrichen oder der -l Flagge, die meisten Umgebungsvariablen werden gelöscht.

Das nächste Beispiel zeigt die LinuxHint Benutzerwechsel zum Root mit verwendet su ohne Optionen.

Nachdem wir dann die Umgebungsvariable $ logname überprüft haben, sehen wir, dass es bleibt wie LinuxHint und keine Wurzel.

su
Echo $ logName

Im Gegensatz zum vorherigen Beispiel wird der Bindestrich bei der Implementierungs.

su -
Echo $ logName

Versuchen wir dasselbe mit der $ User -Umgebungsvariablen.

su
Echo $ user

Wie Sie sehen können, wenn Sie Su als machen LinuxHint Um die Root zu ändern und die $ user -Variable zu überprüfen, bleibt sie als LinuxHint.

Im Gegensatz zum vorherigen Beispiel wird die $ -Benutzervariable bei der Implementierung des Bindestrichs gelöscht und aktualisiert, wie unten gezeigt.

su -
Echo $ user

Um dieses Tutorial zu beenden, zeigt dieses letzte Beispiel das -l Die Flagge tut genau das Gleiche wie der Bindestrich.

Su -l
Echo $ logName
Echo $ user

Abschluss:

Umgebungsvariablen sind ein grundlegendes Konzept, das jeder Linux -Benutzer wissen muss. Sobald Sie ihre Funktion verstanden haben, können Sie den Unterschied zwischen dem leicht erkennen su Befehl ohne und mit dem -l Flag su). Wenn Ihnen dieses Tutorial gefallen hat, möchten Sie möglicherweise das Managing Sudo -Privilegien unter Linux lesen.

Ich hoffe, dieser Artikel zeigt den Unterschied zwischen “su" Und "su -War hilfreich. Folgen Sie diesem Blog weiter, um weitere Linux -Tutorials und Tipps zu erhalten.