The which command in Linux is a powerful tool that helps users identify the location of executable files associated with a given command. Its primary purpose is to reveal the absolute path of the executable file that will be invoked when a specific command is executed in the terminal. This command is particularly useful for understanding which version or binary of a command is being used and where it is located in the system.

Basic Syntax and Usage:

The basic syntax of the which command is straightforward:

which [command]

By providing the name of a command as an argument, which returns the absolute path to the executable file associated with that command.


Let’s consider the which command in action with a common command like ls. The ls command is used to list files and directories in a Unix-like operating system.

which ls

Upon executing this command, the terminal might return something like:


In this example, the output indicates that the ls command is located in the /usr/bin/ directory. This means that when the user types ls in the terminal and hits Enter, the system will execute the /usr/bin/ls binary.

Understanding the Output:

The output of the which command provides valuable information about the location of the executable file associated with a command. Here’s a breakdown:

  • Full Path: The output includes the full or absolute path to the executable file. In the example, /usr/bin/ls is the full path.
  • Executable Name: The last part of the path, in this case, ls, represents the name of the executable binary.

Multiple Paths and Aliases:

In some cases, a system may have multiple versions of a command installed, or the command might be an alias pointing to another command. The which command helps clarify which version or binary will be executed.

Example with Multiple Paths:

Suppose there are two versions of a command named example_command installed on the system, one in /usr/bin/ and another in /usr/local/bin/. Running:

which example_command

Might return:


This indicates that the version in /usr/local/bin/ is the one that will be executed.

Example with Aliases:

If a user has created an alias for a command, the which command will reveal the original binary associated with the alias.

alias ll='ls -l'
which ll

The output might show:


This illustrates that even though the user types ll, the system ultimately executes the ls command.

Use Cases:

  1. Troubleshooting: When encountering unexpected behavior or errors related to a command, using which helps identify which binary is being executed, allowing for troubleshooting and resolution.
  2. Environment Understanding: For users and administrators, understanding the location of executable files provides insights into the system’s environment and configuration.
  3. Scripting: In scripting, knowing the absolute path of a command ensures that the script runs with the expected binaries, reducing the chances of errors.

In summary, the which command is a valuable tool in the Linux command-line toolkit. It aids users in understanding the system’s configuration, clarifies which version or binary of a command will be executed, and is an essential tool for troubleshooting and scripting. By revealing the absolute path of executables, which contributes to a clearer understanding of the Linux environment.

Leave A Comment