this post was submitted on 08 Jul 2023
12 points (92.9% liked)

Linux

48372 readers
1349 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

My bachelor's in software engineering starts in quite a few months

I am thinking of downloading Linux and learning the Linux terminal using the Linux bible.

then learning video, photo, and vector editing.

After that finishing the rest of the cs50 except the scratch one.

Lastly, becoming extremely good at Python

How does it all sound?

Sorry if this is the wrong community to post

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 1 year ago* (last edited 1 year ago) (2 children)

Apart from actual system administration or kernel developing, there's no real "learn Linux" .

Video/Photo/Vector editing on Linux is not "learning Linux", it's learning to use a tool which runs on Linux. You can learn to use Blender, Gimp or Inkscape on Windows. You don't edit videos/photos/vectors with the Linux kernel. You can even "learn the linux terminal" installing bash on Windows.

You can also install Visual Code or IDLE on Windows and on Linux. Learning to code on Visual Code or IDLE is not really "learning Linux".

Also going on distro hopping looking for the "perfect distro" many times means the hopper simply doesn't stick to one long enough to learn how to customize the environment to their liking (which usually means the window manager).

Most of the things you can do on the GUI, even the administration ones are just layers and layers of tools to make things "easier" - and they'll be different on each distro and release. Command line administration will change much less, or at least less frequently.

Things I consider "learning Linux" are for example:

  • installing Linux (specially a headless server)

  • understanding how to use the package managers - again, on the command line

  • understand how systemd works

  • (hard core) dive into the kernel workings

  • understand how grub works

  • learn the general filesystem structure

  • learn how to analyze logs

  • learn user administration and how the permissions (and extended permissions) work

  • learn how to integrate Linux to a Windows environment (join a workgroup or domain, share storage, authenticate users)

  • learn how to check resources usage and how to troubleshoot it

  • understand the nuances and of partitioning and when they are needed, as well as the different filesystems

  • etc (and /etc)

And yes, many of those are not strictly "Linux", but are specific to a Linux system, unlike photo editing.

[–] deong 5 points 1 year ago* (last edited 1 year ago) (1 children)

Mostly good advice. I disagree on the headless server part though. Most people who are interesting in learning "Linux” have a much less reductive idea of what that means than you do, I think. Specifically, I think becoming a comfortable, fluent speaker of a typical Unix/Linux environment and userland is probably the most important thing. I think the best way to start doing that is to just live in Linux, and you’re not going to do that on a headless server. Learning the GUI that your distribution uses to add users isn’t important, but having a GUI where you can run standard browsers and photo editors and such is important, because otherwise, you’ll spend all your time in Windows and never have the chance to develop fluency in all the stuff that is actually important.

Limiting yourself to only using command line stuff I suspect does more harm than good, unless you’re hyper-motivated to learn fast. For most people, the smoother path is probably more gradual. Start with Gnome or whatever and just use the computer. Over many years, you’ll learn a lot of piecemeal things just by becoming frustrated with some problem and learning how to solve it. I do think it’s good advice to do as much from a shell as you can from day one. Instead of using the GUI to copy files, learn to do it from a shell. Just don’t feel like you aren’t allowed to use Firefox to browse the web.

[–] [email protected] 3 points 1 year ago (1 children)

I agree; I mentioned headless server because that would be a more "pure" and general Linux administration - learning how to administer a SUSE Linux using the graphical yast tool won't translate as well to general Linux admin as if you learn and understand how to fo it in the command line and config files.

And absolutely; one can use Firefox, LibreOffice and any other tool on Linux, but I don't consider that as "learning" or "knowing" Linux. My wife uses exclusively Linux for 20+ years (because when she left her job where they still had Windows 95, that's what the desktop at home ran; kubuntu). She does text editing, internet banking, shopping, browsing, printing, everything there (even updates sw through the gui package manager), but she doesn't "know Linux".

You can setup a Linux system for a computer illiterate, and they may happily learn how to use it for their social media and streaming consuming, and whatever endusers do in their computers, without ever knowing that's "Linux".

Strictly speaking, that already happens. How many Android users know they are running on a Linux kernel?

That's why when OP said "learn Linux", I prioritized the admin on command line; as you don't need to really "learn Linux" to interact with it through automated/graphical admin tools (no shame on doing it, they're sometimes quicker and more practical than command line).

What I mean is that learning how to use cPanel or Yast is useful, but you're learning how to administer as system through a tool, which in theory could even be adapted to administer a non-Linux system.

[–] deong 1 points 1 year ago

Certainly it's possible to be a Linux user without learning the things that we would say mean you "know Linux", but I think the most effective way to learn them also requires being a "user". Using Firefox on Ubuntu instead of Windows doesn't teach you Linux, but If you don't have X11/Wayland and a browser and you can't do your online banking and social media and Youtube, then you won't actually learn the "real" stuff, because you'll spend all of your time in Windows and Linux will feel like homework. Instead, get a full Linux desktop experience that you can do all the things you want to do with, and as you're doing those things, also seek out opportunities to learn the shell and userland utilities, etc.

[–] RyuShay 1 points 1 year ago

Thank you for the detailed advice.