This document will give an introduction to Shell, the commands you can type in a terminal, and Bash, a very common shell
The Shell is the user interface that allows access to the services of an Operating System. In Unix systems, such as Linux, OS X, or the Windows Subsystem for Linux (recommended if you have a Windows machine), the most efficient way to interact is through a Command-Line Interface (CLI), where the shell program takes commands from the keyboard and passes them to the operating system. This way you can copy files, create and view directories, and commit your changes to Git. sh was the original name for the shell program in Unix systems (900 lines of C code). Today, there are many shell programs with different syntax and features: bash, dash, zsh, and fish are all very common shells. The commands in the POSIX standard work on most shells. Multiple shells are probably already installed on your computer, and you can easily add more. Then you can choose your shell with the chsh command (change shell). So feel free to try different shells and find your favorite.
You can also write script files that are interpreted by a shell program. Like with Python, the first line of a script (shebang - #!) can suggest which shell will interpret the script, e.g. #!/bin/bash
Bash is probably the most common shell; it is the default on many Linux systems and was the default in OS X (Catalina switched to zsh, but bash is still available). Many scripts are written for bash, so it is useful to learn it also if you are using a different interactive shell.
Software Carpentry has an excellent introduction to using the shell (bash): http://swcarpentry.github.io/shell-novice/
Here are a couple of cheat sheets with shell commands:
https://appletree.or.kr/quick_reference_cards/Unix-Linux/Linux%20Command%20Line%20Cheat%20Sheet.pdf
https://github.com/LeCoupa/awesome-cheatsheets/blob/master/languages/bash.sh
https://www.loggly.com/wp-content/uploads/2015/05/Linux-Cheat-Sheet-Sponsored-By-Loggly.pdf
Two coding style guides:
And a few more references:
Simplified man pages with examples: https://tldr.sh/
Classic: http://www.tldp.org/LDP/abs/html/
Break it down: http://explainshell.com
Great guide: http://wiki.bash-hackers.org/ (if unreachable, try here or here)
Good to know: https://mywiki.wooledge.org/BashPitfalls
Nice introduction: https://developer.apple.com/library/archive/documentation/OpenSource/Conceptual/ShellScripting/Introduction/Introduction.html
A war game to learn more shell commands https://overthewire.org/wargames/bandit/
You can find a lot of documentation and tutorials for all the major shells. Just search for the shell name, adding the "shell" and "documentation" or "tutorial" keywords.