r/linuxupskillchallenge

▲ 15 r/linuxupskillchallenge+1 crossposts

Can someone explain the real-world usage of /etc/profile, profile.d, and bashrc?

Can anyone clearly explain the real-world usage of `/etc/profile`, `/etc/profile.d/`, and `/etc/bashrc` in Linux?

I’m getting confused between different explanations from ChatGPT and Gemini regarding login shells, non-login shells, interactive shells, and non-interactive shells.

From what I understood:

* `.bashrc` is mainly for interactive shell settings like aliases, prompts, etc. * `/etc/profile` and `/etc/profile.d/*.sh` are usually used for global environment variables like `PATH`, `JAVA_HOME`, `ORACLE_HOME`, etc.

But here is where I’m confused:

Some explanations say we should configure application paths and environment variables in `/etc/profile.d/` because they are needed system-wide.

But others say non-interactive or non-login shells (like cron jobs or scripts) do not automatically load `/etc/profile` or `.bashrc` at all.

So my doubts are:

  1. What is the actual real-world purpose of: * `/etc/profile` * `/etc/profile.d/` * `/etc/bashrc` * `.bash_profile` * `.bashrc`
  2. In enterprise environments, where should things like: * `PATH` * `JAVA_HOME` * aliases * prompt customization actually be configured?
  3. If cron jobs/scripts/services don’t automatically load these files, then why is `/etc/profile.d/java.sh` considered standard practice for Java setup?
  4. How do Linux admins usually handle environments for: * SSH users * cron jobs * systemd services * automation scripts

I’m trying to understand the practical production usage rather than only textbook explanations.

reddit.com
u/Western_Head_6650 — 10 days ago
▲ 4 r/linuxupskillchallenge+2 crossposts

I’m trying to learn DevOps but these 6–7 hour coding videos make me feel less human

I know this probably sounds dramatic or like a “first world problem,” but I need to know if anyone else feels this way.

I want to get into DevOps badly. I asked an AI for a roadmap and it gave me the usual path:

Linux → Networking → Git → Python/Bash → AWS → Docker → Kubernetes → Terraform → CI/CD → Monitoring → Security, etc.

So I started doing what everyone recommends:
watching FreeCodeCamp videos and long tutorials.

But honestly… I can’t do it.

Not because the material is “hard” exactly. It’s the format.

These 6–7 hour videos feel soul-draining to me. The delivery is so monotone that after 20–30 minutes I feel sleepy, disconnected, and weirdly depressed. I sit there trying to force myself to continue because I keep thinking:

>

But something about it feels deeply inhuman.

Like I’m sitting alone staring at a screen while someone explains Linux commands for hours and my brain is screaming:

>

Meanwhile Netflix can hold my attention for 5 hours straight and somehow a Linux tutorial feels impossible after 25 minutes.

And then I start feeling guilty because there are people in the world dealing with actual serious problems while I’m complaining about educational videos.

I think what bothers me most is how lonely the process feels.

People online talk about “grinding” tech skills alone for 10 hours a day like it’s normal, but I genuinely don’t know how people mentally tolerate it. I don’t even hate tech. I LIKE the idea of DevOps. I like building things. I like problem solving.

I just hate sitting through giant passive tutorials.

Does anyone else learn this way?
How do you stay accountable without turning yourself into a zombie?

Did any of you become developers/DevOps engineers while struggling with this exact thing?

reddit.com
u/Vratwork — 13 days ago