I'm a junior software engineer, and since we work in a 100% Windows environment, I’ve never really had the chance to work with Linux, apart from a few modules back in school, which was a long time ago. My Linux knowledge is pretty basic, but I believe every programmer should have a solid level in it. That’s why I decided to start learning. So, I asked my mentor ChatGPT 🤣, and it came up with this schedule to get started. What do you think? Any key improvements you’d suggest, guys?
Phase 1 – Core Foundations
Step 1 – Setup & Navigation
Install Linux (VM, WSL, or Docker container)
Learn the Linux directory structure: /, /home, /etc, /var, /usr, /bin, /tmp
Understand basic commands for navigation and file handling: pwd, ls, cd, touch, mkdir, cp, mv, rm
Viewing files: cat, less, head, tail
Step 2 – File Permissions & Searching
Reading ls -l output (permissions, owner, group, size, date)
Changing permissions with chmod
Changing ownership with chown
Creating links: ln (hard) and ln -s (symbolic)
Searching files with find and searching text inside files with grep
Using redirection and pipes: >, >>, <, |
Step 3 – Processes, Networking & Simple Scripting
Viewing processes: ps, top, htop
Killing processes: kill, pkill
Networking basics: ping, curl, wget, ss -tuln, netstat -tuln
Bash scripting basics: shebang (#!/bin/bash), variables, reading input, outputting data
Making scripts executable and running them
Phase 2 – Intermediate Skills
Step 4 – User & Group Management
Viewing user information: whoami, id
Adding/removing users: useradd, userdel
Adding/removing groups: groupadd, groupdel
Adding a user to a group: usermod -aG
Switching users: su, sudo
Step 5 – Package Management
Installing software packages
Updating software packages
Removing software packages
Searching for software packages (Example for Debian/Ubuntu: apt install, apt update, apt upgrade, apt remove)
Step 6 – Disk & Storage Management
Checking disk usage: df -h, du -sh
Mounting and unmounting drives: mount, umount
Creating and extracting compressed archives: tar, gzip, gunzip
Step 7 – Advanced Bash Scripting
Using loops: for, while
Writing conditionals: if, else, elif
Using arguments in scripts: $1, $2, $@
Creating and using functions in scripts
Scheduling jobs with cron
Step 8 – Service Management & Logs
Managing services with systemctl (start, stop, restart, enable, disable)
Viewing logs with journalctl and in /var/log/
Step 9 – Advanced Networking
Viewing open ports with ss -tuln
Running a basic HTTP server with Python
Testing connections with telnet or nc
[link] [comments]
SOCIAL SHARE CARD GENERATOR