This is one thing the developer should use on day one and never give up. Shells are the command line syntax and utilities that Unix, Linux, and now Mac use. Shells come in many flavors but the most common one is Bash (default on Ubuntu (Linux) and Osx. You may be able to do a couple of language tutorials without knowing much about shell commands, but sooner or later it will catch up with you. You will be following a tutorial and it will assume you know how to use shell commands. Here is a short list of things you should know:

  1. fil e basics ls, mkdir, mv, rm and their basic options.

  2. pipes ( | ) and redirects ( > ); these are utilities that allow you to feed the output of one command into another (command chaining) and write the output of a command into a file.

  3. grep is the file seach utility. Also you will need to learn the basics of regular expression (regex) which allow you to articulate what you are looking for.

  4. sed is the streaming editor. Allows you to replace regex in a file.

  5. awk is like the command line version of Excel. It allows you to act upon formatted data like CSV and modify it at your will.

  6. You may get by without sed and awk, especially if you choose a good editor, but sooner or later it will become valuable.

Source: https://appirio.com/tech-blog/top-11-things-every-beginning-web-developer-should-know-part-1