In this article, I’ll go over the fundamentals you need to understand the terminal. The aim of this article is not to explain all the possibilities, rather it is to give you a foundation from which you can build on.
The commands I will use in this article work on MacOS and other Unix base operating systems. However, the same principles should apply to any other command line interface (e.g. Windows).
What is a terminal?
You may be already familiar with the graphical user interface (GUI), that is one way of telling your computer what to do.
The terminal is another. It is mostly text-based and can feel more primitive, but it is also often more powerful.
To open your terminal, you can just search for an application called terminal and open it. It will likely look like a blank box, with a cursor and the name of your computer
It can look quite scary but it really isn’t. Let’s jump into it and run a few commands.
Running a command
To use a terminal, we type out a command and press enter to send it as our input, then the computer runs the command and sends out an output.
A very common command is
ls. This will list out the contents of the current directory.
That may look a little familiar, that is because it is the same as this:
Another command you will likely use very often is
cd. What that does is to change directory. Meaning, if we want to look inside the desktop folder, we would type
cd Desktop and then press enter. We can then list the files inside the Desktop folder by using the
To see some more details about the files, for example when the file was last modified, we can run
Now that you’re getting a feel for it, let’s break it down.
The anatomy of a command
Commands are generally made up of 3 parts.
- The name of the program, for example,
- Arguments. These are any extra values passed to the program, for example, we passed Desktop as an argument to
cdwhen we ran
- Flags. These are normally used to modify the behavior of the command. You will be able to identify them because they are usually prefixed with one or two hyphens. For example, we pass the
-lflag to the
lscommand to make it print more details when we ran
At this point, you may have some questions:
How do I know which commands are available?
If you want to learn how to do a new thing, you can search for it through google. I assure you there will be tons of examples and recommendations.
The commands you will interact with most often are not too many, and you will likely get the hang of those pretty quickly. Here are a few
touch: Used to create a new file
mkdir: To create a new directory
rm: To delete files of directories
cp: To copy files or directories
mv: To move(i.e. rename) files or directories
It is possible that you will install other command line programs on your computer, such as
docker and so on.
How do I know the arguments and flags to pass to a command?
Most inbuilt programs come with a manual that you can access using the command
man, which is fittingly a command-line tool itself. For example, to view the manual of the
ls command, we would run
A convention among most external tools is to use the
—help flag to display the help for the command. As an example, see
What to do next?
Google, Google, Google!
Search for how to do something, and try it out. If you encounter an error, search for the error and figure out what is wrong.
Don’t try to memorize things. The commands you use frequently will become second nature pretty quickly, and the ones you don’t you can always find when you need it.