Coming from Bash

If you’re coming from Git Bash on Windows, then the external commands you’re used to (bash, grep, etc) will not be available in nu by default (unless you had explicitly made them available in the Windows Path environment variable). To make these commands available in nu as well, add the following line to your config.nu with either append or prepend.

  1. let-env Path = ($env.Path | prepend 'C:\Program Files\Git\usr\bin')

Note: this table assumes Nu 0.14.1 or later.

BashNuTask
lslsLists the files in the current directory
ls <dir>ls <dir>Lists the files in the given directory
ls patternls patternLists files that match a given pattern
ls -lals —long —all or ls -laList files with all available information, including hidden files
ls -d /ls | where type == dirList directories
find . -name .rsls */.rsFind recursively all files that match a given pattern
find . -name Makefile | xargs vimls **/Makefile | get name | vim $inPass values as command parameters
cd <directory>cd <directory>Change to the given directory
cdcdChange 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.txttouch test.txtCreate a file
> <path>| save —raw <path>Save string into a file
>> <path>| save —raw —append <path>Append string to a file
cat <path>open —raw <path>Display the contents of the given file
open <path>Read a file as structured data
mv <source> <dest>mv <source> <dest>Move file to new location
cp <source> <dest>cp <source> <dest>Copy file to new location
cp -r <source> <dest>cp -r <source> <dest>Copy directory to a new location, recursively
rm <path>rm <path>Remove the given file
rm -t <path>Move the given file to the system trash
rm -rf <path>rm -r <path>Recursively removes the given path
chmod<not yet possible>Changes the file attributes
date -d <date>“<date>” | into datetime -f <format>Parse a date (format documentationComing from Bash - 图1 (opens new window))
sedstr find-replaceFind and replace a pattern in a string
grep <pattern>where $it =~ <substring> or find <substring>Filter strings that contain the substring
man <command>help <command>Get the help for a given command
help commandsList all available commands
help —find <string>Search for match in all available commands
command1 && command2command1; command2Run a command, and if it’s successful run a second
stat $(which git)stat (which git).pathUse command output as argument for other command
echo $PATHecho $env.PATHSee the current path
<update ~/.bashrc>vim $nu.config-pathUpdate PATH permanently
export PATH = $PATH:/usr/other/binlet-env PATH = ($env.PATH | append /usr/other/bin)Update PATH temporarily
exportecho $envList the current environment variables
<update ~/.bashrc>vim $nu.config-pathUpdate environment variables permanently
FOO=BAR ./binFOO=BAR ./binUpdate environment temporarily
export FOO=BARlet-env FOO = BARSet environment variable for current session
echo $FOOecho $env.FOOUse environment variables
unset FOOhide FOOUnset environment variable for current session
alias s=”git status -sb”alias s = git status -sbDefine an alias temporarily
type FOOwhich FOODisplay information about a command (built-in, alias, or executable)
<update ~/.bashrc>vim $nu.config-pathAdd and edit alias permanently (for new shells)
bash -c <commands>nu -c <commands>Run a pipeline of commands (requires 0.9.1 or later)
bash <script file>nu <script file>Run a script file (requires 0.9.1 or later)
\( followed by )Line continuation is not yet supported.
pwd$env.PWDDisplay the current directory