What do I need to do/learn in order to become a good Linux SysAdmin?

Posted August 10, 2019 2.8k views
Linux BasicsGetting Started

I just graduated high school and I really want to get into Linux system administration. As there are a lot of experienced people here, can you tell me what was your path to success and how did you become Linux SysAdmins?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer


I would say that it is a never ending process, there are always new things to learn every day so you need to stay motivated and curious.

I think that the following would be a solid starting point:

  • Programming basics:

I believe that everyone should have some basic programming knowledge. I think that the programming language does not matter that much, you just need to make sure that you are familiar with the basics. You can start with Python, Java, PHP or any other language. My personal favorite is PHP just because I’ve been using it for a while now. Here’s a link to a cool guide that you could go though:

  • Linux basics:

Get some administration experience in Linux. You should strive towards developing a good working knowledge of Linux using both the graphical interface and the command line, covering the major Linux distribution families.
I recommend this free Introduction to Linux course from the The Linux foundation:

The best way to learn is by doing, so don’t forget to deploy a few droplets on DigitalOcean and get your hands dirty!

  • Networking fundamentals:

Learn the basics like the OSI model, clients and servers, protocols, IP addresses, network hubs, switches and cables, routers and firewalls. This would be extremely benefitial for your future career. There are a lot of coureses online, I’ve personally have gone through this one on Udemy.

  • BASH Scripting:

As a good sysadmin you should know how to read and write BASH scripts in order to automate your daily tasks and speed up your deployment process. I would recommend the Linux Academy website for some good quality courses!

  • Popular services

I would also suggest going through the installaton and the configuration of some popular services like Apache, Nginx, MySQL, PostgreSQL, MariaDB, PHP, Django, NodeJS, Exim, Postfix, Redis, Memcache and basically any other that you find treninding on the internet just so that you could get a better feel of the whole installation and setup processes

  • Monitoring

Play with any monitoring systems that you can find, monitoring is an essential part! I would recommend starting with Nagios as it has been in the industry the longest, also Prometheus is quite popular nowadays.

  • The basics of Windows server administration

Soner or later you would be asked to execute some basics tasks on Windows servers so you should at least have some basic understanding and know how to manage windows servers as well. I would recommend going though this free Windows Server Administration Fundamentals on the Microsoft website and I would also suggest playing around with IIS and MSSQL a bit:

  • Keep exploring

Once you’ve mastered the basics of Linux, Networking, Windows, Virtualization and Scripting you should stay motivated and keep learning new things like:

  • Virtualization - VMware
  • Containers - Docker
  • Container Orchestration - Kubernetes
  • Public cloud servers
  • CI/CD And more..

Hope that this helps!


  • Hi guys,

    I fully agree with bobbyiliev’s suggestions.

    My advise would just add on top of the last comment. What I would recommend is starting small. Don’t dive too deep into everything at the beginning, start with one topic finish it and then go to the next.

    Before you start, install a Unix system. It doesn’t matter which, whether it’s Ubuntu, CentOSor or Linux Mint just give it a go. Get used to the terminal. The beauty of Linux is that you don’t need a GUI, everything can be done better and faster in the terminal. Learn the basic commands, use them to fasten your results.

    Let me give an example, you wan’t to find a file in your system? Use the terminal to do so.

    Let me give you one more

    You have a set of files you need to go over them and find which ones contain a certain string, don’t go through them manually, do it again in the terminal. The first approach will take 10-15 minutes, the second will take less than 30 seconds.

    That’s my first advice, my second one is to go through some courses with the one that I would mostly suggest being LPIc 1. It will build on top of your knowledge and show you best practices of what you’ll do everyday. It’s a great starting point and there are a lot of material that will help you understand this topic.

    As a starter, I feel these things are essential and shouldn’t be overlooked.

    Kind Regards,
    Kalin D.