Do you use a Linux computer and want to know how to make the most of the operating system? Or do you want to build apps for Linux-based operating systems?
If you answered “yes” to either of these questions, or just have a general interest in Linux, then you may be asking yourself: how do I learn Linux?
Linux, invented by Linus Torvalds in 1991, is an operating system distributed under an open-source license. Linux can be found almost everywhere in modern technology. Modern phones use Linux, as well as smart heaters and thermostats, smart televisions, the Raspberry Pi computer, and many more.
This guide will explore the best way to learn about Linux online, and walk you through several tips you can use as you start learning about the Linux operating system.
What is Linux?
Like Windows, iOS, and Mac OS, Linux is an operating system. In fact, the Linux operating system is what powers Android devices.
Have you ever wondered about the process that enables applications on your computer to run? Have you ever thought about what enables you to browse a website on a computer? Or play a game? Behind every application on a computer there is an operating system that allows you to use the hardware.
Linux was invented by Linus Torvalds as an updated version of the UNIX OS software, which he thought needed to be improved. After his suggestions were ignored, he decided to create his own operating system with all the features he needed.
The Linux operating system was launched in 1991. Shortly after, several programmers offered to help improve the operating system. Over time, it has become ubiquitous and powers everything from modern phones to smart devices.
Why Should You Learn Linux?
As mentioned earlier, Linux has a wide range of applications. It is used for embedded systems, mobile phones, and servers, among other uses. Even the Career Karma website is hosted on a Linux server.
Because Linux is so widely used in the technology industry, learning its basics and being able to navigate through a Linux operating system is a valuable skill.
If you want to become a system administrator—someone who manages servers and networks of computers—knowing Linux is almost essential because many organizations power their infrastructure using Linux.
But, even if you’re not interested in systems administration, knowing Linux can still be helpful. With a working knowledge of Linux, you’ll be able to navigate the command line more effectively, which will help you in a wide range of technical environments. You’ll also have a better understanding of how computers work.
How to Learn Linux Fast
Learning Linux is a great use of your time. But, how do you actually learn it? In this guide, we explore the basic skills you need to acquire and some of the sources you can use.
Building Your Linux Skills
Before you start building advanced applications for Linux, or installing complex software, you’ll need to master the basics of Linux. While it can be intimidating at first, once you start working in a Linux environment, you’ll get used to how Linux works fast.
The first step in your journey is to learn the fundamentals of Linux. Let’s learn about the main topics you need to know about.
The Structure of Linux
First, you need to know the structure of the Linux operating system. You should familiarize yourself with the basic components of Linux, how the operating system works, and how these components fit together.
Here are a few topics you should explore to gain a firmer understanding of the structure of the Linux operating system:
- The role of the bootloader, kernel, graphical server, and desktop environment
- Why operating systems are important
- How Linux compares to other operating systems like Windows
- What are Linux distributions?
Navigating the File System
One of the first things you need to be able to do is navigate around the file system. To do so, you need to learn the command line, a tool that allows you to interact with a computer using a terminal rather than a graphical user interface (which is what you typically see when you boot up Mac OS or Windows).
Here are the main commands you’ll need to learn to master navigating the file system:
- ls (list files)
- pwd (get current directory)
- cd (change directory)
- mkdir (create directory)
- touch (create file)
- nano (update file)
Changing the File System
Next, you need to know how to change information in the file system. You should learn how to move, delete, and update multiple files using wildcards. Here are a few of the top commands and topics you should learn about:
- cp (copy)
- mv (move)
- rm (delete)
Configuring Your Environment
When you launch Linux, a new terminal session will be created which loads all the preferences you have set. You should know how to customize this session based on your particular needs. Here are the main topics you should learn about so you can effectively configure your development environment:
- Bash profiles
- Launching new sessions
- HOME and PATH
- Environmental variables
Linux Input and Output
You should be able to redirect inputs and outputs to different files and parts of the operating system. Here are the main topics related to input and output with which you should become familiar:
- stdin, stdout, stderr
- > and >>
- < and |
Bash scripting allows you to automate similar tasks in Linux, and batch together commands into a single file. Bash scripts execute in a Bash Linux terminal.
Here are the main topics related to bash scripting that you should learn about:
- Creating a Bash file
- Loops and conditionals
- Accepting user input
Users and Permissions
Linux offers a wide range of user and permission settings to ensure that only the right users can access specific files and folders on a computer. Here are the main topics you should learn about when it comes to users and permissions:
- What is a user
- How to create a user
- What is a group
- How to create and update a group
- Read, write, and execute file permissions
We’ve only scratched the surface of what you should study when learning Linux. The operating system is so advanced that we cannot possibly list everything you need to know in one article. The above topics constitute the bulk of working with Linux, and learning them will give you a good sense of its fundamentals.
Where to Learn Linux
Due to its ubiquity, there is no shortage of resources to learn Linux for free. This is a good thing, but it can be difficult to choose the best resources.
To make the best use of your time, ask yourself how you learn best. Do you like immersive tutorials, or do you prefer following an online course? You may want to try out a couple of different methods first and stick with the one that works best for you.
Here are a few methods to learn Linux:
Following an online course is a good way to learn Linux because they combine different methods of learning. In most courses, you’ll be able to watch videos, read articles, and participate in different activities. This will help you understand and retain the course material.
Here are a few good online courses on Linux for beginners:
- Learn the Linux Command Line: Basic Commands
- Introduction to Linux on edX
- An Intro to the Basics of Linux
- Linux Essential
- Fundamentals of Red Hat Enterprise Linux
You can follow tutorials on Linux to master the command line and learn more about working with the Linux operating system. The best part of following tutorials is that everything you need to do is already in front of you, and you can usually go back to a previous step if you need to.
Here are a few good Linux tutorials:
- Codecademy’s Learn the Command Line tutorial
- Linux Tutorial by Ryans Tutorials
- Learn Linux by Guru99
Books are a great way to learn more about Linux and its architecture. Good programming books will help you understand the subject and give you a deeper insight into various topics.
Here are a few great books for beginners:
- Linux for Beginners
- How Linux Works
- The Linux Command Line
- Linux Fundamentals
Go to a Coding Bootcamp
Coding bootcamps are short, employment-focused training programs designed to teach you the skills you need to pursue a career in the technology industry.
Several coding bootcamps specialize in systems administration. Many teach Linux as part of other courses, such as web development. If you’re interested in learning more about coding bootcamps, check out the Career Karma coding bootcamp directory.
Learn by Doing
The best way to learn more about Linux is to practice.
Books and online courses are good sources of information, but there is no substitute to working with a Linux operating system to accomplish a goal.
If you want to learn more about Linux, apply the skills you have learned by trying out different commands and navigating the operating system. Create files and mess around with permissions.
Experimentation lies at the heart of learning Linux. The operating system is very versatile and there is a lot to explore.
Set a Goal
As you continue learning Linux, you may find it useful to set yourself concrete goals. Suppose you want to set up a web server using Linux. You could decide that, for the next week, you’re going to focus on learning about Nginx and Apache, which are both used for hosting web servers on Linux.
These goals will guide you and keep you on track as you learn about Linux.
If you’re struggling with motivation, remind yourself of why you wanted to learn Linux in the first place.
Did you want to build a web server? Were you looking to host your own file server? Perhaps you wanted to learn how to set up a database on your computer. Once you’ve reminded yourself of what motivates you, you can use it to guide what goals you set for yourself.
Here are a few goal ideas as you start to learn Linux:
- Create a personal cloud server
- Create a file server
- Create a web server
- Create a media center
- Create a home automation system using a Raspberry Pi
- Deploy the LAMP stack
- Create a backup file server
- Configure a firewall
- Create a proxy server
Because Linux is an operating system, there is no limit to what you can build.
Try to take on a simple project to begin with, such as deploying the LAMP stack. This will help you practice your command line skills while giving you a clear goal to work toward. Then, when you feel more comfortable navigating Linux, you can take on a bigger project, like setting up a proxy server or clustering two or more computers together into one.
Join a Developer Community
Learning Linux is not a journey you should take alone. Particularly in the beginning, it’s easy to give up when you see an intimidating error, or if you encounter a problem that you cannot solve.
Do some research into developer communities and join one or two. These communities are great places to meet new developers—including beginners like yourself who are still learning the ropes—and discuss the latest trends relevant to the topics you are learning about.
Here are a few of the top communities for people who use Linux:
- LinuxQuestions.org: Linux Questions is a questions-and-answers community specifically for Linux, and is one of the most active Linux communities on the web.
- StackOverflow: StackOverflow is also a questions-and-answers community with years worth of Linux-related questions.
- UbuntuForums.org: The Ubuntu Forums are great places for users of the Ubuntu operating system to come together and talk.
- Dev.to: Dev.to is a community of developers who talk about programming and share ideas. Dev.to has a forum thread exclusively for discussions related to Linux.
- DigitalOcean Tutorials: This site has thousands of tutorials on coding and Linux that are great for beginners and experts.
After joining a developer community, spend some time learning about its culture. When ready, try to contribute as much as possible. If you see a question you know the answer to, post a response; if you have a question, post it.
Practice Your Linux Skills
The Linux operating system is huge—the only way you’ll master it is by practicing as often as you can. The more you practice, the better you’ll get!
At first, using Linux can feel overwhelming. An essential part of learning Linux is working with the command line, which does not look as aesthetically pleasing as the traditional desktop user interface. But, the more you practice, the more comfortable you’ll be using the command line.
If you want to learn the command line, you should set aside a couple of hours a week to learn how to use the technology. In a few weeks, you should start to become proficient using the main commands we discussed earlier. But, if you want to build something more complex, your journey to learning Linux will take longer.
If you’re looking for ways to practice your Linux skills, here are a few suggestions:
- Follow online tutorials. There are a number of great online tutorials out there that guide you through everything from using the command line to creating your own file server. If you’re looking to practice your skills, take on a tutorial and build something based on the steps in that tutorial.
- Read Linux magazines or publications. The Linux community is incredibly active, and one great way to practice your skills is to stay in the loop with the latest goings on, and when you see an opportunity to learn something new, take it.
- Build a project. You can also commit to building a larger project, like creating a movie server or a cloud computing cluster. Think about what problem you want to solve using Linux, then try to build a project that solves that problem.
Practice as much as you can, and before you know it, you’ll be a master at working with the Linux operating system.
Linux is everywhere. It’s in our phones, cars, smart devices, and more.
Being able to navigate through a Linux operating system will give you a greater understanding of how computers work. In addition, you can also use your Linux skills such as using the command line to help you when you’re coding.
To sum it all up, here are the top steps you should follow to learn how to use Linux fast:
- Find the right learning resources
- Master the fundamentals
- Explore the operating system
- Build a project
- Join a developer community
- Practice and refine your skills
By following these steps, you’ll be on a great path to learning how to use the Linux operating system and the command line. But, even after you’ve learned the basics, your journey will not end: there’s always more you can learn and do to improve your skills!