Technology and General Blog

The big difference between the su and the hyphenated su &#8211 instructions is the su command without having arguments keeps just about all environment variables belonging to the authentic consumer. Contrary to this, the hyphenated su &#8211 command clears most atmosphere variables.

We are not speaking about two distinctive commands but about a command devoid of a certain flag (the hyphen is a flag) and the exact same command with the flag.

Typing su &#8211 is the same as typing su -l equally instructions will clear most of the environment variables. As a result, prior to continuing with this article, allow&#8217s see what an surroundings variable is.

Environment variables in Linux:

The atmosphere variables are values utilized to define attributes of the atmosphere in which shell processes and their baby procedures are becoming executed, for case in point, processes use the atmosphere variable $SHELL to know the shell in use (Bash, Zsh, etc.).

The method has a lot of variables this short article will concentration on individuals variables affected when we use the su command.

To see all variables in your program, you can run the export command as revealed beneath.


As you see in the screenshot above, there are a lot of variables in our procedure. We will focus on the unique variables Dwelling, SHELL, Consumer, LOGNAME, and Path.

The 1st variable we&#8217ll see is Route. The values of this atmosphere variable are beneficial for the process to know in which to find the instructions or plans to execute. The default program&#8217s surroundings variable Path is defined in the /and so on/profile file. Buyers&#8217 Route variables are found in just their household directories at ~/.profile.

To study your Path surroundings variable values, you can use the echo command adopted by the $ symbol and the surroundings variable you want to test, in this circumstance, Route, as proven in the instance beneath.

echo $Path

As you can see, the system returns the outlined atmosphere variables for our system to know where by to lookup and uncover the commands we want to execute.

The 2nd surroundings variable defined in this short article is the SHELL variable. The benefit of this variable tells the procedure what shell we are applying, if Bash, Zsh, Ksh, and so forth.

To see the benefit of your SHELL environment variable, repeat the step discussed previously, replacing $Path with $SHELL, as proven in the screenshot below.

echo $SHELL

And as you can see, the shell is Bash. That&#8217s how our system is aware what shell we are employing, with the price revealed previously mentioned.

One more vital setting variable in Linux is $Dwelling. This price signifies what the dwelling directory of the consumer is. To find out this price, you can run the command beneath.

echo $Dwelling

The environment variable $ LOGNAME&#8217s benefit is the person you&#8217re logged in as.


The $User surroundings variable benefit is the user ID, which is the very same as $LOGNAME.

echo $Person

The setting variables stated higher than are the types influenced by the su command when the hyphen or the -l flag are additional.

Variation involving &#8220su&#8221 and &#8220su -&#8221 instructions:

The variance concerning the su command with no flags and su with a hyphen or -l is the command devoid of flags keeps your ecosystem variables and only changes the person.

When employed with hyphens or the -l flag, most environment variables are cleared.

The subsequent example displays the linuxhint user switching to root making use of su without the need of solutions.

Then, following checking the $LOGNAME natural environment variable, we see it continues to be as linuxhint and not root.



Contrary to the former example, if the hyphen is executed, it will be current to root when checking the $LOGNAME variable.



Allow&#8217s attempt the identical with the $Person environment variable.


echo $Person

As you can see, when executing su as linuxhint to transform to root and checking the $User variable, it remains as linuxhint.

Contrary to the past illustration, if employing the hyphen, the $User variable will be cleared and updated as shown under.


echo $User

To end this tutorial, this past illustration displays the -l flag does just the same as the hyphen.

su -l


echo $Person


Natural environment variables are a standard idea any Linux consumer should know. At the time you recognize their perform, you can conveniently comprehend the variation in between the su command without the need of and with the -l flag (which is the similar as the hyphenated su). If you favored this tutorial, you could possibly want to go through Managing sudo privileges on Linux.

I hope this post exhibiting the big difference in between &#8220su&#8221 and &#8220su &#8211&#8221 was valuable. Retain pursuing this blog for extra Linux tutorials and guidelines.

Leave a Reply

Your email address will not be published. Required fields are marked *