# Linux commands: which

> Learn how the Linux which command shows the full path where an executable is stored on disk, and why it cannot locate shell aliases or built-in functions.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-09-16 | Topics: [CLI](https://flaviocopes.com/tags/cli/) | Canonical: https://flaviocopes.com/linux-command-which/

Suppose you have a command you can execute, because it's in the shell path, but you want to know where it is located.

You can do so using `which`. The command will return the path to the command specified:

![Terminal showing which ls returning /bin/ls and which docker returning /usr/local/bin/docker](https://flaviocopes.com/images/linux-command-which/Screen_Shot_2020-09-03_at_17.22.47.png)

`which` will only work for executables stored on disk, not aliases or built-in shell functions.

> The `which` command works on Linux, macOS, WSL, and anywhere you have a UNIX environment
