Published on 21/04/2022 byNevulo
Whether it’d be in movies or over the shoulder of your “hacker” friend, it’s likely you’ve seen the mysterious command-line interface at one point or another. A window on the computer purely used for typing commands and getting back results in text.
Being able to use the command line with confidence opens some interesting doors and allows you to navigate your computer and automate tasks more effectively and efficiently.
But, if you’re starting out, it can feel like a steep learning curve coming from purely graphical interfaces. After all, when opened, all you’re left with is a blank screen and a blinking cursor. What are you supposed to write? What does it help us accomplish?
The command line, also known as the command prompt or terminal, is ultimately a window that lets us enter text to input commands, and can display the output of commands back to us in the same window.
It’s like having a text message conversation directly with your computer, where you can give more explicit instructions to the computer than you could through a normal graphical interface, or using a mouse. It’s essentially a different “mode” of interacting with your computer; anything you could typically do through a graphical interface, you can likely do on the command line as well.
The command line is also at the heart of a lot of automation. This allows us to write programs through scripts, a set of instructions to be carried out by the computer in a logical order.
The main benefit from using the command line is providing a consistent means of performing actions on your computer and the ability to automate tasks. This is how your computer does a lot of the tasks it needs to do “in the background”.
Your software may use the command line to perform certain tasks such as reading/writing files, changing system preferences, or running other programs.
Imagine if we wanted to do a simple task like creating a folder, but we had to specify exactly where the mouse should be, and when to press the left or right mouse button. Considering the fact that everybody has different screen resolutions, different operating systems, and potentially different themes across systems, it’s pretty difficult to get it working for everybody in a simple way.
To create a folder through the command line, we can just write:
mkdir [folder name]
(make a directory, a folder, where the name is
Simply put, utilising the command line can often provide more efficiency when performing complex tasks. Even though it can seem scary, it typically provides an easier and quicker way for us to do things like run applications that we make, test our software, and much more.
Many servers run operating systems with a foundation called “Unix”. These systems are characterised around modular design (known as the).
The idea is that the operating system provides a set of simple tools/programs, each with a well-defined function or purpose. You can construct awhich feeds the output from one command to another, which can be combined into complex workflows using a shell like .
The best way to start learning to use the command line is just using it. To start using the command line, follow the instructions, depending on which system you’re using:
The “command prompt” is equivalent to the command line, and it can be launched just like any other program on your system. To start the Command Prompt:
Launch the Terminal just like any other program on your system:
There are a few ways to open a terminal in Linux, but the quickest way is typically through a direct keyboard shortcut:
Ctrl + Alt + T.
If the keyboard shortcut doesn’t work or is hard to remember, you can also launch the Terminal just like any other app on your system:
Superkey (acts as the “Windows” key on most keyboards)
The very first thing you’ll see when booting up the command line/terminal is often an arrow, or some sequence of characters behind the text you’ll be entering. This is known as the “prompt”.
It literally prompts the user to act and type a command. It indicates the fact the system is ready to take commands. Don’t be alarmed if yours looks different, or if you’re not sure what everything means.
An executable file, command, or program is usually the first step in performing any kind of action on the command line. Your system has hundreds, probably thousands of executables installed by default for performing common tasks, such as modifying files, running scripts, etc.
In the image above,
echo is a command entered after the prompt. The purpose of the
echo command is to literally echo back what you write; whatever you insert as arguments after the
echo command will be printed back in the command line.
echo Hello world!” would display “
Hello world!” in the command line after you press ENTER.
Executables can accept “arguments” or “parameters” – these are essentially inputs provided by the user, so we can get the result we want.
If we want to remove a specific file on our system, we can perform the action through an executable (in this case,
rm which removes files), and we can specify the file to be removed in the arguments:
The command above would remove a file called “hello.txt”, if it exists.
Commands can also take what are known as, which are intended to modify the behaviour of the program in some way.
For example, the
echo command mentioned earlier has one option you can choose to pass in:
-n. The purpose of this option is to change the behaviour of
echo, so it doesn’t print a new line after printing the user input to the command line.
As you’ve probably noticed, the command line is a lot more focused on functionality over user experience, and it’s not super apparent what some executables/commands do on the surface, such as
mkdir. Thousands of commands are out there, and it’s challenging to remember what most of them do.
If you need to get further details on what a certain command does, the easiest way to do this is often by typing
man [command] in the command line.
man is an executable used for displaying the online manual pages for system commands and other definitions.
Some executables also include a
--help option to give more information about what’s available to you or what certain arguments do.
git is a great example of this; if you type in
git --help, you’ll get a list of common commands you can use within the
git executable. If you type
git branch --help, you’ll get even more detailed instructions about how to use the
git branch command specifically, and what arguments/options are available.
The methods listed above may be a bit verbose in some cases, and might not help you if you want a certain command explained in a simple way. You can often use search engines to help find better definitions for commands, or if you’re trying to find out what command you need to use for a certain operation.
As a rule of thumb (won’t apply to everything), the names of commands are typically just shortened versions or acronyms of the function they perform. If you want to move a file, the command is
mv, copying a file can be achieved through
A tool I’ve used lately is, where you type in a command, and it’ll try to break down what each “part” of the command means.
As I’ve talked about before,. They really have no distinction between “good” or “malicious” instructions – they just do what we tell them to do.
Thus, it’s important to be cautious when entering commands directly in the command line. Unlike graphical interfaces, executing commands often comes with no warning or ability to undo, so you should avoid executing commands if you’re unsure of what they do.
The command line comes with a lot of power. It exposes low-level access to different parts of the system, so even innocuous, short commands can completely break your system or cause data loss if not used carefully.
I encourage you to do research if you’re unsure about what a command is supposed to do or why you’d need to run it. Stay safe!
Subscribe to the Nevuletter so you never miss new posts.