I’m talking about like your mom if she started using Linux, and just needs it to be able to open a web browser and check Facebook or her email or something. A student that just needs a laptop to do homework and take notes, or someone that just wants to play games on Steam and chat on discord.
I’m working on a Windows - > Linux guide targeting people like this and I want to make sure it can be understood by just about anybody. A problem that I’ve noticed is that most guides trying to do something like this seem to operate under the assumption that the viewer already knows what Linux is and has already made up their mind about switching, or that they’re already pretty computer savvy. This guide won’t be that, I’m writing a guide and keeping my parents in mind the whole time.
Because of this there’s some things I probably won’t talk about. Do these people really need to know that it’s actually GNU+Linux? No, I don’t think so. Should I explain how to install, use and configure hyprland, or compile a custom gaming kernel? I dont think that’s really necessary. You get what I’m saying? I don’t want to over complicate this and scare people off.
That being said I also want to make sure that I’m not over simplifying by skipping on key things they should know. So what are some key concepts or things that you think even the most basic of Linux users should understand? Bonus points if you can provide a solid entry level explanation of it too.
Contrary to what others write*: Yes, the terminal.
It’s not that you can’t get by without it on many distros, for most things. But for even for medium and non-techy users, getting the fear of the terminal out of the way early will make their journey much, much smoother. It doesn’t have to be much, no shell scripting or anything, just the basics, conceptually what a terminal is, what the shell is, how to execute stuff, maybe
chmod +xto execute, other utilities likels,cp,mv,mkdir. maybe symlinks/ln. That’ll be enough to take away the fear if they see any “Now do this in the terminal” advice online (which they absolutely will, let’s not delude ourselves), and maybe enough to get them to notice that “huh, sometimes the terminal is more convenient, they weren’t bullshitting when they said that”.*) Since you asked about “beginner Linux users” and not users that “just want to use their computer and not think about the OS at all”, I’m pretty confident about that assertion.
PS: I really think that’s not too much too ask. I remember my mother learning DOS commands back in the day for a regular desk-job. Everyone can do this, it’s not difficult, people just have to let go of a few false preconceptions drilled into them by the industry (MS, Google and Apple).
If it can’t be done in the GUI, it’s not worth doing. If that includes something a basic user would need, the that’s a failure of the OS.
True, especially the part about your mom and others that had to use PCs in the 90s and 80s. I suck with a lot of CMD/PowerShell/Terminal stuff and get really in my head about whatever I am doing. Though a lot of it is due to things like switches and formatting order. Can be very very frustrating if there are a lot of them and having to constantly look at what they mean since they aren’t just regular words (which would obviously make the amount of typing get out of hand). The other main issue for me is dealing with moving or copying things around. GUI is much easier to get due to being able to see it in the same way I would move/copy things IRL. Especially frustrating if using USB drives, since they don’t just auto-mount/assign a letter if only using something without a DE. That part is (for me) a headache to have to deal with since the same OS will just do that if a DE is used. But also not something I do every day (or very often as I mostly use Linux when messing with my Pi).
But your core point of just doing it is very true. The reason that folks in offices in the 90s and 80s were able to get used to it was because they had to, and that there was a reason to at least know the things to do what they needed. They didn’t have to get bogged down with all of it (or even need most commands). So it would be best to focus on the things that are needed to get daily things done. Then it makes a lot of other bits easier to handle later on. And a lot of common things can be printed/written on cheat sheets or getting stickers with common commands to put on the side of the case or stuck to a desk in easily glanced at locations.
The other main issue for me is dealing with moving or copying things around.
I don’t think anyone needs to do a lot of file-management on the command-line. GUI file-managers are perfectly fine for home-directory stuff, USB-drives, network directories etc., but you’ll run into problems when accessing system files. There’s also TUI file managers like Midnight Commander which some would probably consider the best of both worlds. I personally prefer dired on Emacs (and Emacs in general to most terminal based applications).
As I said in the beginning of my comment, you can do 99% of your daily Linux desktop usage in the GUI, and you don’t have to be used to or fast with the terminal. I just want new users to get rid of that fear, so that when they need to do something with it, they’re not giving up or putting it of, but read and try their way through it and maybe learn something cool. Every Linux user (managing their own system) will need it once in a while and that’s probably not going to change in the near future.
And a lot of common things can be printed/written on cheat sheets or getting stickers with common commands to put on the side of the case or stuck to a desk in easily glanced at locations.
I’m a developer and pretty experienced with the terminal, but I still do this. Not printed out or anything, but for each program with complex switches (like ffmpeg, qemu, docker, git, curl) I have an entry in my personal Wiki (also Emacs: org-roam) giving me a quicker overview over things I’ve already figured out in the past than a man-page can provide (it doesn’t hurt though that Emacs has a pretty great man-page viewer too).
Backing up a copy of that config file, before editing it.
If you brick or break anything, rolling back to a working-state is much easier.
--//–
You can manually cp a 2nd version of the files, or there are tools to automatically backup for you.
That it is another OS. It’s not Windows.
That it is another OS. It’s not Windows.
I used to feel that mattered, but today websites will detect my OS when it matters and just pick the right page (i.e. downloading something).
Then I double click the download to install it.
I, a tech nerd, forget what distro I’m running and eventually have to look it up, when I’m doing something weird enough that it matters.
For day to day stuff, I’m not sure that knowing my OS comes up anymore.
cd command.
No joke, when I started, it was the thing I stalled on the most as it’s so basic no one explains
I think the biggest fundamental concept for any computer regardless of operating system is filesystem hierarchy. The concept of nested folders is core to using a personal computer, but for the last two decades UI/X teams have done everything in their power to obscure and abstract it away. Many younger people conceptualize the storage on their device as just an amorphous blob that apps manage autonomously. Windows is starting to go this way as well with OneDrive being sold as the way to manage all your data, but on Linux the file system is still king.
Your mom is presumably old enough to have some experience with desktop PCs, so hopefully that basic hurdle is already cleared. And honestly once someone is at that level of base competence, along with basic interface concepts like how to use a mouse and keyboard, clicking on icons, use of a web browser etc, with the right distro you really don’t need to explain much else. There might be a few quirks of the UI to explain depending on what you choose, but most of that can be handled by just watching them use the computer for a bit, and/or asking them to give you a list of questions and annoyances after they use it for a few days.
The biggest difference is one that most “I just want it to work” users will actually love, and that’s relearning how to install software. Having one central location to install verified software from is a change from the wild west of downloading installers from the internet, but it shouldn’t be a difficult transition. Most people these days don’t even install software beyond maybe Zoom, so you can probably get away with just installing any third party software they need in the initial setup.
I recommend an immutable distro like Fedora Silverblue, at least if a) you’re setting it up and are reasonably technical, and b) you don’t want to go over and help them fix stuff often. I set my mom’s laptop up with it 4+ years ago and she’s only had one problem since then.
Facts, but lowkey a tagging filesystem instead of a tree one would be amazing, that would be an amorphous blob I’d love to see
Yo mama so old she has experience with desktop computers.
Was not expecting a yo mama joke in this 🤣🤣
I’m talking about like your mom if she started using Linux, and just needs it to be able to open a web browser and check Facebook or her email or something.
Nothing. Just set up Elementary or Mint or something with a shortcut to Firefox and there’s nothing else to do. Any apps they might need would come from an app store, so point that out.
A student that just needs a laptop to do homework and take notes
So how to open a text editor? Recommending an easy-to-use and standard one like Kate would be good, but a polished distro will have one preinstalled.
someone that just wants to play games on Steam and chat on discord.
They need concepts like filesystems (e.g. the concept of a root directory, mounting, and device files), software repositories (since steam comes from a non-default repo in many distros), an awareness of the whole graphics driver situation, and hardware both appropriate to their needs and to running Linux.
- Linux isn’t Windows. I know that is a no-brainer but it needs to be said so it won’t be as 1:1 to Windows.
- How to install software both in terminal and as well as software manger GUI. Bonus points about compiling software from places like GitHub.
- Packages type and their pros and cons
- Trying to run Windows application via Wine (or some manager like Bottles or Lutris) as well as comparing running same Windows Application from Linux and Windows.
- Alteratives to popular software and list out what it can do and what it doesn’t have so user can see if that feature it doesn’t have would affect them. For example, GIMP doesn’t have full CMYK support which for most users, it isn’t a big idea but for people that want to edit images to be ready for printing, they might want to keep that in mind.
I think Krita does proper CMYK
I have heard it does but it was generally just an example of “Try this software but note it may not have this feature if this means lot to you” and suggest others like maybe Krita then?
everything is a file lol, unlike on Windows where a lot of things are GUI based:
- Want to change your grub font size? Heres a file.
- Your python gives dependencies errors? Well, because the libraries (aka files) are in a different directory.
- want to change your password and username? Heres a file to change …so on and so forth
On Linux you have a lot of power, can use sudo to make changes to a file. If you know what youre doing, great. If you dont, system can break. Even without sudo, a misplace / mistype of files in the /home directory can cause weird stuff.
So TLDR is: be careful when make changes to files on Linux. Dont listen to stranger on forum who gives out command to paste and run. Do your research what the command does.
Your keyboard, and every other USB device? That’s a file.
Random number? this file here
Ned some Zeroes? That’s this file
This may be a controversial inclusion, and it’s based on my relatively unsophisticated understanding of Linux. I believe the reason casual computer users hate Linux (generalizing here) is that “Linux” is not one thing.
Commercial operating systems are monoliths. Windows 11 is Windows 11. macOS is macOS. Apart from a few surface-level settings, all instances of them are the same. If you know how to use that operating system, you can go to almost any computer running that OS and start using it, just like you use the one you have at home.
“Linux” is entirely modular. There’s no single thing called “Linux.” You can pick and choose each component to build up your own customized OS from the ground up, and distros take advantage of this. I know just within my household, I have three Linux systems, and casual usage varies wildly across the three. One is a SteamDeck, which is a different kind of thing, but if I just take the two computers as an example, on one, you have an application menu in the top left where the other has an application menu in the bottom left. Also, those menus look completely different. That alone is enough to frustrate a casual user. Now take the fact that they each have different settings panels, different bundled apps, etc. and you have a recipe for making users always feel lost when moving from one system to another.
I don’t think this means you need to teach how to use every available desktop environment, window manager, or sound settings panel, but I do think it would be useful to introduce this concept as part of your curriculum. The sad part is that I think a lot of your audience will tune out at this point because they never had to know that on the commercials OSes, but I think it’s important to be forthcoming about it rather than having your audience blindsided by it.
I think there’s a certain kind of user who doesn’t really learn concepts, but rote actions. They click the start menu and then excel to open excel, but they don’t really understand that the start menu is an application launcher and Excel is an application that can be opened in other ways. It’s very one dimensional.
Then when something changes, like the application launcher is moved, they freak out. They don’t have a mental model.
That’s how my mother is, anyway. It’s all magic with no underlying coherent anything. Not sure how to fix that, because it usually comes up when they’re mad or scared, and that’s not a time anyone will learn.
This is something that I actually planned on explaining! A big reason I myself like to use Linux is because it’s modular and can be customized and used in so many ways just to meet your needs which I think is ideal. An operating system shouldn’t be a one size fits all kind of thing!
Sorry to grin at you. But in OS theory Linux is known as a monolith kernal. So you choice of words would have given my lecturers a freakout.
But while your terminology is a bit crossed. The ideal you are explaining is fine.
Better Technical way to put it. Linux is just the kernal. Much of the interface you see is actually programs or apps running above that kernal. A d can be changed amd selected.
Windows is also started multipart. But has become less so over time. And it’s single distributer makes it way less obvious. By preventing any competition within it’s internal structure. The original monolithic kernal of Windows was the MS Dos command.com program. But I no lying those of us from the 80s and early 90 remember using it.
I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
DO NOT download and install random programs from the internet. Not a deb/rpm file, not an elf binary, not an install script, nothing. Use your package manager or desktop environment’s app store. At most use flatpak or snap packages.
Linux gets its reputation for not getting malware from the same place Mac does: It has a managed app repository where you get all your software from. Difference is Mac doesn’t let you install arbitrary programs at all, while Linux expects you to know better than to do that. Someone who doesn’t know what they’re doing downloading Linux programs from random websites will inevitably hit one of the super rare Linux malware in the wild.
Even ignoring security issues, running an install script even from a reputable open source project’s website can open you up to package dependency hell. And if you ever need to upgrade or modify it, you’re in for a rough time because none of the existing tools built into your distro will help you.
Also, for Arch folk: AUR isn’t a traditional repo. Always be careful what you pull from there. Check pkgbuild files for weird shit and avoid unpopular bin files.
Great response, which also helps to answer one of the first questions from non-tech users: which anti-virus do I download for Linux?
The average day of a “computer wiz” on debian (me):
sudo apt install ./randomshitfromgithub.debsudo nano /etc/apt/sources.listpastes stuff in“Oh no something isn’t working right!” Pastes some slop from chatgpt into the terminal
9 months later
“This shits fucked beyond repair, time for a clean install!”

Honestly? Not much different than my experience with windows. ;P
Since when does Mac not let you install whatever program you want? Are you thinking of iOS?
As far as I know when you download a dmg, the OS checks its signatures against Apple’s registry and only allows installation if it’s approved. The developer would have submitted the app to Apple (for like $100) for them to inspect even if it’s not on the “official” app store.
Not a Mac user so please call me out if I’m just talking out my ass.
Right click, select “open.”
In a better time, yes. These days it’ll throw a warning that the application can’t be trusted and offers to throw it in the bin. You have to run a command in the terminal now. Every time the app updates.
LibreWolf has updated?
Gotta do the dance again. Every. Fucking. Time.
is it impossible to disable gatekeeper now?
Yes it’s impossible to do it fully now :( but you can open programs from unapproved developers by going into settings > security > and select “open anyways”. It’s kinda a hassle when you like using open source software.
I’m still running 14, has it changed since?
Does this still work to disable it system-wide?
sudo spctl --master-disable
I think it’s like by default not allowed but there are settings you can change but you have to go through a bunch of warnings and scare prompts
Now the KDE Discover store on Kubuntu needs to let me say no when an app asks for “Full Access: Can Access Everything on your System”. It’s a bloody text editor, what access could it possibly need.
Sadly, just the store doesn’t work for many professional programs and non-free software.
Segger j-link, renesas go hub, Nordic tools, etc… (though AUR solves this on arch distros)
Communication is the key. And the problem is most Linux users aren’t able to grasp how the language they use is opaque to new users who don’t share their knowledge base. Just the word distro is already a barrier to new users cuz they don’t know what it means and yet Linux users throw it around as if everyone knows what it means. These basic terms are the biggest barrier I think. Most people who just use a computer check their email don’t know what a bios is. They don’t know how to boot from a flash drive. That’s going to be your biggest barrier. Language and the basic stuff you don’t think of as remarkable.
How to backup their home directory, even if it is a basic method like mounting an external drive and drag and dropping files.
Package managers:
- Repositories
- Update mechanism. Many of my friends and family are used to updates being either automatic, nagged, or nonexistent. Not an issue on auto-updating distros, but could get ugly on vanilla Arch or Debian.
- Resisting the urge to install loose executables from websites
File system:
- Write caching. Windows doesn’t do this for most USB drives so people get away without safely ejecting for years. On Linux, the safe eject button does matter.
- File hierarchy and mount points. When I first used Linux, I was very confused by the lack of the Program Files and Users folders, My Computer page, and drive letters.
- File permissions, especially executables
- Partitioning and how to format drives in the absence of a format dialog in the file explorer
Bash shell:
- It’s not the incomplete mess that made
cmdor Powershell so intimidating - Resisting the urge to paste in commands and scripts without knowing what they do
I find that one of the biggest differences is the file ownership/group design, and the non admin user. Sure, it might not come up in a straightforward manner, but it will.
Why do I need to put in a password all the time? How come I can’t just move this file to another drive?
This might be too “advanced” for what you’re looking for, but I think even basic usage comes across this.
i came here to say this. I was really frustrated for a while figuring this out and understanding how it really makes things more secure, even if you’re the only one using the computer. At first it drove me nuts when my server would auto create a folder for media and I’d attempt to change some files within and not have permission, like, my account should have access to everything.
Changing access permissions without understanding how/why completely borked my first install by setting a user without sudo privileges as primary (or something, I still don’t know what I did haha) but I couldn’t sudo anything and was locked on that profile.
I started by just using Nautilus but this is not good practice so I learned the basics and it finally started making sense.
Yeah, I always bring this up because it’s what I dealt with. Mind you, it was amplified because I set up a media server right away and got seriously confused.
What? Permissions don’t get inherited? OK fine, so how do you set permissions? This site says 755 and this site says drwxr-xr-x. Can’t I just get a straight answer?
It’s a fundamental functioning difference between the OS’s that not a lot of people talk about when talking about switching.
Even my Windows machine that is set up with an admin/user structure (as God intended) doesn’t give me any fuss with file access.
Haha same thing for me. -R was a game changer
Little quality of life stuff.
- How to install video codecs
- How to get thumbnails working in the file manager.
- Adding cloud storage to the file manager.
- How to make libre office save files with MS office filetypes by default (depending on work / school requirements)
- Maybe samba shares if they have another computer in the house.
For truly casual users (grandma or a student taking notes) there isn’t a lot to learn. Here’s your browser, here’s your office apps, this is like “notepad”. This is the software center for updates or any other applications, press the “windows key” to get your menu.
How to install video codecs
Is that really still a thing on modern distros? I haven’t had to think about that in literally decades (on Gentoo).
It depends on the distro and how it feels about shipping non-free software. Fedora, as an example, still ships without them.
It depends on the distro and how it feels about shipping non-free software.
Wait, what codecs (commonly used by Linux distros) aren’t free software?
As far as I know the original issues back in the day was with patents, not licenses, especially with MPEG. And because it was patents (which I think aren’t even valid in most jurisdictions except the hell-hole called USA), the issue was mostly with what commercial distros wanted to ship to their customers, not what the end-user could legally use. These days I thought we’re using mostly patent-free codecs or people realized they aren’t really enforceable anyways. Fedora maybe kind of makes sense, since its users are basically free beta-testers for RHEL, which is mostly US-based and commercial, so would be the most likely to be affected by patent-trolls.
H.265 is a pretty major one. E-AC-3 for audio. Ideally, for a desktop user, you want to be able to play anything. So you need know if your distro includes those codecs. Then how to install them if it doesn’t. Then you need to delete your thumbnail cache to fix the thumbnails.
It’s not hard. You just have to know that that’s a task you need to do. Coming from windows, a user is likely to just assume linux doesn’t support video properly and it’s thumbnails are broken.
H.265 is a pretty major one. E-AC-3 for audio.
With regards to patents or not being free software? Because ffmpeg includes those and is definitely free software. You also need x265 for encoding I think, but that’s also free software.
It’s not hard.
Sure. I was just surprised it’s still a thing at all. None of the distros I use have this problem (Gentoo, Arch, Ubuntu, Libreelec).
H.265 is royalty free for non-commercial use. It’s ownership is kind of complicated with a bunch of patents and it is commercial licensing is controlled by a few groups.
If I understand correctly (and I’m no lawyer) FFMPEG is completely non-commercial so they don’t have an issue. Although I think anyone using FFMPEG for commercial applications (streamers, professional productions, etc…) should be paying a license.
I guess some distros felt that was legally murky for them and others aren’t comfortable with non-libre software.
I really wish Fedora would figure out a legal workaround and bundle in the codecs, but for now I just have to remember to set it up before I add any media.
I guess some distros felt that was legally murky for them and others aren’t comfortable with non-libre software.
Let’s get something completely straight: ffmpeg is completely, 100%, no-restrictions, free as in libre software. This has nothing whatsoever to do with “not being comfortable with non-libre software”. That’s just FUD at best.
Legal considerations about patent/license trolls in corrupt neoliberal hell-holes might be justified for commercial projects. Most distros however seem to be getting away just fine by assuming end-users get their license for the codec/patents somewhere else if they even need one.













