As someone who grew up using windows, is there a series of tutorials or videos y’all recommend to learn Linux? I find myself running into issues, trying to find solutions online, and not even understanding the instructions. I’m sure most of this comes from not knowing bash (which I’ve started to learn using https://labex.io/linuxjourney).
Background: I’m a very competent windows user. I’ve built my own PC, etc. I mostly use it for gaming and Internet now but want to start self hosting some things. Oh, and I’m running bazzite.
Anyway, just trying to get out from Microsoft’s thumb.
Cheers.
Edit: thanks for the replies everyone. I haven’t had a chance to read through them all yet; the whole family is suddenly sick.
Linux is broad and deep so it would help if you gave some examples of tasks you are failing to do.
Edit: I guess I can give some fundamental topics for your search, but I don’t have many resources at the ready.
For starters, many topics will apply to all of Unix, not just Linux. So make sure you understand the difference, and learn about the Unix philosophy.
Also, I think the most useful piece of documentation is the Arch Wiki. I’d always check here first. The table of contents should give you a good idea of the scope of information.
- Filesystems. In Unix, everything is a “file”. Explore the directory layout. Maybe learn about the FHS (filesystem hierarchy standard) and XDG. Learn how file permissions and ownership work. Learn about disk encryption with LUKS. Learn about GPT partitioning and EFI boot partitions. If you want to manage a filesystem spanning many storage devices, I highly recommend looking into ZFS. You might also want to set up some kind of file service like NFS or something with a web client like copyparty or dufs. Try out the
dustandduftools for checking space usage. - Networking. I don’t know how deep you need to go here, but Linux networking is highly customizable. I think most distros use systemd’s built-in DHCP client in systemd-networkd. Have a look at nftables if you want to mess with firewalls. Wireguard for VPN. Learn to use the
iptool. - Remote Access. Especially for a desktop, it’s very useful to set up an SSH service on your PC so you can access it remotely from e.g. a laptop. You can even SSH over the public Internet using a VPN.
- Monitoring. Install BTop to get a quick overview of system activity and resource utilization. I also like the
procstool as an alternative tops. - Shells. As part of your Bash journey, I’d also check out shells like fish, zsh, and nushell.
- Package Management. I’m not very familiar with Bazzite’s package manager. It’s an immutable distro, so that will make a difference. Read the bazzite docs for this I guess. You’ll probably need to learn about flatpaks. I’d recommend checking out Nix if you want to try something different. I also quite enjoyed Arch’s pacman if you’re willing to try a new distro like CachyOS or EndeavourOS.
- Dotfile management. I recommend learning some basic Git or Jujutsu (jj) and managing your configuration files in a git repository. You can also do this with Nix via Home Manager.
- Desktop Environment. I don’t know which variant of Bazzite you chose, but it’s probably a complete DE out of the box. Just know that you can customize your DE quite a bit. I personally enjoy tiling window managers; you might want to check those out.
- Filesystems. In Unix, everything is a “file”. Explore the directory layout. Maybe learn about the FHS (filesystem hierarchy standard) and XDG. Learn how file permissions and ownership work. Learn about disk encryption with LUKS. Learn about GPT partitioning and EFI boot partitions. If you want to manage a filesystem spanning many storage devices, I highly recommend looking into ZFS. You might also want to set up some kind of file service like NFS or something with a web client like copyparty or dufs. Try out the
I was in the same boat about 12 years ago. Linux was much more difficult to get working well back then, but now, it’s just slightly more work than windows.
I learned by trial and error and I don’t keep any sensitive files on my OS hard drive, so if I screw up, I don’t lose anything.
For instance, someone recommended Endeavor OS a few weeks back and I had never heard of it. After using it for a week, I realized the arch community and OS isn’t for me and I’m more of a beginner. So I switched over to mint Cinnamon which I use on my Plex server. Got everything setup and working within and hour and I don’t have any issues like I did on my past Linux distros.
It’s super easy to use these days and I love it!
Second Mint here. I made the switch on my new PC and on my old one when I handed it down to my son. We’re both doing great.
You can instead try a distro that just works on most hardware, like Linux Mint or other easy-to-use distros suggested in this thread. That way you can slowly learn how to use Linux if you want, while using Linux, so you can later use a more finicky distro more suited to what you want.
For years I used Ubuntu, but when GNOME 3 came out I changed to Xubuntu, and then when Snap came out I changed to Mint Xfce. I’ve used several 2nd-hand desktops and laptops over the decades, so brand-new hardware might be more problem-prone.
I started off trying Slackware, SUSE, and Mandrake; but struggled too much with them so I stayed with Windows. Ubuntu just worked for me, so it allowed me to easily ditch Windows. Years later, I had update problems when I tested MX Linux and Debian, but instead of trying to fix it, I personally found it easier to just look for a distro better suited to the way I want to use my computer.
I see that OP has already gone off to do other things, but I agree with this. Ubuntu is fine for bare functionality like running a server, but as a beginner (or a very tired expert) Mint or Pop! is where you want to go for the long-term. Literally damn near straight out of the box functionality.
Kids these days have it easy. Back in my day, we had to git clone source code from random github pages we stumbled across in chatrooms. It was like delving into the darkest part of the hidden library, knocking thrice upon the door, and pleading for mercy and wisdom from the Greybeards.
It sounds like you are already doing it! Fixing annoying stuff as it comes up feels painful and tedious, but that’s the good instruction you’ll remember. Hopefully you aren’t hitting too many work stoppage type issues. Definitely reach out for help for those, but be prepared for uptight people to tell you “RtFm noOB”. You’ll get it done.
My only advice is to give a little bit of time to learning at least basic bash commands (search and print a cheat sheet) and basic Vi / Vim. Vim is what got me to Linux in the first place to be honest. Those 2 things will give you the latitude to move around and work on any issue you might come across as any user even if you “break” something.
Good luck! You’re already doing the hard stuff.
IMO I feel like what you’re doing is the best way to learn.
I want to say, it takes a while to learn many stuff in Linux. You didn’t learn everything of Windows in one video or blog post either. And in Linux, its even “worse”, as it is open ended with many operating systems and replaceable parts. That means its by design more to learn than on Windows. I’m just setting expectations. “Learning Linux” is not a single event or product you learn, and you hopefully never stop learning.
- Maybe start at high level “What is Linux?”.
- Go into “The Linux Filesystem”.
- Learn about “Linux Philosophy and Shell Tools”.
- That should lead you into scripting with “Bash”.
That should give you a bit of background and basics to start with. Just search these terms and start learning and experimenting. Plan years into learning…
I learned a lot from Raspberry Pi tutorials; that’s where I got my start.
Bazzite might be a bit of a tough one to get your hands dirty in; it’s an immutable distro, it locks down the guts of the OS kind of like Android does. Useful for gaming appliances, not so much for learning to sysadmin.
Bazzite is a great distro if you want to jump in and start playing games and getting the software you need to use your computer. The intent behind bazzite seemed to me that it should be accessible enough for non-technical users but provide access to a large library of programs in just a few clicks. It has a few quirks that make it different than other Linux distros if you pick it apart.
Have you ever used command prompt, batch scripts or PowerShell on Windows? That’s what BASH, shell scripting or ‘the terminal’ is equivalent to on Linux (and mac sorta). It’s the virtual scalpel you can use to tinker, fix, control, or totally screw up your system. If you don’t have important data to lose, then feel free to just try whatever and learn from mistakes you make along the way. If not, then backups are your friend, and be EXTRA careful doing anything as the
rootuser (that’s the admin account with total access over the operating system) or any command likesudo(it might even lecture you about it once)For self-hosting, if you have a spare machine you can just try experimenting on it to your heart’s content. If your search-engine skills are good enough then you should be able to fumble your way through install instructions or tutorials. Another alternative is you could rent a VPS and optional domain for <$90/year, which then you can learn about SSH (secure shell) and fiddle with a computer remotely for fun.
People here can probably give you advice or support, if there’s a specific problem you’re having and you’ve couldn’t figure it out from the documentation and search.