Definicja #
Unix to rodzina wielozadaniowych, wieloużytkownikowych systemów operacyjnych wywodząca się z oryginalnego systemu AT&T Unix, opracowanego w Bell Labs (Dennis Ritchie, Ken Thompson) w 1969 roku. Unix zdefiniował nowoczesne systemy operacyjne i jego filozofia wpłynęła na całą informatykę.
Filozofia Uniksa (Unix Philosophy):
- Pisz programy, które robią jedną rzecz i robią ją dobrze
- Pisz programy, które współpracują ze sobą
- Pisz programy, które obsługują strumienie tekstu, bo to jest uniwersalny interfejs
Kluczowe koncepcje Unix:
- Shell — interpreter poleceń (bash, zsh, sh); potoki (pipes) łączące programy:
ls | grep | sort - System plików — hierarchia od root (
/), wszystko jest plikiem (pliki, urządzenia, sockety) - Procesy — każdy program to proces, fork/exec, PID, sygnały
- Uprawnienia — właściciel, grupa, inni; read/write/execute (chmod, chown)
- stdin/stdout/stderr — standardowe strumienie wejścia/wyjścia i błędów
Główne rodziny systemów uniksowych:
- Linux — jądro open-source Linusa Torvaldsa (1991), Unix-like, nie Unix; dominuje na serwerach, chmurze, embedded
- macOS — oparty na BSD (Darwin), certyfikowany UNIX
- BSD — FreeBSD, OpenBSD, NetBSD — bezpośrednie pochodne Berkeley Unix
Zastosowania #
Unix i systemy uniksowe stosuje się do:
- Serwerów i infrastruktury chmurowej — zdecydowana większość serwerów produkcyjnych działa na Linuksie (Ubuntu, RHEL, Debian)
- Administracji systemami — skrypty shell, automatyzacja zadań, zarządzanie procesami i plikami
- Tworzenia oprogramowania — środowisko deweloperskie na macOS i Linux, SSH do zdalnej pracy
- Systemów wbudowanych i IoT — Linux na routerach, urządzeniach przemysłowych, Raspberry Pi
- Narzędzi CLI i DevOps — pipeline narzędzi uniksowych jako fundament skryptów CI/CD, Dockera i Kubernetes
Ścieżka nauki #
Umiejętność pracy z systemami uniksowymi jest podstawą pracy każdego programisty i DevOps.
Zacznij od:
- Podstawowe polecenia:
ls,cd,pwd,mkdir,rm,cp,mv,cat,less,grep,find - Potoki i przekierowania:
|,>,>>,< - Zarządzanie procesami:
ps,top,kill,bg,fg - Uprawnienia plików:
chmod,chown, rwx, notacja ósemkowa - Edytor tekstu: vim lub nano — podstawy edycji w terminalu
Następnie poznaj:
- Bash scripting — zmienne, pętle, warunki, funkcje, automatyzacja zadań
- SSH — zdalne logowanie, klucze publiczne/prywatne
- Zarządzanie pakietami:
apt(Debian/Ubuntu),yum/dnf(RHEL/CentOS) - Systemd — zarządzanie serwisami (
systemctl start/stop/enable) - Networking —
curl,wget,netstat,ss,iptables
FAQ #
- Czym różni się Unix od Linuksa?
- Unix to rodzina systemów operacyjnych z certyfikowanymi implementacjami (macOS, AIX, HP-UX). Linux to jądro systemu operacyjnego kompatybilne z Unixem (Unix-like), ale nie będące oficjalnym Unixem. Linux jest open-source i bezpłatny — dlatego zdominował serwery i chmurę.
- Czy programista musi znać Unixa / Linuksa?
- Tak — znajomość podstawowych poleceń Unix/Linux jest praktycznie obowiązkowa w IT. Serwery produkcyjne, kontenery Docker, środowiska CI/CD i większość narzędzi DevOps działa na Linuksie. Nawet na Windows wiele narzędzi (WSL, Git Bash) emuluje środowisko Unix.
- Co to jest bash?
- Bash (Bourne Again Shell) to najpopularniejszy interpreter poleceń (shell) w systemach Linux. Pozwala wykonywać polecenia, pisać skrypty automatyzujące zadania i zarządzać systemem. Bash jest domyślnym shellem w większości dystrybucji Linux.
- Ile zarabia Linux Administrator?
- Linux System Administrator zarabia w Polsce od 8 000 do 16 000 zł brutto. DevOps/SRE ze znajomością Linuksa i narzędzi chmurowych zarabia od 14 000 do 28 000 zł. Głęboka znajomość Linuksa kernela i bezpieczeństwa to umiejętność ceniona na rynku.