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 – 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’s 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’ll 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’s surroundings variable Path is defined in the /and so on/profile file. Buyers’ 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.
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.
And as you can see, the shell is Bash. That’s 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.
The environment variable $ LOGNAME’s benefit is the person you’re logged in as.
The $User surroundings variable benefit is the user ID, which is the very same as $LOGNAME.
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 “su” and “su -” 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’s attempt the identical with the $Person environment variable.
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.
To end this tutorial, this past illustration displays the -l flag does just the same as the hyphen.
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 “su” and “su –” was valuable. Retain pursuing this blog for extra Linux tutorials and guidelines.