The whoami (concatenated of the strings “who,” “am,”, “i” as whoami) is a Linux command line utility that prints the username associated with the current effective user ID.
It comes in handy, especially while writing the shell script, like fetching the username within the script or executing the script for a specific user like root.
In this article, you will learn the usage of the whoami command, how to use it in shell scripts, and its alternative commands.
Tutorial Details
Description | Checking the Username of a Logged-In User |
Difficulty Level | Low |
Root or Sudo Privileges | No |
OS Compatibility | Ubuntu, Manjaro, Fedora, etc. |
Prerequisites | whoami |
Internet Required | No |
Syntax of the Whoami Command
The whoami command takes only one argument as an option (optional).
$ whoami [OPTION]
The following is the list of all known options accepted by this command.
Option | Description |
---|---|
--help | Display the help section. |
--version | Display version information. |
Usage of the Whoami Command in the Terminal
This command can be directly executed without specifying any flags to get the currently logged-in username.
$ whoami
Output:
If your system has multiple user accounts, you can use the whoami command to verify the username after switching to a different account.
$ su jake
$ whoami
Output:
Usage of the Whoami Command in Shell Script
The whoami command in shell script can be very useful if you want to check the user or execute the shell script for a specific user, like root.
For example, the following script will print “Execute this script as the root user.
” when executed by a non-root user, or else it will print “You are running this script as the root user!
” on the screen.
if [[ "$(whoami)" = 'root' ]]
then
echo "You are running this script as the root user!"
else
echo "Execute this script as the root user."
fi
Output:
Whoami and its Substitute
There are additional commands that can print the username of the currently logged-in user in a manner similar to whoami, starting with
w command
The w command can be used to show the username of the currently logged-in user. It can also be used to show the usernames of everyone else who is logged in to your system.
$ w
Output:
who command
The who command is identical to the previous command that will print all the logged-in usernames with their terminal line and the time they logged in.
$ who
Output:
logname command
The logname command is quite identical to whoami, except with one difference: if the logname is executed with sudo, it will return the username.
However, if the whoami command is executed with sudo, it will return the effective username, which will be root.
Executing both the commands without appending sudo.
$ logname
$ whoami
Output:
Executing both the commands with sudo privileges.
$ sudo logname
$ sudo whoami
Output:
id command
The id command without any options provides user related information like the UID, GID, and list of groups the user is in.
$ id
Output:
Using the environment variable
By default, all Linux systems keep the username information in the $USER
environment variable that can be printed using the echo command.
$ echo $USER
Output:
While using this method, keep in mind that the environment variable can be easily modified, which can lead to the wrong username.
That was the last example of checking the username of a logged-in user.
If you have any questions or queries related to this topic, then feel free to ask them in the comment section.
Till then, peace!
Join The Conversation
Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.