Linux / Unix Shell Script: Get Current User Name

Posted on in Categories , , , last updated April 9, 2013

I am working on a shell script. I need to find out the current user name. How do I find out the current user name under Bash or Ksh shell running on Linux or Unix like operating systems?

You can use the variables $USER, or $USERNAME which are not Bash builtins. These are, however, set as environmental variables in one of the Bash startup files. You can use the id command to get the same information.

a] $USER – Current user name.

b] $USERNAME – Current user name.

c] id command – Current user name.


To get the current user name, type:

echo "$USER"

Get the current user name and store to a shell variable called $u:

echo "User name $u"

Sample outputs:

User name vivek

The syntax for id command is:

id -u -n

Sample outputs:


To print numeric UID, run:

id -u

Sample outputs:


The following script reads user name and store to a variable called _user _uid:

_user="$(id -u -n)"
_uid="$(id -u)"
echo "User name : $_user"
echo "User name ID (UID) : $_uid"

Shell script example

Make sure only root user can run the following script:

## get UID 
uid=$(id -u)
## Check for it
[ $uid -ne 0 ] && { echo "Only root may enable the nginx-chroot environment to the system."; exit 1; }
## Continue main logic with root user

A note about $EUID

This variable EUID is readonly. It expands to the effective user ID of the current user, initialized at shell startup. You can use $EUID to find out if user is root or not with the following syntax:

# Find out if you are root or not for admin tasks.
(( EUID )) && { echo 'Run this script with root priviliges.'; exit 1; } || echo 'Running as root, starting service...'

3 comment

Leave a Comment