How to use the macOS terminal
The terminal is one key piece of your programming arsenal. It allows you to perform tasks that are otherwise impossible to achieve.
You can search Terminal in Spotlight, or go to the Applications folder, open the Utilities subfolder, and look for the Terminal app.
When you open it, you’ll get this screen - or something really similar:

The bash-3.2 indicates the type of shell, and its version. New term here - shell. What is a shell? A shell is a program that allows us to interact with the operating system and its applications.
Note: current macOS since Catalina uses zsh. Nothing else changes related to this tutorial
There are different kinds of shells: Bash is one of the most popular. Some people use Fish (like me), some use Z Shell, some use other ones.
The shell is basically the program that allows us to enter our commands.
File system commands
We can start by entering the ls command, and when we press enter the shell shows us the files contained in the current folder.

The shell normally starts from your home folder, which on a Mac is in /Users/yourname.
How do we know in which folder we currently are? You can get it using the pwd command:

You can change the current folder using cd:

If you just type cd, the shell will get back to your home folder.
You can create a new folder using mkdir:

Running commands
In the shell you have access to all the programs and files installed on your computer. A lot of stuff.
One task you might be required to do, especially when programming in Node and JavaScript, is to use npm.
npm is not a command that’s available out of the box, you need to install it from https://www.npmjs.com/get-npm, but when you get it, you can access it from the command line.
Once you do so, you can go into any empty folder and run npm init to initialize a Node.js project.
Once you are ready you can start any Node.js program by running node filename.js.
There’s a lot more to it!
This post can get you started quickly to do the job, and you can explore more advanced features and capabilities of the shell later.
download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing [email protected]. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.