# Coming from Bash
::: tip
If you're coming from `Git Bash` on Windows, then the external commands you're used to (e.g, `ln`, `grep`, `vi`, etc) will not be available in Nushell by default unless you have already explicitly made them available in the Windows Path environment variable.
To make these commands available in Nushell as well, add the following line to your `config.nu` with either `append` or `prepend`.
```nu
$env.Path = ($env.Path | prepend 'C:\Program Files\Git\usr\bin')
```
:::
## Command Equivalents:
| Bash | Nu | Task |
| ------------------------------------ | ------------------------------------------------------------- | ----------------------------------------------------------------- |
| `ls` | `ls` | Lists the files in the current directory |
| `ls <dir>` | `ls <dir>` | Lists the files in the given directory |
| `ls pattern*` | `ls pattern*` | Lists files that match a given pattern |
| `ls -la` | `ls --long --all` or `ls -la` | List files with all available information, including hidden files |
| `ls -d */` | `ls \| where type == dir` | List directories |
| `find . -name *.rs` | `ls **/*.rs` | Find recursively all files that match a given pattern |
| `find . -name Makefile \| xargs vim` | `ls **/Makefile \| get name \| vim ...$in` | Pass values as command parameters |
| `cd <directory>` | `cd <directory>` | Change to the given directory |
| `cd` | `cd` | Change to the home directory |
| `cd -` | `cd -` | Change to the previous directory |
| `mkdir <path>` | `mkdir <path>` | Creates the given path |
| `mkdir -p <path>` | `mkdir <path>` | Creates the given path, creating parents as necessary |
| `touch test.txt` | `touch test.txt` | Create a file |
| `> <path>` | `out> <path>` or `o> <path>` | Save command output to a file |
| | `\| save <path>` | Save command output to a file as structured data |
| `>> <path>` | `out>> <path>` or `o>> <path>` | Append command output to a file |
| | `\| save --append <path>` | Append command output to a file as structured data |
| `> /dev/null` | `\| ignore` | Discard command output |
| `> /dev/null 2>&1` | `out+err>\| ignore` or `o+e>\| ignore` | Discard command output, including stderr |