# => │ 0 │ true │ /home/myuser/repo/nushell │
# => ╰───┴────────┴─────────────────────────────────╯
```
Notice that `cd` only changes the Active directory.
To _add_ the current directory to the list, change to a new active directory using the `dirs add` command:
```nu
dirs add ../reedline
dirs
# => ╭───┬────────┬──────────────────────────────────╮
# => │ # │ active │ path │
# => ├───┼────────┼──────────────────────────────────┤
# => │ 0 │ false │ /home/myuser/src/repo/nushell │
# => │ 1 │ true │ /home/myuser/src/repo/reedline │
# => ╰───┴────────┴──────────────────────────────────╯
```
Let's go ahead and add a few more commonly used directories to the list:
```nu
dirs add ../nu_scripts
dirs add ~
dirs
# => ╭───┬────────┬────────────────────────────────────╮
# => │ # │ active │ path │
# => ├───┼────────┼────────────────────────────────────┤
# => │ 0 │ false │ /home/myuser/src/repo/nushell │
# => │ 1 │ false │ /home/myuser/src/repo/reedline │
# => │ 2 │ false │ /home/myuser/src/repo/nu_scripts │
# => │ 3 │ true │ /home/myuser │
# => ╰───┴────────┴────────────────────────────────────╯
```
We can now switch between them easily using `dirs next`, `dirs prev` or `dirs goto`:
```nu
dirs next
# Active was 3, is now 0
pwd
# => /home/myuser/src/repo/nushell
dirs goto 2
# => /home/myuser/src/repo/nu_scripts
```
When you have finished your work in a directory, you can drop it from the list using:
```nu
dirs drop
dirs
# => ╭───┬────────┬──────────────────────────────────╮
# => │ # │ active │ path │
# => ├───┼────────┼──────────────────────────────────┤
# => │ 0 │ false │ /home/myuser/src/repo/nushell │
# => │ 1 │ true │ /home/myuser/src/repo/reedline │
# => │ 2 │ false │ /home/myuser │
# => ╰───┴────────┴──────────────────────────────────╯
```
When we drop `nu_scripts` from the list, the previous directory (`reedline`) becomes active.
## `shells` Aliases
Some users may prefer to think of this feature as multiple "shells within shells", where each has its own directory.
The Standard Library provides a set of aliases that can be used in place of the `dirs` commands above.
Import them using:
```nu
use std/dirs shells-aliases *
```
The built-in aliases are:
| Alias | Description |
| -------- | -------------------------------------------------------- |
| `shells` | in place of `dirs` to list current "shells"/directories. |
| `enter` | in place of `dirs add` to enter a new "shell"/dir. |
| `dexit` | in place of `dirs drop` to exit a "shell"/dir. |
| `g` | as an alias for `dirs goto`. |
| `n` | for `dirs next` |
| `p` | for `dirs prev` |
Of course, you can also define your own aliases if desired.