The command prompt in Linux can be intimidating. It's one of the reasons many people avoid trying Linux if they come from a Windows or Mac environment. For years you had to know the command prompt very well to use Linux, so many people avoided it.
This series will tackle the mystery of the command prompt, and help you learn how to use Linux better and faster.
Popular Linux distributions like Ubuntu, Pop!_OS, Fedora, etc., are very graphical. You don't have to do much with the command prompt to use Linux. However, it's still a valuable skill to have, especially if you're developing software or websites in Linux. In this series, we will dive into Linux commands, how they are used, and why we use them.
If you can't navigate around the file system, you can't do much. So in part one of this series, we'll learn how to explore the file system from the prompt.
Here is a typical file system in Linux:
You'll notice it looks a lot like Windows and Mac. However, if you notice at the top where it says
/home/jeremy, there is a file structure there, and that's what we're going to explore. Note that in Linux, we usually call folders "directories." They're the same concept, but it can be confusing at first.
Let's dive into some well known commands for navigation.
We will learn:
- How to tell where you are in the filesystem
- Change your location
- Show the objects in a directory
- Return to your home folder
- Visualize the file system
Purpose: to show where you are located on the filesystem
This stands for "print working directory," it tells you where you're at on the file system. It's handy because it's easy to get "lost" on the file system.
When I run pwd on my machine, it shows I'm in /home/jeremy:
Purpose: to navigate the file system
This stands for "change directory," and it allows you to navigate.
cd (name of the directory you want to go to)
Now this one has more than a few interesting options.
You can go into the next folder up by typing its name.
cd [name of directory]
So if I'm in
/home/jeremy and I want to go to
games I would just type in
That's a relative path. If I want to do an absolute path, I will type in
Now I'm in that directory. What if I want to go directly to my Go bin folder? I would type in
and you'll move directly to that folder:
You can cd into a directory above where you are, or explicitly.
You can also go down one directory by typing
If you want to go down two directories, you can do that too.
So let's say you're in
/usr/local/go/bin and you want to go to
/usr/local you would type:
And there you have it!
cd is a great navigation tool.
Purpose: to list the objects in a directory
ls command lists all the objects in a directory. So, we're in our
/usr/local directory. If we type in
ls we'll see this:
This isn't super helpful. I prefer something like
ls -la which shows "all" of the information about the objects:
If you want to show what's in the directories as well, type
If you want to search for a specific file name or extension, use the
* symbol. Let's say I want to find every .toml file in my directory.
I type in
ls -la *.toml. The asterisk means "everything that has .toml" at the end:
Or, we can look for "every file with the name staging in it" by typing
ls -la *staging*
ls is a simple command that can be very powerful.
~ isn't a command, but something you append to commands. It simply means "home".
if you type in
cd ~ it will take you to your home directory:
Not only that, you can create directories using ~ as a shortcut for home. You can navigate to directories under your home directory with ease.
Let's say I'm in /etc/X11/init and doing some work. But I want to get to a specific directory in my home directory.
Instead of typing out
I can type
cd ~/repos/JeremyMorganDotCom as a shortcut.
This may seem like a small thing but can add up to big savings once you get into the habit of using it.
Tree is a helpful command for visualizing a file system. As a note: this command doesn't come with all Linux distributions. You may need to install it. It's a great way of visualizing the directory layout in the filesystem where you're at. Here's an example in a repository of one of my projects.
To use it, you type:
I haven't used this one as much, but it can be helpful for confusing filesystem layouts.
Here are the typical commands for navigating in Linux. I encourage you to try them out and get comfortable with moving around. If you haven't installed Linux yet, you can still get some practice doing this. Here are some options so you can try it out on your Windows or Mac machine:
- Open Terminal on your Mac. It's the same commands.
- Install WSL (Windows Subsystem for Linux) and get a Linux installation within Windows.
- Use Virtualbox and create a virtual Linux installation
These are some ways you can try out Linux virtually risk-free. If you've already been bitten by the Linux bug, start expanding your skills with our Linux Fundamentals Path where you can advance your Linux skills quickly.
You can test your Linux skills to see where you're at:
I scored a 203, so I still have some room to grow. What's your score? Take your SkillIQ now.
Have any questions? Comments? Let me know!