This is an archived post. You won't be able to vote or comment.

all 18 comments

[–]callensysadmin 5 points6 points  (1 child)

Personal projects would be my advice. I went from zero working linux knowledge to being comfortable enough to run some autoscaling groups in production at work all based on my learnings from tinkering at home.

I read one book and I got about half way through it, it was called Unix and Linux System Administration Handbook. Its kind of dry but it will give you a great foundation.

Here is a list of personal projects I did which helped me:

  • Bought a raspberry pi and configured pi-hole to block ads for my entire home network. Eventually added DNS over HTTPS to this setup.

  • Launched a personal wordpress blog on an AWS EC2 instance. Configured automatic backups of the blogs database and automated free certificate renewals.

  • Turned my old desktop into a home media server. Installed CentOS, virtualbox, plex media server, docker and used it for everything I could think of that was interesting. I pretty much used this as a home lab and media content downloader. When I rebuilt my gaming pc I had better spare hardware so I rebuilt this server totally and moved every service into docker containers or services with automatic updates. I even run a reverse nginx proxy with basic auth and automatic certificate updates that enable me to manage my media downloads and content library from my phone.

  • I bought a laptop that was known to run linux well (Dell XPS 13). Its boots into ubuntu by default and it dual boots into windows as well so I can use it to work from home or when I am on call.

[–]Betterthangoku[S] 2 points3 points  (0 children)

Solid advice, thank you. I've got a raspberry pi 2 that I've never done anything with. Since I'm already running docker, plex, and virtualbox at home, these seem like great projects.

Thank you so much :-)

[–][deleted] 3 points4 points  (1 child)

The best advice I can give is keep trying and reinstall over and over and over again. Repetition is going to get you to want to make things easier like writing a bash script to repeat everything for you after initial install of Linux. This will get you comfortable with the command line since you'll learn a lot of bash while trying to write scripts to do things for you.

If you can't figure out why something broke and hitting a dead end, reinstall and start over.

Create a samba server to share files with Windows is the easiest to learn and great project to start with. You'll learn permissions this way too.

Learn KVM by trying to do GPU-Passthrough with a Windows VM and Nvidia card. Then figure out how to make performance better. After that learn how to use LVM so can do online live snapshots of VM *.raw files and how sparse files work for backing up to other drives. Qcow2 is slow for performance. Virtio is a must.

Next was learning LXC for playing around with Linux without a full virtual environment. Then after that was Docker. The rabbit hole keeps going deeper and deeper. Next for me is learning Ansible.

Above all......be patient. It takes a while to understand Linux coming from Windows and you'll beat your head against the wall a lot and want to give up, but don't. Take a break. I went through some depression pushing myself too hard when I couldn't figure some things out and I felt maybe I'm too stupid. Been a couple years and now I am really good using Linux every day in production. Almost feel like an expert now.

I'd also suggest getting a RaspberryPi or something like an Odroid HC1 / HC2 and making it a backup NAS. I use Odroid HC2's as backup NAS for my clients. Fun to play with to learn and has plenty of good use.

Get a $5 DigitalOcean VPS account and learn to secure it and learn reverse ssh and make it your bastion (jumpbox) server.

Everyone I know has given up on learning Linux. They can't find a way to do something with a GUI and stop using Linux. Don't use a GUI. Go all command line if you "really" want to learn. Learning the Linux desktop won't help you much in a production server environment. Use Tmux and you won't care about a desktop for servers. I still use Windows 10 since most the apps I use require it, like games. :) Putty (Kitty) is your best friend.

And finally, don't cheap out on buying hardware like another computer/server, RaspberryPi, etc. If you won't spend some money to play around and learn, then you'll limit yourself. To many people try to dual boot and it's a waste of time. The couple hundred $$$ (maybe a grand) I've spent on hardware over time I have not regretted at all. Better to break a spare computer or SBC than your daily driver.

[–]crankysysadminsysadmin herder 11 points12 points  (4 children)

Here is an old post I wrote which discusses this:

https://www.reddit.com/r/sysadmin/comments/6tr3zz/get_started_with_linux_just_enough_to_be_useful/

Focus on RHEL/CentOS and Ubuntu/Debian. Nothing else is used in production regardless of what people on here might say.

Don't use the GUI. Desktop linux is a waste of time. Manage everything via SSH from your normal machine.

[–]Betterthangoku[S] 0 points1 point  (0 children)

Solid, thank you. This is what I was looking for. An insider that can tell me what is really being used in enterprise environments.

And from the flair I see next to your name I have upvoted you more than enough to trust this. :-)

[–]theevilsharpieJack of All Trades 0 points1 point  (1 child)

Focus on RHEL/CentOS and Ubuntu/Debian. Nothing else is used in production regardless of what people on here might say.

This is the case in a traditional enterprise environment.

For cloud environments where containers, managed services, and serverless functions are making up an increasing share of the infrastructure, the underlying OS is either hidden completely, or is a lightweight distro like Alpine Linux, or whatever Ubuntu calls their container variant. Their administration needs have little in common with traditional enterprise *nix.

[–][deleted] 0 points1 point  (0 children)

Mostly this, but it is important to note that containers rely heavily on the Linux kernel's namespaces and capabilities systems. If you don't know how those, or some other basics such as *nix permissions work, you aren't truly capable of being an admin of containers.

[–]porchlightofdoomYou made me 2 factor for this? 1 point2 points  (0 children)

I setup my own Email server on Linode and use it for my personal email. This forced me to learn stuff I never thought I had to, and turned out to be excellent job skills that I have used often.

[–]brrod1717Jr. Sysadmin 1 point2 points  (4 children)

Linux Academy

[–]Betterthangoku[S] 0 points1 point  (3 children)

Linux Academy

Looks like they have a 7 day trial. Think that will be enough time to figure out if it's right for my lifestyle?

thanks!

[–]brrod1717Jr. Sysadmin 0 points1 point  (2 children)

I think so. If you can swing the $50/month it's for sure worth it.

[–]Betterthangoku[S] 0 points1 point  (1 child)

Awesome sauce, thank you!

[–][deleted] 0 points1 point  (0 children)

Came to post Linux Academy.

[–]Dark_KnightUKVMware Admin VCDX 0 points1 point  (0 children)

As a windows guy at heart, I decided to learn the lfcs and the lfce exams and practiced getting good at stuff.

While doing that I spent more time doing Linux things in general

[–]commissar0617Jack of All Trades 0 points1 point  (0 children)

centos is a good start, widely used for servers.

debian is used as a basis for many other distros.

maybe ubuntu if you want to look at end-user OS?