Introduction
In Linux and Unix Operating Systems, commands are executable files. The commands may be specific with user environment. We can set the absolute path of specific command as per user in environment. To get the absolute path of command. In that case we will use which command.
The which command is External command. (Learn more about ‘What is Internal and External command in Linux/Unix‘ and ‘type command‘)

To find the absolute path of command in Linux/Unix system, we use which command. Given below is the Syntax.
Syntax:
which command-name # OR which executable-file-name
Note: The echo $PATH command will show the directory path. The which command, locate the command from these directories.
For example:
root@tuxworld:/# echo $PATH /usr/local/rvm/gems/ruby-2.1.0/bin:/usr/local/rvm/gems/ruby-2.1.0@global/bin:/usr/local/rvm/rubies/ruby-2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/bin root@tuxworld:/#
Example : In this example,we will find the absolute path of useradd command.
The output from which command is showing the absolute path.
root@tuxworld:/# which useradd /usr/sbin/useradd root@tuxworld:/#
Print absolute path of multiple commands
We can use multiple arguments in which command. It will help us to find path of two or more executable files and commands. By writing single line of command on terminal will give you the result.
Syntax:
which command-1 command-2 command-N
Example: In this example,we are finding the absolute path of ls,chown,chgrp and usermod command.
root@tuxworld:/# which ls chown chgrp usermod /bin/ls /bin/chown /bin/chgrp /usr/sbin/usermod root@tuxworld:/#
Print all matching pathnames of each argument
To print all matching pathnames of each argument,we use -a option with arguments i.e command name.
Syntax:
which -a argument
Example: In this example, we are searching absolute path of echo command
root@tuxworld:/# which -a echo
/usr/sbin/echo
/bin/echo
root@tuxworld:/#
