156
submitted 2 days ago* (last edited 2 days ago) by Debs@lemmy.zip to c/linux@programming.dev

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.

top 44 comments
sorted by: hot top controversial new old
[-] prole@lemmy.blahaj.zone 4 points 1 day ago* (last edited 1 day ago)

Dunno about tutorial videos, but you should be aware that Bazzite being immutable is going to mean some things are going to be done differently than other distros. So make sure you're looking at solutions/tutorials specifically for immutable distros.

[-] sgibson5150@slrpnk.net 1 points 1 day ago

I found Shotts to be very helpful back in the day.

[-] LoafedBurrito@lemmy.world 9 points 1 day ago

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!

[-] ristoril_zip@lemmy.zip 4 points 1 day ago

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.

[-] tranq@thriv.social 22 points 2 days ago

Did you read tutorials or videos when you started using Windows? Probably not, you wanted to game or write or be social on the internet and you learned "on the job".

It's the same thing with Linux. Don't take it too serious. Some nerds started that rumour that Linux is "hard" and only for the techi folks. That's not true at all, it never was.

Yes, there are things that just work different and you have to find a new way to fix them. But it will come when you encounter them and we will be here to help.

Just start with Mint or Bazzite and you will be fine.

[-] passenger@sopuli.xyz 15 points 2 days ago

Linux was hard and that was true at some point though. I remember having to build kernels for Debian in order to have support for my motherboard, not sure what was the main issue there, but I had a hard time compiling them until they worked, this could be a couple days worth of trial and error...

That's history. Still, it is not some rumour as you put it.

[-] tatterdemalion@programming.dev 38 points 2 days ago* (last edited 2 days ago)

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.

  1. 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 dust and duf tools for checking space usage.
  2. 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 ip tool.
  3. 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.
  4. Monitoring. Install BTop to get a quick overview of system activity and resource utilization. I also like the procs tool as an alternative to ps.
  5. Shells. As part of your Bash journey, I'd also check out shells like fish, zsh, and nushell.
  6. 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.
  7. 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.
  8. 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.
[-] Jack@lemmy.ca 8 points 2 days ago

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.

[-] GalacticGrapefruit@lemmy.world 2 points 1 day ago

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.

[-] dream_weasel@sh.itjust.works 8 points 2 days ago

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.

[-] teft@piefed.social 23 points 2 days ago

Bazzite is going to be a little different from normal distros since it's immutable but what issues do you have? If you're truly a beginner it might not be a bad idea to pick up a linux beginners book and just read it.

[-] RalfWausE@blackneon.net 9 points 2 days ago* (last edited 2 days ago)

Honestly? Do you want the "real experience"?

Set up a VM (or a spare computer) and start an Arch install following the various tutorials.

Why?

Well, Arch may not be the best daily driveable distribution if you want just an uncomplicated experience, but setting it up from the bare bones boot medium and slowly following the (very well written) instructions in the wiki it will give you a solid foundaition going forward and UNDERSTANDING what you are doing.

Also - while not explicitly Linux and quiet a bit dated - i HIGHLY recommend to read The UNIX Programming Environment, written by the guys who are responsible for this branch of the OS evolution in the first place. It is a nice read to understand why - to this day - some things are the way they are.

Edit: Typo

[-] Onomatopoeia@lemmy.cafe 15 points 2 days ago

There's a free, 30 day program for learning Linux that may help, The Linux Upskill Challenge.

I like that it walks you through doing stuff, step by step, starting with foundations and building on it.

[-] Beacon@fedia.io 5 points 2 days ago

Your link just reloads this exact lemmy page

[-] Onomatopoeia@lemmy.cafe 2 points 2 days ago* (last edited 2 days ago)

I just loaded it, goes to the website linuxupskillchallenge.org

[-] Lumisal@lemmy.world 3 points 2 days ago

That's the first challenge to get through

[-] Successful_Try543@feddit.org 4 points 2 days ago

!linuxupskillchallenge@programming.dev

[-] Onomatopoeia@lemmy.cafe 1 points 2 days ago

Hahaha, wtf?

[-] y0kai@anarchist.nexus 11 points 2 days ago

LearnLinuxTV

This is one of many great playlists from LLTV. I cannot recommend this guy enough.

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.

[-] fan0m@lemmy.world 10 points 2 days ago

IMO I feel like what you’re doing is the best way to learn.

[-] CubitOom@infosec.pub 10 points 2 days ago* (last edited 2 days ago)

Linux is a whole OS so there's a lot you might want to look at. Luckily, if you get an error message in Linux you can search that error and find a solution.

Also helpful is reading documentation. Bazzite is based on fedora atomic so the first 2 doc links will be the most helpful. 3rd one is for general gaming on Linux. And the 4th one is the arch wiki which will give you a lot of information that will probably go over your head at this point but you might want to look at from time to time.

If you want a resource on bash specifically, here is a book.

[-] BossDj@piefed.social 8 points 2 days ago

I am also self taught. I really started where you are: installing it and trying to troubleshoot. The more I wanted to personalize my system, the more I saw frequent terms and had to learn commands etc. just on the fly. It's like full immersion learning. Do what the steps say when you look up how to fix something and you'll get it. Learning a whole language isn't necessary until you have to apply it.

[-] thingsiplay@beehaw.org 8 points 2 days ago

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.

  1. Maybe start at high level "What is Linux?".
  2. Go into "The Linux Filesystem".
  3. Learn about "Linux Philosophy and Shell Tools".
  4. 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...

[-] chaoticnumber@lemmy.dbzer0.com 4 points 2 days ago

Best teacher I had was breaking things by installing everything under the sun then trying to fix it. But its time consuming.

I would say go at it yourself, you'll learn along the way, same as you did with windows. For tips, its hard to say, see if you can get your hands on Sander van Vugt - linux fundamentals. I watched it a few years into my linux journey and it schooled my ass still.

[-] Auster@thebrainbin.org 7 points 2 days ago

Something I noticed early on is that a lot of explanations for Linux can be used, at least partially, for multiple subjects/programs/situations. Also stress can hinder perception. So when I would reach a roadblock, I left the project in the corner and came back to it a few days later. For the first year, it helped a bunch.

Also taking the time to read terminal logs when something breaks helps a bunch, either to figure out by yourself, or to search in your search engine of choice.

And like with learning a new language, the learning curve requires patience. Besides, having had the opportunity to test multiple systems, some popular and some highly specific, each was quirky even when close to a system I already knew, so maybe testing around in a virtual machine or a spare laptop to find the Linux distro that best fits you might help?

[-] Hello_there@fedia.io 5 points 2 days ago

I started saving what I put into terminal into a Google doc. That way if something gets screwed I have a record for how to undo it. Also, don't copy paste from chatgpt to terminal. And make sure the source you are using isn't 7 years old.

The terminal automatically saves the commands you've typed in. Type "history" into your terminal.

[-] bridgeenjoyer@sh.itjust.works 2 points 2 days ago

Yes save your commands. I put a commands text file on my nas so I can access from any pc. Or use joplin or another note program with sync. Save the command and a quick descriptor. Then you can even access that text file quick from within terminal using a text editor like nano or vim.

I set an alias up so if I type "command" it actually runs something like "nano /home/mnt/nas/command txt" and I can see them right there.

[-] BlackLaZoR@fedia.io -2 points 2 days ago

I started saving what I put into terminal into a Google doc. That way if something gets screwed I have a record for how to undo it.

This is a result of a horrible system philosophy. You do everything through terminal and then scratch your head a year later because you don't remember what changes you made.

This is the single worst design choices you can possibly make. Not only requiring from user to learn terminal wizardry but also manually tracking every single config change because there's no "reset to default" button

[-] Rentlar@lemmy.ca 3 points 2 days ago

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 root user (that's the admin account with total access over the operating system) or any command like sudo (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.

[-] sga@piefed.social 4 points 2 days ago

as top comment has already mentioned - try wikis. think arch wiki or gentoo. you dont have to use those distros to know about linux, just read them. and even better, spin up virtual machine, and install arch/gentoo there. since you already use bazzite, you don't have to redo stuff already done (like playing game or something), so you use the sandbox playground to just learn. if it breaks, redo, or make checkpoints.

[-] rozodru@pie.andmc.ca 2 points 2 days ago

what helped me when I first started using Linux was the Arch Wiki. Even though I wasn't using Arch the information in that wiki is invaluable. Even now that i'm on NixOS I still use the Arch Wiki as a tool when I need answers. everything is there. even man pages.

Another resource is IRC and Discord. I'm not sure if Bazzite as an IRC channel but the quickest answers to issues I was having has been via whatever distro channel on Libera. Discord also for specific distros. But I've found many of the maintainers and devs will hang out in their respective distros IRC channel all day so what better resource for help than directly from the source.

Finally either peertube or youtube channels. There are some fantastic channels that help learning this stuff. Primary of which is Veronica Explains. By far the most easy to understand and follow videos for linux. She reminds me of watching old episodes of The Screen Savers and Call for Help. Another that is great that is more specific to workflows and command line stuff is Bread on Penguins. Very easy to follow, she provides git repos and links to EVERYTHING she talks about and even writes most of it herself. For customizing your build There's The Black Don. he's great too. builds out a lot of stuff himself and provides repos for everything he's working on. He's built an awesome tool for Arch that allows reproducability similar to NixOS.

[-] Hawk@lemmynsfw.com 3 points 2 days ago* (last edited 2 days ago)

Grab an old Thinkpad and Install Arch from scratch following the wiki. It's considerably easier than e.g. Gentoo and equips you with enough experience to debug things.

Grab a note taking app like Joplin / Obsidian too.

After that try writing a pkgbuild and configuring sway/Hyprland/DWM.

Keep something simpler for daily driving so you don't get warn out (eg EndeavourOS/Fedora/OpenSuse or something along those lines).

IME Endeavour is a nice compromise between over engineered bespoke behaviour like eg Ubuntu and configuration pains like Void / Gentoo.

[-] fascicle@leminal.space 2 points 2 days ago

For self hosting I run a separate machine with unraid which basically makes it super simple.

As far as learning Linux its tough because there are so many different ways to do things it mostly depends on what you choose. For desktop I mostly just hit the super key and search for settings or whatever I need, I never really open the terminal except for the one time I needed to disable the thunderbolt reset when connecting my eGPU.

For self hosting its mostly learning about containers whether its podman which I think theres a flatpak in bazaar, or using distroshelf which is preinstalled. Or using a separate machine with something like proxmox, truenas, or unraid.

After that the most you do is go to the application store and tell the container where to save the config files and where to access data, maybe change a port if its already used.

After that you want to setup a VPN to your home with something like wireguard or tailscale

[-] Maiq@piefed.social 3 points 2 days ago

It has been a long time since my transition. I remember the journey well. I used to watch nixie does linux and a specific queries for different problems I had in both youtube and google to get what I needed.

I did a search on YT and came up with this video that was derived from the linux foundation. Only watched a few minutes bit might be a good place to start.

https://www.youtube.com/watch?v=sWbUDq4S6Y8

Welcome to linux! Lemmy is very accepting and helpful for your questions as well.

[-] HubertManne@piefed.social 0 points 2 days ago

what distro are you using. I have not really had to do anything with my laptops except install.

[-] Debs@lemmy.zip 2 points 1 day ago

I'm using bazzite because I heard it is gaming focused. It runs fine but I keep running into little things. For instance, I couldn't get a game that was supposedly steam deck verified to run. I eventually got it working. Just had to tinker for a few hours.

[-] definitemaybe@lemmy.ca 1 points 1 day ago* (last edited 17 hours ago)

Probably not a helpful suggestion, but CachyOS might be a better fit for you.

Bazzite is an immutable distribution. This means that most things on the system are static between major Bazzite versions, at which time everything updates at once. This can be great; for someone who doesn't want to tinker, or for someone who's worried about breaking things—it's very hard to break.

On the other hand, it also means that everything is running on an older version, with bugs that have been fixed in newer builds.

CachyOS is Arch-based. You can configure everything in the system, and can update all your packages to the most recent versions as soon as updates are compiled in the CachyOS repo. The CachyOS repos are fairly extensive, but you can also install most other things from the Arch User Repository (AUR). The AUR is a bit of a "Wild West" where packages may not install or work dependably, but in most cases they work great... albeit sometimes with a bit of tinkering required.

Your example of getting a "Deck Verified" game to run is what prompted this for me; CachyOS comes pre-installed with 2 versions of Steam (native and non-native), a bunch of versions of Proton (Valve's stable/experimental, GE, and I think more?), Heroic launcher, and Lutris launcher. So, you have like 8 different configurations to try just from toggling things that are pre-installed, lol. I haven't had a game not work for me yet.

You also mention self hosting; in CachyOS you can install Docker or Podman from the CachyOS repos and then run a Docker image. They almost always "just work" without any tinkering needed, so you can jump right into setting up your configuration/settings. Or, if your prefer a more integrated solution, just about everything will be in the CachyOS repos or the AUR (but expect to put more work into it.)

Bazzite might be holding you back a bit, and it sounds like you might not need the "safety" of an immutable distro, while its limitations might be getting in your way.

[-] HubertManne@piefed.social 1 points 1 day ago

ah ok. that explains it. I just do regular things and pretty much just game on my steamdeck now.

[-] RindoGang@lemmygrad.ml 1 points 2 days ago* (last edited 2 days ago)

The best advice I can give you is to switch to a harder distro like Arch Linux and keep trying until you get it right

Don’t ditch Windows yet, keep it as a backup OS while you learn how to use Linux

[-] audaxdreik@pawb.social -1 points 2 days ago

Honestly, the way I learned Linux best after a numerous failed tries over the years was switching to Arch. It gets a lot of crap from the online community, especially regarding its users, but I think it's an excellent distro especially for people at a moderate to advanced level.

First off, the archinstall script makes the actual installation process - notoriously one of the hardest parts of using the distro - much easier. It comes with a barebones set of components installed to get you up and running.

From there, you just start to think of the things you want to do with your system and begin building it out piece by piece. Consult the Arch wiki for a number of application options and then pick one. Usually there's some additional configuration involved, not much, just a config file that needs tweaking or something, but this helps you learn things slowly. It also guarantees that if that particular thing breaks in the future, you have a better idea of what might have gone wrong and where to start looking because you previously set it up (somewhat) manually yourself.

Occasionally you'll stumble across something on your system that's not working the way you thought it would and it's because you needed to manually install some additional component or dependency yourself. So again you consult the wiki and just do that. It's about slowly building the knowledge.

When you're finished you have a highly customized system with only the components you wanted and a better knowledge of it all.

[-] Wolf314159@startrek.website 1 points 2 days ago

Recommending Arch to a self professed Linux and CLI noob? What could possibly go wrong?

this post was submitted on 01 Dec 2025
156 points (98.8% liked)

Linux

10355 readers
904 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS