VOOZH about

URL: https://thenewstack.io/learning-linux-start-here/

⇱ Learning Linux? Start Here - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2024-09-08 06:00:25
Learning Linux? Start Here
tutorial,
Linux / Operations / Tech Careers

Learning Linux? Start Here

Learning Linux has never been easier. There are plenty of resources out there. This article offers ideas about specific topic areas to cover and when to cover them.
Sep 8th, 2024 6:00am by Damon M. Garn
👁 Featued image for: Learning Linux? Start Here
Feature image via Unsplash.

Learning Linux has never been easier. There are plenty of resources out there, lots of opportunities for hands-on experience, and more user-friendly distributions than ever. The biggest challenge you might face is how to approach your learning plan.

This article offers ideas about specific topic areas to cover and when to cover them. Use it as a learning plan to prepare for a job change, certification exam, or new development project. It maps to current (and future) articles that I and others have written on The New Stack that provide more depth and explanation.

Hands-On Is Critical

Working at the command line is intimidating to many newer IT people. It’s a necessary skill, however, and once you get comfortable, you’ll find it’s easier than expected. Command line administration offers capabilities graphical interfaces don’t have, including:

  • Scripting: Commands can be placed in text files that the system executes, enabling complex automation tasks that can be easily kicked off with a single command.
  • Speed: Command-line interfaces are typically quicker than mouse-driven interactions for those familiar with Bash (which includes tricks like tab completion and history for greater efficiency).
  • Additional options: Graphical interfaces often only include standard tasks in their menus, while commands typically have many additional features, options, and parameters that may be essential but less commonly used.
  • No graphical interface required: Unlike most Windows and macOS installations, many Linux servers do not include a graphical interface due to its additional overhead. In these cases, command-line administration is the primary option.

Building a lab environment consisting of two or three Linux virtual machines will make learning the following skills easier. Nothing beats hands-on experience!

Don’t forget to use the man pages when you forget command options or subcommands.

Today, most Linux distributions require users to log on with a non-privileged (non-root) user account. Users can then elevate privileges for specific delegated tasks by using sudo. Avoiding root logins is considered a Linux security best practice.

Learn Access Control Methods

Managing access to files and folders is a critical Linux sysadmin skill. Access control begins with user accounts, which establish a user’s identity. These accounts may be placed in groups for easier management.

Command: Description:
useradd Create a user
usermod Modify a user
userdel Delete a user
groupadd Create a group
groupmod Modify a group
groupdel Delete a group

The computer also maintains basic resources, such as files and directories. Administrators and users create, modify, and delete these resources. Mastering the various commands for managing files and directories enables you to work with these resources efficiently.

Command: Description:
mkdir Create a directory
touch Create a file or update its timestamp
ls List the contents of a directory
cd Change to a different directory

Once the system understands who a user is and what file resources exist, it can enforce access controls. Permissions are associated with files to specify exactly what accounts have what privileges. This access list is checked whenever a user attempts to manage a file.

Linux permissions differ from Windows access controls. There are three levels of access (read, write, and execute), and they are applied to three identities (the user (owner), one group, and everyone else) using commands like chmod and chown. Linux permissions are simpler to manage than Windows permissions but somewhat less robust. Features like Access Control List (ACL) permissions do add significant functionality.

Learning to manage users and permissions is a cornerstone of Linux administration, so be sure to master these skills.

👁 Image
Figure 1: The ls -l command displays directory contents with permissions.

Manage Hardware, Services and Processes

The purpose of a Linux server is to provide services. These services could include file storage, printing, website access, database hosting, and more. Before deploying a service, determine whether the system has the hardware capacity to support the role. Linux includes many built-in commands for reporting hardware, including top, lshw, and more.

Modern Linux distributions typically rely on systemd to manage services. You interact with systemd using the systemctl command and a series of standard subcommands. These allow you to start, stop, restart, enable, and disable services. The primary task is usually restarting a service, which is necessary for configuration changes or troubleshooting.

Command: Description:
systemctl status {service} Display the current status of the service
systemctl stop {service} Temporarily stops the service
systemctl start {service} Temporarily start the service
systemctl restart {service} Restart a service after a configuration change
systemctl enable {service} Cause a service to start when the system boots
systemctl disable {service} Prevent a service from starting when the system boots
👁 Image
Figure 2: The systemctl command has many subcommands for service management.

Processes are instances of running code. These may be parts of Linux itself or related to services and applications hosted on the system. Sysadmins review these processes during performance monitoring, security audits, troubleshooting, etc. Reviewing processes lets an admin know what’s happening on the Linux device.

Evaluating hardware and managing services is a vital skill for Linux users. If you’re using a learning plan to organize your Linux studies, work with these concepts and utilities as a single unit.

Choose and Deploy a Linux Distribution

Microsoft and Apple only sell and maintain a small number of operating system versions. Due to its open source nature, Linux enables anyone to create distributions, and it does not enforce OS versions with the same discipline as closed-source OSs. The result is that thousands of versions of Linux are available, and selecting one is often difficult.

The term distribution refers to a combination of a Linux kernel, various applications, and a purpose. Distributions are often specialized for a particular role, such as end-user workstation, web server, or IoT operating system. Choosing a distribution means finding (or creating) one that matches your purpose.

👁 Image
Figure 3: DistroWatch maintains news and lists of the most popular distributions.

You must also pay attention to installation options. Will you install Linux on bare metal hardware or a virtual machine? Will it be local or cloud-based? What processor will it rely on (Intel or ARM)? How much RAM, storage capacity, and network access will it require?

Finally, initiate the installation process. Most modern Linux distributions use an installation wizard to simplify the process.

Developing the knowledge to select and install a Linux distribution prepares you for deploying specialized Linux versions to users, servers, cloud environments, IoT ecosystems, and more.

Maintain the System

Linux deployments may be around for years. It’s an extremely stable and long-lived operating system, making maintenance a key concern. In addition to the usual kernel and application updates, keep an eye on storage capacity. This seems to be the one resource that always gets consumed. Files stored on a local Linux workstation or server may fill the storage space. High access times will annoy users, so keep storage capacity at reasonable levels and upgrade when necessary.

👁 Image
Figure 4: Commands like df display hardware utilization information.

Log files maintain a record of system activity so you can evaluate performance, security, and general health. Make a habit of checking logs regularly. Centralizing log files for easier archiving and analysis across many systems is also a good idea. The Linux rsyslog service makes this process straightforward.

Package managers simplify application maintenance. One of the most confusing aspects of Linux for new users is that various distributions rely on different package managers. There really isn’t a universally agreed-upon tool for deploying, updating, and removing software. Plan to learn whichever package manager your chosen distribution uses.

Distribution: Common package manager(s):
Red Hat and related dnf, yum, rpm
Debian and related apt
SUSE and related zypper

Linux stores operating system, service, and application configurations in text files, so changing those settings means editing the files. Linux text editors were originally designed for command-line-only environments since graphical user interfaces are optional with most Linux distributions. It takes practice to gain proficiency with these text editors. At a minimum, learn to open, edit, save, and close text documents with Vim and Nano, the two most common editors found on most distributions.

Configure Networking

Linux integrates into IP-based networks easily. Administrators may configure static or dynamic IP addressing and monitor networking with standard tools like Nmap and Wireshark. It’s also critical to allow and deny the correct traffic to and from the system using a firewall. Virtually all Linux distros include a firewall, though its interfaces vary. Most firewalls default to a “deny all” configuration, expecting administrators to manually specify exceptions for permitted traffic. Some firewalls assume a few basic protocols and leave ports open for those. The remote administration tool SSH is a great example.

👁 Image
Figure 5: Some firewalls have preconfigured allow rules.

And speaking of SSH, implement key-based authentication for easier SSH connectivity. Key-based authentication also enables centralized configuration management, allowing automation tools to connect to remote systems without user intervention. This feature is critical for scaling resources, managing security, and deploying application versions.

Steps: Description:
ssh-keygen Generate a unique public-private key pair
ssh-copy-id remotehost Copy the public key to the remote host
ssh remoteuser@remotehost Initiate a remote connection using SSH

Wrap Up

Be prepared for a significant effort if you plan to learn Linux. The payoff is big, however. You’ll be able to assemble a system that provides services to users, offers secure daily use, or optimized for programming. Mastering the command line gives you greater speed and automation opportunities, too.

Use the categories above as part of a learning plan, then develop the individual skills listed in each to maintain focus without being overwhelmed. When you’re comfortable with these topics, you can explore additional areas, such as web server configuration, automation, and more advanced storage options.

Remember that Linux is also the primary cloud platform. Many of the skills you’ll learn for physical Linux server management also apply to cloud VMs and containers.

Start your journey toward Linux system administration today, and be ready to work with this powerful and versatile operating system.

TRENDING STORIES
Damon M. Garn owns Cogspinner Coaction, LLC, an IT writing and editing company. He authors articles, tutorials, and labs for today’s top IT industry leaders. He regularly contributes to The New Stack, TechTarget, and CompTIA. Damon has 20 years of...
Read more from Damon M. Garn
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.