# Aliases
Aliases in Nushell offer a way of doing a simple replacement of command calls (both external and internal commands). This allows you to create a shorthand name for a longer command, including its default arguments.
For example, let's create an alias called `ll` which will expand to `ls -l`.
```nu
alias ll = ls -l
```
We can now call this alias:
```nu
ll
```
Once we do, it's as if we typed `ls -l`. This also allows us to pass in flags or positional parameters. For example, we can now also write:
```nu
ll -a
```
And get the equivalent to having typed `ls -l -a`.
## List All Loaded Aliases
Your useable aliases can be seen in `scope aliases` and `help aliases`.
## Persisting
To make your aliases persistent they must be added to your _config.nu_ file by running `config nu` to open an editor and inserting them, and then restarting nushell.
e.g. with the above `ll` alias, you can add `alias ll = ls -l` anywhere in _config.nu_
```nu
$env.config = {
# main configuration
}
alias ll = ls -l
# some other config and script loading
```
## Piping in Aliases
Note that `alias uuidgen = uuidgen | tr A-F a-f` (to make uuidgen on mac behave like linux) won't work.
The solution is to define a command without parameters that calls the system program `uuidgen` via `^`.
```nu
def uuidgen [] { ^uuidgen | tr A-F a-f }
```
See more in the [custom commands](custom_commands.md) section of this book.
Or a more idiomatic example with nushell internal commands
```nu
def lsg [] { ls | sort-by type name -i | grid -c | str trim }
```
displaying all listed files and folders in a grid.
## Replacing Existing Commands Using Aliases
::: warning Caution!
When replacing commands it is best to "back up" the command first and avoid recursion error.
:::
How to back up a command like `ls`:
```nu
alias core-ls = ls # This will create a new alias core-ls for ls
```
Now you can use `core-ls` as `ls` in your nu-programming. You will see further down how to use `core-ls`.
The reason you need to use alias is because, unlike `def`, aliases are position-dependent. So, you need to "back up" the old command first with an alias, before re-defining it.