Перейти до вмісту

Unix

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні

Unix або UNIX — це сімейство операційних систем, філософія проєктування, стандарт сумісності та одна з найважливіших ідей в історії компʼютерних систем. Unix виник наприкінці 1960-х років у Bell Labs і вплинув на Linux, BSD, macOS, iOS, Android, Solaris, AIX, HP-UX, сучасні сервери, командний рядок, C, POSIX, DevOps, інтернет-інфраструктуру й культуру відкритих систем.

У строгому сучасному значенні UNIX® — це не просто будь-яка Unix-подібна система, а сертифікована система, яка відповідає вимогам The Open Group. У ширшому технічному й історичному сенсі Unix — це ціла традиція операційних систем, побудованих навколо ідей простоти, текстових інтерфейсів, файлів, процесів, pipes, shell, прав доступу й переносимості.

Unix — це не тільки операційна система. Це стиль мислення: маленькі інструменти, текстові потоки, файли як універсальна абстракція і можливість поєднувати прості речі у складні системи.

Коротко

Параметр Значення
Назва Unix / UNIX
Тип Сімейство операційних систем, стандарт, філософія проєктування
Походження Bell Labs
Початок розробки 1969 рік
Ключові постаті Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy та інші дослідники Bell Labs
Основна мова реалізації C та assembly у ранніх версіях
Сучасний власник торговельної марки UNIX® The Open Group
Актуальна специфікація Single UNIX Specification Version 5 / 2024
Повʼязані стандарти POSIX, Single UNIX Specification
Нащадки й родичі BSD, Solaris, AIX, HP-UX, illumos, macOS, Linux-подібні системи
Ключові ідеї Everything is a file, pipes, shell, process model, permissions, portability

Головна ідея Unix

Головна ідея Unix — створити просту, переносиму й багатокористувацьку операційну систему, у якій програми можна легко поєднувати між собою.

Unix-система мислить так:

файли;
каталоги;
процеси;
користувачі;
права доступу;
команди;
shell;
текстові потоки;
pipes;
невеликі утиліти;
скрипти;
мережа;
системні виклики.

Типова схема:

Користувач
→ Shell
→ Команди й програми
→ System calls
→ Unix kernel
→ Hardware

Unix зробив операційну систему не монолітом із важкими інструментами, а набором простих механізмів, які можна комбінувати.

Важливі акценти

Статус Теза Пояснення
Ключове Unix вплинув майже на всі сучасні операційні системи Linux, BSD, macOS, iOS, Android і багато серверних систем прямо або концептуально повʼязані з Unix.
Ключове UNIX® сьогодні є торговельною маркою Назву UNIX® офіційно використовують сертифіковані системи, які відповідають вимогам The Open Group.
Ключове Unix-філософія вплинула на DevOps і CLI-культуру Shell, pipes, grep, sed, awk, cron, ssh і текстові конфігурації — прямі спадкоємці Unix-культури.
Ключове Мова C і Unix розвивалися разом Переписування Unix мовою C зробило систему переносимішою між апаратними платформами.
Важливо Unix і Unix-like — не одне й те саме Linux є Unix-подібною системою, але не обовʼязково сертифікованим UNIX®.
Увага Unix-команди дають багато влади Неправильні команди з правами адміністратора можуть пошкодити систему або дані.

Unix, UNIX і Unix-like

Ці терміни потрібно розрізняти.

Термін Значення
Unix Історичне сімейство операційних систем і філософія проєктування
UNIX® Зареєстрована торговельна марка The Open Group для сертифікованих систем
Unix-like Система, схожа на Unix за принципами, API або поведінкою, але не обовʼязково сертифікована
POSIX-compatible Система або середовище, яке підтримує POSIX-інтерфейси
GNU/Linux Unix-подібна система на основі Linux kernel і GNU/інших компонентів

У побуті Linux часто називають Unix-подібною системою. Але офіційна назва UNIX® стосується сертифікації й торговельної марки.

Історія Unix

Unix зʼявився в Bell Labs наприкінці 1960-х років. Його створювали дослідники, яким потрібне було зручне середовище для програмування, роботи з файлами й експериментів.

Unix виріс після досвіду Multics — великого й амбітного проєкту операційної системи. На відміну від Multics, Unix спочатку був меншим, простішим і практичнішим.

Ключові етапи:

  • 1969 — початок роботи над Unix у Bell Labs;
  • ранні версії для PDP-компʼютерів;
  • розвиток shell, файлової системи, процесів і утиліт;
  • створення мови C;
  • переписування значної частини Unix мовою C;
  • поширення Unix в університетах;
  • поява BSD;
  • комерційні Unix-системи;
  • стандартизація POSIX і UNIX;
  • вплив на Linux, macOS, Android, BSD і сучасний інтернет.

Unix став успішним не тому, що був найбільшим, а тому, що був простим, переносимим і зручним для програмістів.

Bell Labs

Bell Labs — дослідницька лабораторія, де народилися Unix, мова C та багато інших фундаментальних технологій.

У контексті Unix Bell Labs важливі тому, що там працювали:

  • Ken Thompson;
  • Dennis Ritchie;
  • Brian Kernighan;
  • Douglas McIlroy;
  • Joe Ossanna;
  • інші дослідники.

Саме там сформувалися багато ідей, які сьогодні здаються звичними:

  • shell;
  • pipes;
  • C;
  • ієрархічна файлова система;
  • small tools;
  • text processing;
  • переносимість;
  • документація через man pages.

Ken Thompson

Ken Thompson — один із головних творців Unix.

Його внесок повʼязаний із:

  • раннім Unix;
  • файловою системою;
  • shell;
  • системним програмуванням;
  • мовою B;
  • ранніми інструментами;
  • загальною архітектурою системи.

Dennis Ritchie

Dennis Ritchie — співтворець Unix і творець мови C.

Його внесок критично важливий:

  • C стала мовою, якою Unix став переносимим;
  • Unix і C разом сформували стиль системного програмування;
  • багато сучасних мов, компіляторів і систем досі несуть цей вплив.

Unix дав світу модель операційної системи, а C дала спосіб переносити цю модель між різним обладнанням.

Brian Kernighan

Brian Kernighan — важлива постать Unix-культури, автор і співавтор класичних книг та інструментів.

Він повʼязаний із:

  • популяризацією Unix;
  • книгою про мову C разом із Dennis Ritchie;
  • AWK;
  • Unix-документацією;
  • поясненням Unix-філософії.

Douglas McIlroy

Douglas McIlroy — один із людей, повʼязаних із концепцією pipes і Unix-філософією.

Pipes стали однією з найважливіших ідей Unix, бо дозволили зʼєднувати програми між собою.

Приклад:

cat access.log | grep "error" | wc -l

Unix-філософія

Unix-філософія — це набір принципів проєктування програм і систем.

Типові ідеї:

  • робити одну річ добре;
  • поєднувати програми через текстові потоки;
  • використовувати прості формати;
  • писати програми, які можна комбінувати;
  • уникати зайвої складності;
  • робити інструменти придатними для автоматизації.

Unix-філософія каже: не створюй одну гігантську програму для всього. Створи прості інструменти, які можна поєднувати.

Everything is a file

Одна з відомих ідей Unix — everything is a file.

Це означає, що багато обʼєктів системи представлені через файлову модель:

  • звичайні файли;
  • каталоги;
  • пристрої;
  • термінали;
  • pipes;
  • sockets;
  • псевдофайлові системи.

Приклади:

/dev/null
/dev/tty
/proc
/etc/passwd

Коли система представляє багато речей як файли, з ними можна працювати однаковими інструментами: читати, писати, перенаправляти, фільтрувати.

Pipes

Pipe передає результат однієї програми іншій.

Символ pipe:

|

Приклад:

ps aux | grep nginx

Порахувати кількість рядків із помилками:

grep "error" app.log | wc -l

Сортування і підрахунок:

cat names.txt | sort | uniq -c

Pipes — це клей Unix-світу. Вони дозволяють будувати складну обробку даних із маленьких простих команд.

Shell

Shell — командна оболонка Unix.

Shell дозволяє:

  • запускати команди;
  • працювати з файлами;
  • перенаправляти потоки;
  • використовувати pipes;
  • писати скрипти;
  • автоматизувати задачі;
  • керувати процесами;
  • запускати програми.

Популярні shell:

Shell Опис
sh Класична Bourne shell
bash Bourne Again Shell, дуже поширена в Linux-світі
zsh Зручна інтерактивна shell, популярна в macOS і серед розробників
ksh KornShell, історично важлива shell
csh / tcsh C shell і її розвиток
fish Friendly Interactive Shell, зручна сучасна shell

sh

sh — класична shell Unix-систем.

Приклад скрипта:

#!/bin/sh

echo "Hello from Unix shell"

Команди Unix

Багато Unix-команд досі використовуються в Linux, macOS, BSD і серверних системах.

Команда Що робить
ls Показує файли
cd Переходить у каталог
pwd Показує поточний каталог
cp Копіює файли
mv Переміщує або перейменовує файли
rm Видаляє файли
cat Виводить вміст файлу
grep Шукає текст
find Шукає файли
sed Потоковий редактор
awk Обробка тексту й колонок
sort Сортує рядки
uniq Прибирає або рахує повтори
wc Рахує рядки, слова, символи
chmod Змінює права доступу
chown Змінює власника
ps Показує процеси
kill Надсилає сигнал процесу

Приклад Unix-стилю

Знайти всі log-файли, вибрати рядки з error і порахувати їх:

find . -name "*.log" -type f -print0 | xargs -0 grep -i "error" | wc -l

Ця команда поєднує:

  • find;
  • xargs;
  • grep;
  • wc;
  • pipe;
  • текстові потоки.

Файлова система Unix

Unix використовує ієрархічну файлову систему.

Корінь:

/

Типові каталоги:

Каталог Призначення
/bin Основні виконувані програми
/sbin Системні утиліти
/etc Конфігураційні файли
/home Домашні каталоги користувачів у багатьох Unix-like системах
/usr Програми, бібліотеки, документація
/var Логи, кеші, spool, змінні дані
/tmp Тимчасові файли
/dev Пристрої як файли
/proc Псевдофайлова система процесів у багатьох Unix-like системах
/opt Додаткове програмне забезпечення

Користувачі й права доступу

Unix із самого початку був багатокористувацькою системою.

Основні поняття:

  • user;
  • group;
  • owner;
  • permissions;
  • root;
  • process owner;
  • file owner;
  • read/write/execute.

Права:

Символ Значення
r read, читання
w write, запис
x execute, виконання

Приклад:

ls -l

Результат:

-rwxr-xr--

chmod

chmod змінює права доступу.

Зробити файл виконуваним:

chmod +x script.sh

Встановити права 755:

chmod 755 script.sh

chown

chown змінює власника файлу.

sudo chown user:group file.txt

Рекурсивно:

sudo chown -R user:group /path/to/folder

Рекурсивні команди з правами адміністратора потрібно виконувати обережно, бо вони можуть змінити багато файлів одразу.

root

root — суперкористувач Unix-системи.

Root може:

  • змінювати системні файли;
  • керувати користувачами;
  • встановлювати програми;
  • змінювати права;
  • запускати системні служби;
  • керувати мережею;
  • виконувати адміністративні дії.

Root має майже повну владу над системою. Тому працювати постійно під root — погана практика.

Процеси

Unix має модель процесів.

Кожна запущена програма є процесом.

Основні поняття:

  • PID;
  • parent process;
  • child process;
  • signals;
  • foreground process;
  • background process;
  • daemon.

Команди:

ps aux
kill 1234
jobs
bg
fg

Сигнали

Signals — механізм повідомлення процесів.

Приклади:

Сигнал Значення
SIGTERM Прохання завершитись
SIGKILL Примусове завершення
SIGHUP Часто використовується для перечитування конфігурації
SIGINT Переривання, наприклад Ctrl+C

Приклад:

kill -TERM 1234

Daemons

Daemon — фоновий процес Unix-системи.

Приклади:

  • web server;
  • cron;
  • sshd;
  • syslog;
  • database server;
  • mail server;
  • print service.

cron

cron — класичний Unix-механізм запуску задач за розкладом.

Приклад запуску backup щодня о 02:00:

0 2 * * * /home/user/backup.sh

Формат:

хвилина година день_місяця місяць день_тижня команда

Стандартні потоки

Unix-програми мають стандартні потоки.

Потік Номер Призначення
stdin 0 Стандартне введення
stdout 1 Стандартне виведення
stderr 2 Стандартний потік помилок

Приклади redirect:

echo "Hello" > output.txt
command 2> errors.log
command > output.log 2>&1

POSIX

POSIX — набір стандартів, які описують інтерфейси Unix-подібних операційних систем.

POSIX важливий для:

  • переносимості програм;
  • shell;
  • системних викликів;
  • файлових операцій;
  • процесів;
  • потоків;
  • утиліт;
  • сумісності між Unix-like системами.

POSIX — це спроба формалізувати Unix-поведінку так, щоб програми могли працювати на різних системах.

Single UNIX Specification

Single UNIX Specification або SUS — специфікація The Open Group, яка визначає вимоги до систем, що можуть бути сертифіковані як UNIX®.

Актуальна специфікація — Single UNIX Specification Version 5 / 2024. Вона повʼязана з POSIX і описує інтерфейси, утиліти, заголовки, поведінку системи та вимоги до сумісності. The Open Group управляє UNIX trademark licensing program.

Елемент Значення
UNIX® Торговельна марка The Open Group
SUS Single UNIX Specification
POSIX Набір стандартів переносимих інтерфейсів
Certification Процес підтвердження відповідності системи вимогам UNIX

Сертифіковані UNIX-системи

Сертифікованими UNIX можуть бути тільки системи, які пройшли відповідну процедуру The Open Group.

Приклади історично важливих або повʼязаних із UNIX систем:

  • IBM AIX;
  • HP-UX;
  • Oracle Solaris;
  • macOS у певних версіях;
  • інші системи, що проходили сертифікацію.

Не кожна Unix-подібна система є сертифікованим UNIX®. Наприклад, Linux зазвичай називають Unix-like, але не UNIX® у строгому торговельно-стандартизованому сенсі.

BSD

BSD або Berkeley Software Distribution — важлива гілка Unix-історії, що виникла в University of California, Berkeley.

BSD вплинув на:

  • TCP/IP stack;
  • sockets;
  • modern Unix;
  • FreeBSD;
  • OpenBSD;
  • NetBSD;
  • macOS;
  • інтернет-інфраструктуру.

FreeBSD

FreeBSD — Unix-like операційна система з BSD-традиції.

Використовується для:

  • серверів;
  • мережевих систем;
  • storage;
  • firewalls;
  • appliances;
  • ZFS-сценаріїв;
  • високонавантажених систем.

OpenBSD

OpenBSD — BSD-система з сильним акцентом на безпеку, аудит коду й простоту.

Відома завдяки:

  • OpenSSH;
  • security-first підходу;
  • якісній документації;
  • консервативному дизайну;
  • чистій архітектурі.

NetBSD

NetBSD — BSD-система, відома переносимістю на багато апаратних платформ.

Її часто описують ідеєю:

Of course it runs NetBSD

Solaris

Solaris — Unix-система, історично повʼязана з Sun Microsystems, пізніше Oracle.

Відома завдяки:

  • ZFS;
  • DTrace;
  • zones;
  • enterprise-сценаріям;
  • SPARC;
  • серверній інфраструктурі.

illumos

illumos — відкрита гілка, що походить від OpenSolaris.

Повʼязана з:

  • ZFS;
  • DTrace;
  • zones;
  • серверними й storage-сценаріями;
  • системами на кшталт OmniOS або SmartOS.

AIX

AIX — Unix-система IBM.

Використовується в enterprise-сценаріях:

  • банки;
  • великі компанії;
  • критичні системи;
  • IBM Power hardware;
  • корпоративні бази даних;
  • ERP.

HP-UX

HP-UX — Unix-система Hewlett-Packard / HPE.

Історично використовувалась у enterprise-середовищах:

  • сервери;
  • промислові системи;
  • корпоративні застосунки;
  • бази даних;
  • великі організації.

macOS і Unix

macOS має Unix-подібну основу Darwin і в різні періоди мала UNIX-сертифікацію для певних версій.

macOS поєднує:

  • Unix-подібну основу;
  • Terminal;
  • shell;
  • POSIX-інтерфейси;
  • графічний Apple UI;
  • AppKit;
  • Swift;
  • Apple ecosystem.

macOS цікава тим, що під красивим графічним інтерфейсом Apple ховається Unix-подібна основа з shell, процесами, правами й системними інструментами.

Linux і Unix

Linux не походить безпосередньо від оригінального Unix-коду, але є Unix-подібною системою.

Linux успадкував або повторив багато Unix-ідей:

  • shell;
  • permissions;
  • process model;
  • filesystem hierarchy;
  • pipes;
  • signals;
  • sockets;
  • C API;
  • POSIX-сумісність;
  • command-line culture.
Unix Linux
Історична система Bell Labs і її нащадки Незалежне Unix-подібне ядро, створене Лінусом Торвальдсом
Може означати сертифікований UNIX® Зазвичай не є сертифікованим UNIX®
Комерційні й академічні гілки Open source-екосистема дистрибутивів
AIX, Solaris, HP-UX, BSD-гілки Debian, Ubuntu, Fedora, Arch, RHEL та інші

Android і Unix

Android використовує Linux kernel, а отже має непрямий звʼязок із Unix-like світом.

Але Android не є звичайним Unix-дистрибутивом.

Unix/Linux-like ідея Android-реалізація
Kernel Linux kernel
Застосунки APK/AAB, Android Runtime
Userland Android framework замість класичного GNU/Linux userland
Security Android sandbox, permissions, SELinux
Shell adb shell у технічних сценаріях

Unix і C

Unix і C розвивалися разом.

C стала мовою, яка дозволила:

  • переписати Unix з assembly на переносимішу мову;
  • переносити систему на різні машини;
  • створювати системні утиліти;
  • писати компілятори;
  • формувати API;
  • вплинути на C++, Java, C#, JavaScript, Go, Rust та інші мови.

Приклад C-програми:

#include <stdio.h>

int main(void) {
    printf("Hello, Unix\n");
    return 0;
}

Unix і мережа

Unix-системи сильно вплинули на розвиток мережевої інфраструктури.

Важливі елементи:

  • TCP/IP;
  • sockets;
  • inetd;
  • ssh;
  • telnet у старих системах;
  • sendmail;
  • DNS;
  • NFS;
  • web servers;
  • network daemons.

Команди:

ping example.com
ssh user@example.com
netstat -an

Unix і інтернет

Багато ранньої інтернет-інфраструктури працювало на Unix або Unix-подібних системах.

Unix вплинув на:

  • web servers;
  • DNS;
  • email;
  • TCP/IP;
  • scripting;
  • log processing;
  • server administration;
  • open systems;
  • remote access;
  • network tools.

Unix і сервери

Unix-системи історично були дуже важливі для серверів.

Сценарії:

  • web server;
  • database server;
  • mail server;
  • file server;
  • application server;
  • scientific computing;
  • enterprise systems;
  • telecom;
  • banking;
  • universities.

Unix і DevOps

DevOps-культура багато в чому успадкувала Unix-підхід.

Unix-ідеї в DevOps:

  • shell scripts;
  • pipes;
  • logs as text;
  • config files;
  • cron;
  • ssh;
  • small tools;
  • automation;
  • command-line pipelines;
  • monitoring;
  • deployment scripts.

DevOps виглядає сучасно, але його коріння дуже Unix-ове: автоматизація, текст, shell, процеси, мережа й маленькі інструменти.

Unix і ERP

Unix-системи історично використовувались у великих корпоративних середовищах.

ERP-сценарії:

  • сервер бази даних;
  • application server;
  • batch jobs;
  • інтеграції;
  • обмін файлами;
  • планові задачі;
  • резервне копіювання;
  • middleware;
  • monitoring;
  • enterprise storage;
  • банківські й промислові системи.

Unix і K2 ERP

Для K2 ERP Unix важливий не обовʼязково як конкретна ОС для встановлення, а як історична й технічна основа багатьох серверних практик.

Unix-підхід корисний для K2 ERP у таких напрямах:

  • серверна архітектура;
  • Linux-сервери;
  • shell-автоматизація;
  • backup scripts;
  • cron/systemd timers;
  • логування;
  • text-based configuration;
  • API-сервіси;
  • бази даних;
  • Docker і Kubernetes;
  • CI/CD;
  • monitoring;
  • POSIX-сумісні інструменти.

Типова схема:

Користувачі K2 ERP
→ Web / Desktop / Mobile client
→ Backend на Linux/Unix-like server
→ Database
→ Queue / Cache / Storage
→ Backup / Monitoring / Logs

Навіть якщо K2 ERP не працює на класичному UNIX®, багато її серверних практик можуть бути Unix-подібними: shell, logs, services, backup, API, cron, Linux, Docker і monitoring.

Unix у корпоративному світі

Unix довго був основою великих корпоративних систем.

Типові галузі:

  • банки;
  • телеком;
  • університети;
  • промисловість;
  • авіація;
  • наука;
  • державні системи;
  • медіа;
  • інженерія;
  • великі ERP-системи;
  • бази даних.

Unix і безпека

Unix має сильну базову модель безпеки:

  • користувачі;
  • групи;
  • права доступу;
  • root;
  • процеси від імені користувача;
  • ізоляція файлів;
  • системні логи;
  • sudo у Unix-like системах;
  • chroot у деяких сценаріях;
  • SSH keys;
  • audit tools.

Але безпека залежить від адміністрування:

  • оновлення;
  • права;
  • конфігурація;
  • мережеві служби;
  • firewall;
  • backup;
  • моніторинг;
  • мінімізація доступів.

Unix і документація

Unix має сильну традицію документації через manual pages.

Команда:

man ls

Приклади:

man grep
man chmod
man sh
man printf

У Unix-світі документація часто живе прямо в системі. Команда man — це перше місце, куди варто дивитися.

Man pages

Manual pages зазвичай поділяються на секції.

Секція Зміст
1 Команди користувача
2 Системні виклики
3 Бібліотечні функції
4 Спеціальні файли
5 Формати файлів
6 Ігри
7 Огляди, conventions
8 Адміністративні команди

Переваги Unix

Перевага Пояснення
Простота концепцій Файли, процеси, shell, pipes і permissions створюють зрозумілу модель
Композиційність Команди можна поєднувати в pipelines
Переносимість C і POSIX-ідеї допомогли переносити програми між системами
Стабільність Unix-системи історично сильні в довготривалих серверних сценаріях
Багатокористувацька модель Unix із самого початку був розрахований на кількох користувачів
Сильна CLI-культура Shell і команди зручні для автоматизації
Вплив на сучасне IT Linux, macOS, BSD, Android і DevOps несуть Unix-спадщину

Недоліки Unix

Недолік Пояснення
Складність для новачків Shell, права, процеси й конфігурації потребують навчання
Історична фрагментація Різні Unix-гілки мали різні команди, API й інструменти
Комерційні Unix-системи можуть бути дорогими AIX, HP-UX, Solaris у enterprise-сценаріях повʼязані з обладнанням і підтримкою
Не всі системи однаково сумісні POSIX і SUS допомагають, але деталі можуть відрізнятися
CLI може бути небезпечним Потужні команди легко використати неправильно
Менше масового desktop-ПЗ Класичні Unix-системи не стали головною домашньою desktop-платформою

Типові помилки новачків у Unix-like системах

Помилка Чому це проблема
Працювати постійно під root Можна випадково пошкодити систему
Копіювати команди без розуміння Команда може змінити права, видалити файли або зламати конфігурацію
Ігнорувати man pages Втрачається головне джерело документації
Не брати змінні в лапки у shell Пробіли й спецсимволи можуть зламати скрипт
Плутати Unix, Linux і macOS Це повʼязані, але різні системи
Не робити backup Помилки адміністратора або диска можуть призвести до втрати даних

Unix у порівнянні з іншими ОС

Система Порівняння
Linux Unix-подібна open source-екосистема, не прямий нащадок оригінального Unix-коду
BSD Історично ближча Unix-гілка з університетської традиції Berkeley
macOS Unix-подібна система Apple з графічним інтерфейсом і Darwin-основою
Windows Має іншу історію й архітектуру, хоча підтримує багато Unix-подібних інструментів через WSL
Android Використовує Linux kernel, але має власну Android-модель застосунків
Solaris / AIX / HP-UX Комерційні enterprise Unix-системи

Коли Unix-підхід — хороший вибір

Задача Чи підходить Unix-підхід?
Серверна інфраструктура Дуже добре
Автоматизація через shell Дуже добре
Обробка логів Дуже добре
DevOps Дуже добре
ERP backend і сервери Добре
Навчання системному програмуванню Дуже добре
Масовий домашній gaming desktop Не основний сценарій
Windows-only програми й драйвери Не напряму

Рекомендований шлях вивчення Unix

Етап Що вивчати
1 Історія Unix і Bell Labs
2 Unix-філософія
3 Shell і командний рядок
4 Файлова система
5 Права доступу й користувачі
6 Процеси й сигнали
7 Pipes і redirect
8 grep, sed, awk, find
9 Shell scripts
10 cron і daemons
11 POSIX
12 C і системні виклики
13 TCP/IP і sockets
14 BSD, Linux, macOS, Solaris

Мінімальний набір Unix-команд

Команда Для чого
man Документація
ls Перегляд файлів
cd Перехід у каталог
pwd Поточний каталог
cat Виведення файлу
grep Пошук тексту
find Пошук файлів
chmod Права доступу
ps Процеси
kill Сигнали процесам
ssh Віддалений доступ
cron Задачі за розкладом

Корисні приклади

Поточний каталог:

pwd

Переглянути файли:

ls -la

Знайти текст:

grep -R "error" .

Знайти файли:

find . -name "*.conf"

Подивитись процеси:

ps aux

Переглянути документацію:

man grep

Простими словами

Unix — це прадід багатьох сучасних операційних систем і водночас набір ідей, які досі живуть у Linux, macOS, BSD, Android, серверах і DevOps.

Якщо сучасний сервер — це місто, то Unix — це один із перших вдалих планів такого міста: вулиці-файли, мешканці-процеси, правила-дозволи, транспорт-pipes і диспетчер-shell.

Висновок

Unix — одна з найвпливовіших технологій в історії компʼютерів.

Він важливий для:

  • операційних систем;
  • Linux;
  • BSD;
  • macOS;
  • Android;
  • серверів;
  • DevOps;
  • C;
  • POSIX;
  • shell;
  • інтернет-інфраструктури;
  • системного програмування;
  • ERP-серверів;
  • автоматизації;
  • текстових інструментів.

Unix навчив індустрію, що операційна система може бути не тільки набором внутрішніх механізмів, а й культурою роботи: прості інструменти, текстові потоки, переносимість, автоматизація, документація й повага до командного рядка.

Unix — це система, яка стала філософією. Саме тому її ідеї пережили десятиліття й досі працюють у Linux-серверах, MacBook, Android-смартфонах, хмарі, контейнерах і бізнес-системах.

Джерела