跳到主要內容
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$95,000$145,000$195,000
UK£55,000£90,000£130,000
EU€60,000€100,000€145,000
CANADACA$100,000CA$155,000CA$210,000

🎯 使用 Linux / Unix 的職業

❓ 常見問題

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.

不確定這項技能適不適合你?

做一下職業匹配,我們會推薦合適的方向。

找到最適合我的技能 →

找到理想的職業方向

在 2,521 個職業中進行技能匹配。免費。

免費做職業匹配 →