рдореБрдЦреНрдп рдордЬрдХреБрд░рд╛рдХрдбреЗ рдЬрд╛
JobCannon
рд╕рд░реНрд╡ рдХреМрд╢рд▓реНрдпреЗ

Linux / Unix

Command line mastery, shell scripting, system administration

тмв рд╢реНрд░реЗрдгреА 3рддрд╛рдВрддреНрд░рд┐рдХ
+$15k-
рдкрдЧрд╛рд░рд╛рд╡рд░реАрд▓ рдкрд░рд┐рдгрд╛рдо
5 рдорд╣рд┐рдиреЗ
рд╢рд┐рдХрдгреНрдпрд╛рд╕ рд▓рд╛рдЧрдгрд╛рд░рд╛ рд╡реЗрд│
рдордзреНрдпрдо
рдХрд╛рдард┐рдгреНрдп
1
рдХрд░рд┐рдЕрд░реНрд╕
рдПрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреНрд╖реЗрдкрд╛рдд

Linux/Unix is the foundation for backend, DevOps, and infrastructure engineering: mastery of command-line tools, shell scripting, system administration, and networking opens paths to high-paying roles. Career path: Foundation (basic commands, file permissions, $80-110k) тЖТ Intermediate (shell scripting, process management, systemd, $110-160k) тЖТ Advanced (kernel tuning, performance optimization, security hardening, $160-220k). Essential skills: bash, systemd, iptables/nftables, log analysis, SSH tunneling, cron jobs.

Linux / Unix рдореНрд╣рдгрдЬреЗ рдХрд╛рдп

Linux/Unix = operating system knowledge. Essential for DevOps, backend engineers. Boost: +$15k-$35k

ЁЯФз рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдкрд░рд┐рд╕рдВрд╕реНрдерд╛
bashzshsystemdjournalctliptablesnftablestcpdumpstracehtopvimtmuxsshGNU coreutilsawksedgrepcronSSH tunneling

ЁЯУЛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА

ЁЯТ░ рдкреНрд░рджреЗрд╢рд╛рдиреБрд╕рд╛рд░ рдкрдЧрд╛рд░

рдкреНрд░рджреЗрд╢рдЬреНрдпреБрдирд┐рдпрд░рдордзреНрдпрдорд╕реАрдирд┐рдпрд░
USA$95k$145k$195k
UK┬г55k┬г90k┬г130k
EUтВм60kтВм100kтВм145k
CANADAC$100kC$155kC$210k

ЁЯОп Linux / Unix рд╡рд╛рдкрд░рдгрд╛рд░реА рдХрд░рд┐рдЕрд░

тЪЦ рдпрд╛рдВрдЪреНрдпрд╛рд╢реА рддреБрд▓рдирд╛ рдХрд░рд╛

тЭУ FAQ

Which Linux distro should I learn first, Ubuntu, Red Hat, Debian, or Alpine?
Start with Ubuntu LTS (easiest, Debian-based, largest community, free). Learn one distro deeply first (how it boots, package manager, systemd), then distro-agnostic skills transfer everywhere. Red Hat (RHEL) is enterprise standard; CentOS/Rocky Linux are free alternatives. Alpine for containers (minimal, musl libc). For production jobs: Ubuntu or RHEL cover 80% of roles.
How do I debug systemd services when they fail?
Use `systemctl status <service>` for quick status. `journalctl -u <service> -n 50` for last 50 lines of logs. `journalctl -u <service> --no-pager` for full logs. `journalctl -u <service> -f` to tail in real-time. `systemctl restart <service>` to restart. Check ExecStart path, User permissions, Dependencies. For failed-to-start: `systemctl list-dependencies <service>` shows what it needs. Master journalctl, it's your debugging lifeline.
File permissions are confusing. What's the difference between chmod, ACLs, and SELinux?
chmod (mode): 3 layers of 3 bits (owner/group/other ├Ч read/write/execute). ACLs (access control lists): fine-grained per-user/group perms, `setfacl -m u:user:rwx file`. SELinux: mandatory access control (MAC), role-based policies, overkill for most; just know it exists and how to disable it in contexts where it blocks things. For 99% of cases: chmod is enough. ACLs when you need per-user exceptions.
I'm drowning in logs. How do I analyze thousands of lines at scale?
`journalctl` with filters: `journalctl --since '1 hour ago' -u service`. `grep` for patterns: `grep 'ERROR' /var/log/app.log | wc -l` counts errors. `awk` to extract fields: `awk '{print $1, $3}' logfile` pulls columns. `sed` for replacements. `tail -f` to live-stream. Use log aggregation (ELK, Splunk, Datadog) for multi-host analysis. For local debugging: combine journalctl + grep + awk.
System is slow. How do I tune performance with sysctl and kernel parameters?
Use `htop` to profile CPU/RAM/disk. `iostat` for disk I/O. `netstat` for network. Tune kernel params via `/etc/sysctl.conf`: increase `net.core.somaxconn` for high-traffic services, `net.ipv4.tcp_tw_reuse=1` for short-lived connections, `fs.file-max` for file descriptors. Apply with `sysctl -p`. Profile first (know your bottleneck), then tune. Each parameter change should reduce a specific metric, don't spray-and-pray.
Package management is different on every distro. How do I keep track?
Debian/Ubuntu: `apt-get install`, `apt list --installed`, `apt remove`. Red Hat/CentOS: `yum install` (or `dnf` on newer versions), `yum list installed`, `yum remove`. Alpine: `apk add`, `apk info`, `apk del`. Key concept is same: install/list/remove. Distro-agnostic tools: `snap` (cross-distro packages, slower) and `flatpak` (less common). For servers: stick to your distro's native manager. Most jobs use Ubuntu (apt) or RHEL (yum), so learn those deeply.
I need to SSH tunnel through a bastion host to reach a private database. How?
`ssh -L 5432:internal-db:5432 bastion-host` binds local port 5432 to the internal database through the bastion. Use `ssh-key-gen` and `ssh-copy-id` to avoid password prompts. For reverse tunnels (expose a local service to remote): `ssh -R 8080:localhost:3000 remote-host`. Store tunnel config in `~/.ssh/config` with Host entries for reuse. Test with `netstat -tlnp` to confirm port is listening.

рд╣реЗ рдХреМрд╢рд▓реНрдп рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ рдХрд╛, рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдирд╛рд╣реА?

рдХрд░рд┐рдЕрд░ рдореЕрдЪ рдХрд░реВрди рдкрд╛рд╣рд╛ тАФ рдЖрдореНрд╣реА рдпреЛрдЧреНрдп рдорд╛рд░реНрдЧ рд╕реБрдЪрд╡реВ.

рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реЛрддреНрддрдо рдХреМрд╢рд▓реНрдпреЗ рд╢реЛрдзрд╛ тЖТ

рддреБрдордЪрд╛ рдЖрджрд░реНрд╢ рдХрд░рд┐рдЕрд░ рдорд╛рд░реНрдЧ рд╢реЛрдзрд╛

реи,релреирез рдХрд░рд┐рдЕрд░рдордзреНрдпреЗ рдХреМрд╢рд▓реНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЬреБрд│рдгреА. рдореЛрдлрдд, ~3 рдорд┐рдирд┐рдЯреЗ.

рдХрд░рд┐рдЕрд░ рдореЕрдЪ рдХрд░реВрди рдкрд╛рд╣рд╛ тАФ рдореЛрдлрдд тЖТ