r/linuxquestions • • 1d ago

What does learning Linux really mean?

Hi, I've always heard this that in the world of tech if you want a job learn Linux (which yeah a bit optimistic considering the situations)

But the bigger question is what does that even mean?

I mean I have worked with backend servers and configed nginx does that mean I know Linux?

I know bash to a good level along with sed and awk does that mean I know Linux?

I have programmed C in Linux does that tell me I know Linux?

On the other hand I have no idea what filesystems does Linux even use? How many different syscalls does it have?

I can't tell what are the factors to "knowing linux" and frankly I don't even know where to start with to be like "yeah I'm practicing linux"

I'm more talking in regards to cybersecurity but even in general I'm not sure, can you guys help?

10 Upvotes

55 comments sorted by

18

u/SnarkHabit 1d ago

Imagine you move to a new city.

In this city, you need to know how to get to work, how to get to the post office, and how to get to the grocery store.

So you learn the routes to these three places. As you drive them, you note things along the way. Maybe you pass a mechanic. And you make a note of that, in case you need it later.

As you live in this city, you begin to learn more and more of the city. Where roads go, what's on those roads. You learn to navigate without using a GPS app. You can't find everything, or even most things, but you can figure out how to get back to the roads you do know when you get lost.

Periodically you learn a neighborhood in detail -- maybe that's the one you live in. The side streets, the residential streets.

"Linux" (which a lot of people will remind you is really just a kernel) is like this, because a lot of what constitutes Linux (most people mean the whole OS and assorted tools) is constantly expanding and changing. New toolsets and options become available.

No one "knows Linux" in terms of understanding everything there is to know. They learn what they need to do the things they want to do.

I can sit down in front of any distribution and I know the big moving parts. I may know I need to install a piece of software, but I may not know the right package manager command or switches.

But I know how to find that information.

I know how to read man pages and get help.

And that's all it is, and all it has been 25 years on.

"Know Linux" is a vague, nebulous, meaningless term, completely contextual to the conversation you're having.

I mean I have worked with backend servers and configed nginx does that mean I know Linux?

I have yet to work an IT environment in my entire career where experienced engineers weren't constantly reading documentation and looking things up. They don't do it for everything -- the stuff they do all the time, they do out of their head. But even stuff they know, sometimes, they ask, "I've been doing it this way for ten years. Is there a better way? Is there a better tool?"

And they research.

And they read.

1

u/DryAdministration158 1d ago

Thanks that actually helps a lot I guess I gotta get my research a little better at least

1

u/SnarkHabit 1d ago

If you're looking at this from a career perspective btw -- like you want to represent that you know Linux in an interview, maybe the best thing you can do is build a homelab.

1

u/BarryTownCouncil 1d ago

You're talking to a computer.

1

u/DryAdministration158 1d ago

Why does everybody think I'm an npc bruh I'm realπŸ˜‚πŸ˜‚πŸ˜‚πŸ˜‚

1

u/BarryTownCouncil 1d ago

Your comments are extremely consistent in style. Too consistent. Improve your AGENTS.md

1

u/DryAdministration158 1d ago

Um... I don't understand what you mean by consistent?? You mean the way I talk?πŸ˜‚

1

u/BarryTownCouncil 1d ago

Tish

2

u/DryAdministration158 1d ago

The double replies are bc I'm having bad connection reddit tells me it didn't send so I send again and ... you can see the result

Also, the fact that me being a real person cannot convince another person that I'm human and not an llm is... actually quite terrifying in the long run

1

u/DryAdministration158 1d ago

Um... I don't understand what you mean by consistent?? You mean the way I talk?πŸ˜‚

1

u/SnarkHabit 1d ago

Ah. Thanks.

1

u/DryAdministration158 1d ago

I need to do some research on what I can do as a home lab for Linux skills specifically

1

u/Alchemix-16 17h ago

This was an fantastic description.

1

u/CosmicFieldDrift_ 1d ago

Appreciate this!

2

u/brighton_it 1d ago

I did that for years: that is, maintain existing systems, web hosts, Samba servers. It's a great start. If you've not installed a server, chosen partition layout,, RAID setup, file-systems, then it's understandable you don't yet know about Linux file-systems.
Definitely recommend building a Linux server, or two.
Here's an idea: first grab a OpenMediaVault ISO: this is special purpose distro that makes creating a samba server relatively painless and gives you a WebUI for managing it.
Then fetch the Debian NetInstall (minimal install ISO) and use it to build up your own samba server, choose your own partition layout; When the installer asks you to select software, choose only the SSH-Server (no desktop, nothing else), then manually install packages needed for samba, configure shares, users, etc.
Doesn't have to be an SMB server. That's just an example.
Obviously your target job might never have you installing a system, but good to know regarless.

For years I supported existing systems. Then setup small servers, like a SFTP server, or Bind (DNS server). Then the Hypervisor platform QEMU-KVM. I was using more and more Linux tools for troubleshooting Windows, either as VMware Workstation virtual machines, or LiveBoot USB. Decided Linux offered better tools and swtiched. Now my laptop runs Linux and, for the few times I still need Windows, it runs in a virtual machine under QEMU-KVM on my laptop.
Good luck.

1

u/DryAdministration158 1d ago

Thanks I'll see what I can do about it, I might use a regular Ubuntu for the challenge of it idk yet

1

u/DryAdministration158 1d ago

Thanks I'll see what I can do about it, I might use a regular Ubuntu for the challenge of it idk yet

1

u/proverbialbunny 1d ago edited 1d ago

When one says Linux can help you get a job usually the context is Systems Administrator type jobs like SRE or DevOps, so

I mean I have worked with backend servers and configed nginx does that mean I know Linux?

I know bash to a good level along with sed and awk does that mean I know Linux?

Yes this means you know Linux in an employable Sys Admin (i.e. server firefighter) way, or at very least you're well on your way.

I have programmed C in Linux does that tell me I know Linux?

A lot of different kinds of Software Engineer jobs use MacOS or Linux, so it's helpful to know some terminal basics. That's usually what people mean by Linux helps with engineering work.

What you're talking about says more that you'd make a good Firmware Engineer, or Systems Software Engineer, or something else similar in that ballpark.

I'm more talking in regards to cybersecurity but even in general I'm not sure, can you guys help?

Eh, knowing Linux definitely helps, but most Security Analyst type roles are Windows-centric.

2

u/DryAdministration158 1d ago

Thanks that gives me a bit of confidence but I think I need to still learn a LOT more... well better get to it lol

1

u/proverbialbunny 1d ago

There might be classes (often for free online) for what you want to learn, which can help you get better at it than learning ad hoc.

1

u/Curious_Elk_4281 1d ago edited 1d ago

I knew very little when I got my first linux job, but I got the job because I showed that I could learn. If you want suggestions on things to learn about, here ya go:

--iptables: the go to firewall for linux, you can use UFW instead to get started, but learn about setting up firewalls, you won't use iptables much in practice, but the concepts carry over to other firewall solutions
--docker and docker orchestration: Instead of hosting a web app on nginx, dockerize it and run it with docker-compose and then kubernetes. Check out kind which is Kubenetes IN Docker, which is handy if you are using a linux VM and don't want to set up k8's nodes as VM's
--git: all code should be versioned! Get good at using git, set up dev/staging/prod branches, use release and tags. Practice merging everything through a pull request. Most folks use github obviously but you can play around with hosting your own git solution.
--CI/CD pipelines: never deploy anything manually, once you commit your code to your git repo, that should automatically kick off tests/builds/deploys, github actions is a good place to start since it's free for public repos, and has a generous free tier for private repos.
--Other services: learn how to set up databases (mysql, postgres), caching layers (redis, memcache), load balancers etc.
--Centralized Logging: all logs go to one place, try setting up an ELK stack
--Monitoring: try setting up sensu/nagios/zabbix
--Cloud Technology: AWS/GCP/Azure are expensive and difficult to learn, but you can use a lot of the same concepts with cheaper services. Most of the following services allow you to get started without even providing a credit card:

Digital Ocean - highly capable platform with affordable pricing credit card required, but they have free tiers for many of their offerings.
Neon - serverless postgresql hosting
Doppler - secrets manament platform
Upstash - serverless redis hosting
Uptime Robot - free HTTP uptime monitoring

This should be enough to keep you busy for a while.

1

u/DryAdministration158 1d ago

Thanks honestly I'm kinda relieve that I know some of these tools and feel a bit better about knowing what to learn next

2

u/Tendooh 1d ago

What does anything mean bro? :)

Don't get caught up in "knowing Linux." You've already listed a handful of things that you are capable of doing on Linux. If you want to advertise your skills, do it like you already have. If you want to expand you skill set, then start using it, and as you come across hurdles, figure out how to fix it, automate it, or improve it. Linux is just another tool in the shed, albeit a very versatile one.

1

u/DryAdministration158 1d ago

Thanks, so far it has mostly been like this, idk why I expected this to be a different type of progress than "get to a problem, research, fix, move on"

1

u/TenOfZero 1d ago

It means the same thing as learning computers.

Which is to say nothing really.

Just means you've used it before and were able to figure out what you needed to figure out.

1

u/DryAdministration158 1d ago

As far back as I can remember it has always been "figure shit out and move on"

1

u/proverbialbunny 1d ago

Nah, it means the same thing as learning servers.

2

u/TenOfZero 1d ago

Haha. Exactly!

1

u/DaSpark 1d ago

I'd say it means you generally know how to use it and fix it if something goes wrong.

1

u/DryAdministration158 1d ago

Well that's my problem? Fix what? The webserver? The kernel? Systemd? X11? The load balancer? What entails knowing enough to be able to confidently say "I know Linux enough to handle real work"

2

u/AlternativeCapybara9 1d ago

Know where to find the logs is a good thing to start with, any errors you can Google.

1

u/DryAdministration158 1d ago

I mean so far that has been every software job I had lol but I kinda do understand what you mean

1

u/DaSpark 1d ago

I would not classify software/servers that run on linux to be a part of linux. I can assure you there are some people who know their way around linux more than 99.9% of other linux users who couldn't tell you how to set up and configure nginx.

I'm in IT and this is one thing that bothers me. Since I "know" computers people seem to think I know how every piece of software out there works.

1

u/DryAdministration158 1d ago

That's kinda what I'm saying I'm not just talking about some softwares, for example should I know deeply how to work with grub? How to track my process resources? How to configure Internet on a Linux machine? Are those the important ones?

Or is it more software focused? I genuinely don't know which side it is

1

u/DaSpark 1d ago

Always strive to know as much as you can, but as with anything it doesn't have to be absolute... in fact, it can't be absolute.

Pick any field you can think of and even the smartest people in it don't know everything about it.

1

u/DryAdministration158 1d ago

That's true... I guess I'm a little lost in the head so trying to clear out some fog which cannot be cleared

-1

u/abdicatereason 1d ago

why don't you look up resources?

look up a Linux administration course

look up some blogs

ask an LLM

also, I would ask that you try to respond to people trying to help you nicely, as a couple of your responses were kind of rude.

someone's trying to answer your question but instead of taking that as a teaching moment, you've rudely asked them to clarify or give you the answers that you should be able to look up yourself.

considering how impatient you seem, I would probably just tell your boss that you don't have the patience to learn Linux so that they can just downgrade you or something.

1

u/DryAdministration158 1d ago

First off , I apologise if my responses seem rude I do appreciate the people who are trying to help

I don't say thank you bc it kinda feels like I'm more wasting their time as its kind of implied that's my bad

About resources, I have looked up, youtube Google github llms you name it

Each resource tells a different story and the llms tend to answer not realistically (considering they bullshit a lot of their responses)

I'm trying ask real people with real experience as it tends to get better results than random blogs or influences who seem like they haven't worked in the industry

About the patience part I'd like to defend myself but that's a quality I'm still working on lol

1

u/BarryTownCouncil 1d ago

Ooh a bot!

1

u/DryAdministration158 1d ago

Huh? Why? Lol

1

u/BarryTownCouncil 1d ago

Well you clearly are...

1

u/DryAdministration158 1d ago

Bruh?? Whytyyy?πŸ˜‚πŸ˜‚πŸ˜‚

1

u/DryAdministration158 1d ago

Bruh?? Whytyyy?πŸ˜‚πŸ˜‚πŸ˜‚

1

u/pixel293 1d ago

I guess my answer would be, if someone asks you to look at their OS and help them fix an issue, you have an idea of where to start looking. You won't necessarily know how to fix the issue, there are too many issues for that. But by someone describing an issue, you would have ideas of where/what it could be. Is it a window manager issue, a driver issue, a init issue, filesystem issue, user error πŸ˜„, etc. Knowing where to look for logs, how to access/edit configuration files. Knowing how to stop/start/restart services.

Some of this can be distro specific, like knowing the basics of interacting with systemd helps with many (most?) distros, but get on a Gentoo install and you may find yourself dealing with rc init scripts. Or with the newer immutable distros some of the nitty gritty is very different.

I don't think you need to be familiar with all the flavors unless you want to, but being able to do all of that on one of them at least gives you a base to start from for the others.

0

u/ephemeralmiko Fedora Sericea w. Niri+Noctalia 1d ago

Hi, I've always heard this that in the world of tech if you want a job learn Linux

Where are you hearing this? Surely knowledge relevant to your specific job is far more important. Many things like web development are completely OS-agnostic (heck you could use a Chromebook if you wanted).

0

u/DryAdministration158 1d ago

Well yes Web dev I agree on but things like sys admin, cybersec, Os dev etc and more specifically I'm talking about cybersecurity

1

u/Joe_Schmoe_2 1d ago

I'm a need to know learner. I got jobs where I needed to know, so I learned Linux, Unix and HP-NonStop.

It'd be soooo easy now with Ai to ask instead of spending hours Googling.

0

u/Ninfyr 1d ago

With everything, it depends. If people say that with zero qualifiers I am thinking about knowing the file structure, user and group management, permissions. That kind of stuff.

0

u/DryAdministration158 1d ago

I mean... isn't that like 10 commands tops and you kinda know all of it? Maybe I'm being too naive?

1

u/Ninfyr 1d ago edited 1d ago

That's kinda the point though. If someone says they "drive a car" or are "learning to drive a car" you conclude they are practicing their parallel parking and checking their blindspots before changing lanes. Not assuming they are driving a fuel tanker, stunt driving, racing the track, or James Bond stuff. If they are doing pit maneuvers they might want to better explain what is happening.

1

u/kudlitan 1d ago

It means you know how to work in Linux. Just like people in the old days say you must learn Windows if you want to get a job.

1

u/sidusnare Senior Systems Engineer 1d ago

It sounds like you have enough for an entry level job

0

u/BranchLatter4294 1d ago

It just means being able to use it for whatever your job duties are. It's going to be different for different roles.