# Linux commands: type

> Learn how the Linux type command tells you how a command is interpreted, as an executable, a shell built-in, a function, or an alias, and what it points to.

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

A command can be one of those 4 types:

- an executable
- a shell built-in program
- a shell function
- an alias

The `type` command can help figure out this, in case we want to know or we're just curious. It will tell you how the command will be interpreted.

The output will depend on the shell used. This is Bash:

![Terminal showing type command output in Bash shell identifying various commands as executables, built-ins, and aliases](https://flaviocopes.com/images/linux-command-type/Screen_Shot_2020-09-03_at_16.32.50.png)

This is Zsh:

![Terminal showing type command output in Zsh shell demonstrating command types and aliases like ll pointing to ls -al](https://flaviocopes.com/images/linux-command-type/Screen_Shot_2020-09-03_at_16.32.57.png)

This is Fish:

![Terminal showing type command output in Fish shell displaying function definitions and built-in commands](https://flaviocopes.com/images/linux-command-type/Screen_Shot_2020-09-03_at_16.33.06.png)

One of the most interesting things here is that for aliases it will tell you what is aliasing to. You can see the `ll` alias, in the case of Bash and Zsh, but Fish provides it by default, so it will tell you it's a built-in shell function.

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