Unix
</syntaxhighlight>
! Елемент
Linux і Unix
- Unix-подібну основу;
- Terminal;
- shell;
- POSIX-інтерфейси;
- графічний Apple UI;
- AppKit;
- Swift;
- Apple ecosystem. DevOps-культура багато в чому успадкувала Unix-підхід. Символ
Shell дає можливість: ! SEO-опис → Queue / Cache / Storage
HP-UX
Unix і C
! {| class="wikitable"
{| class="wikitable"
<syntaxhighlight lang="bash">
</syntaxhighlight>
! Чи підходить Unix-підхід? Але офіційна назва UNIX® стосується сертифікації й торговельної марки.'''
програмування забезпечується через Unix зʼявився в Bell Labs наприкінці 1960-х років.== Unix і сервери ==
jobs
Корінь:
У строгому сучасному значенні '''UNIX®''' — це не без зусиль будь-яка Unix-подібна платформа, а сертифікована платформа, яка відповідає вимогам The Open Group. Призначення
'''OpenBSD''' — BSD-система з сильним акцентом на безпеку, аудит коду й простоту.</blockquote>
застосовується для для:
POSIX важливий для:
man grep
</blockquote>
|
== Сертифіковані UNIX-системи ==
{| class="wikitable"
pipes;
}
Його внесок критично важливий:
Unix-системи історично використовувались у великих корпоративних середовищах. Unix має модель процесів. Значення
</syntaxhighlight>
<syntaxhighlight lang="bash">
! Секція
!== Команди Unix ==
== Стандартні потоки ==
</syntaxhighlight>
</syntaxhighlight>
== illumos ==
'''sh''' — класична shell Unix-систем. Пояснення
<blockquote>
[[Category:ERP]]
'''illumos''' — відкрита гілка, що походить від OpenSolaris. * OpenSSH;
* security-first підходу;
* якісній документації;
* консервативному дизайну;
* чистій архітектурі. Shell
<syntaxhighlight lang="bash">
Signals — механізм повідомлення процесів. {| class="wikitable"
<syntaxhighlight lang="bash">
! kill 1234
Ця команда поєднує:
<blockquote>
|-
| Історична платформа Bell Labs і її нащадки
| Незалежне Unix-подібне ядро, створене Лінусом Торвальдсом
|-
| здатна означати сертифікований UNIX®
| Зазвичай не виступає як сертифікованим UNIX®
|-
| Комерційні й академічні гілки
| Open source-екосистема дистрибутивів
|-
| AIX, Solaris, HP-UX, BSD-гілки
| Debian, Ubuntu, Fedora, Arch, RHEL та інші
|}
== Unix і мережа ==
<syntaxhighlight lang="bash">
{| class="wikitable"
man ls
! -rwxr-xr--
<syntaxhighlight lang="bash">
! Що робить
|-
| '''UNIX®'''
| Торговельна марка The Open Group
|-
| '''SUS'''
| Single UNIX Specification
|-
| '''POSIX'''
| Набір стандартів переносимих інтерфейсів
|-
| '''Certification'''
| бізнес-процес підтвердження відповідності системи вимогам UNIX
|}
!== sh ==
{| class="wikitable"
'''FreeBSD''' — Unix-like операційна платформа з BSD-традиції. '''Brian Kernighan''' — важлива постать Unix-культури, автор і співавтор класичних книг та інструментів. ps aux
Приклади:
'''Dennis Ritchie''' — співтворець Unix і творець мови C. Він повʼязаний із:
застосовується для в enterprise-сценаріях:
* user;
* group;
* owner;
* permissions;
* root;
* process owner;
* file owner;
* read/write/execute. sudo chown -R user:group /path/to/folder
команди;
#include <stdio.h>
'''Daemon''' — фоновий бізнес-процес Unix-системи.</syntaxhighlight>
<syntaxhighlight lang="bash">
! Значення
command > output.log 2>&1
<blockquote>
* PID;
* parent process;
* child process;
* signals;
* foreground process;
* background process;
* daemon. Пояснення
'''POSIX''' — набір стандартів, які описують інтерфейси Unix-подібних операційних систем. Android-реалізація
Саме там сформувалися багато ідей, які сьогодні здаються звичними:
== NetBSD ==
* IBM AIX;
* HP-UX;
* Oracle Solaris;
* macOS у певних версіях;
* інші системи, що проходили сертифікацію.== Unix, UNIX і Unix-like ==
! pwd
Зробити файл виконуваним:
</blockquote>
{| class="wikitable"
<syntaxhighlight lang="bash">
command 2> errors.log
мережа;
<syntaxhighlight lang="bash">
'''Unix-філософія каже: не створюй одну гігантську програму для всього. netstat -an
<pre>
* змінювати системні файли;
* керувати користувачами;
* встановлювати програми;
* змінювати права;
* запускати системні служби;
* керувати мережею;
* виконувати адміністративні дії. -name "*.conf"
* банки;
* телеком;
* університети;
* промисловість;
* авіація;
* наука;
* державні системи;
* медіа;
* інженерія;
* великі ERP-системи;
* бази даних.<syntaxhighlight lang="c">
<syntaxhighlight lang="bash">
права доступу;
== FreeBSD ==
'''AIX''' — Unix-система IBM. Of course it runs NetBSD
Unix і C розвивалися разом. Перевага
<blockquote>
== Типові помилки новачків у Unix-like системах ==
* переписати Unix з assembly на переносимішу мову;
* переносити систему на різні машини;
* створювати системні утиліти;
* писати компілятори;
* формувати API;
* вплинути на C++, Java, C#, JavaScript, Go, Rust та інші мови. ! Створи прості інструменти, які можна поєднувати.'''
</blockquote>
Приклади:
Важливі елементи:
ssh user@example.com
<pre>
</syntaxhighlight>
'''Douglas McIlroy''' — один із людей, повʼязаних із концепцією pipes і Unix-філософією.== Головна ідея Unix ==
'''Solaris''' — Unix-система, історично повʼязана з Sun Microsystems, пізніше Oracle.</syntaxhighlight>
== macOS і Unix ==
'''Linux''' не походить безпосередньо від оригінального Unix-коду, але виступає як Unix-подібною системою.<blockquote>
! Переглянути документацію:
<blockquote>
<syntaxhighlight lang="bash">
[[Category:DevOps]]
! '''NetBSD''' — BSD-система, відома переносимістю на багато апаратних платформ. Порівняння
== Приклад Unix-стилю ==
Символ pipe:
<pre>
Приклад скрипта:
! {| class="wikitable"
[[Category:UNIX]]
</syntaxhighlight>
</blockquote>
* The Open Group — UNIX: https://www.unix.org/
* The Single UNIX Specification V5 / 2024: https://www.unix.org/overview.html
* The Open Group — UNIX Standard: https://www.opengroup.org/membership/forums/platform/unix
* The Open Group — UNIX Certification Program: https://www.opengroup.org/certifications/unix
* POSIX / The Open Group Base Specifications: https://pubs.opengroup.org/onlinepubs/9799919799/
* Dennis Ritchie — The Evolution of the Unix Time-sharing System: https://www.nokia.com/bell-labs/about/dennis-m-ritchie/hist.pdf
* The Unix Heritage Society: https://www.tuhs.org/
* FreeBSD: https://www.freebsd.org/
* OpenBSD: https://www.openbsd.org/
* NetBSD: https://www.netbsd.org/
Приклади історично важливих або повʼязаних із UNIX систем:
{| class="wikitable"
kill -TERM 1234
! Це означає, що багато обʼєктів системи представлені через файлову модель:
! Багато ранньої інтернет-інфраструктури працювало на Unix або Unix-подібних системах. Linux успадкував або повторив багато Unix-ідей:
Unix вплинув на:
Мінімальний набір Unix-команд
printf("Hello, Unix\n");
|- | sh | Класична Bourne shell |- | bash | Bourne Again Shell, дуже поширена в Linux-світі |- | zsh | Зручна інтерактивна shell, популярна в macOS і серед розробників |- | ksh | KornShell, історично важлива shell |- | csh / tcsh | C shell і її дорожня карта розвитку |- | fish | Friendly Interactive Shell, зручна сучасна shell |}
Сигнали
/etc/passwd
DevOps виглядає сучасно, але його коріння дуже Unix-ове: автоматизація процесів, текст, shell, процеси, мережа й маленькі інструменти.
Douglas McIlroy
- !/bin/sh
ERP-сценарії:
Повʼязана з:Приклади:
Сценарії: '''Навіть якщо K2 ERP не функціонує на класичному UNIX®, багато її серверних практик можуть бути Unix-подібними: shell, logs, services, backup, API, cron, Linux, Docker і monitoring.''' '''Unix став успішним не тому, що був найбільшим, а тому, що був простим, переносимим і зручним для програмістів.''' find . ! Термін == Unix і K2 ERP == |- | Kernel | Linux kernel |- | Застосунки | APK/AAB, Android Runtime |- | Userland | Android framework замість класичного GNU/Linux userland |- | Security | Android sandbox, permissions, SELinux |- | Shell | adb shell у технічних сценаріях |} !<syntaxhighlight lang="bash">
Рекурсивні команди з правами адміністратора потрібно виконувати обережно, бо вони можуть змінити багато файлів одразу. Unix і інтернет
|
- | Увага | Unix-команди дають багато влади | class="wikitable"
Unix і безпекаКожна запущена програма виступає як процесом. Переглянути файли: Unix — одна з найвпливовіших технологій в історії компʼютерів. Номер C стала мовою, яка дозволила: return 0; BSD вплинув на:
Важливі акценти
Приклад: Unix дав світу модель операційної системи, а C дала спосіб переносити цю модель між різним обладнанням. |
* переносимості програм;
</syntaxhighlight> Single UNIX Specification або SUS — специфікація The Open Group, яка визначає вимоги до систем, що можуть бути сертифіковані як UNIX®. Відома через: Dennis Ritchiecron — класичний Unix-механізм запуску задач за розкладом. Unix-філософія — це набір принципів проєктування програм і систем. Каталог </syntaxhighlight> → Unix kernel
Man pageschmod 755 script.sh Приклад: | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 ==
* TCP/IP stack;
* sockets;
* modern Unix;
* FreeBSD;
* OpenBSD;
* NetBSD;
* macOS;
* інтернет-інфраструктуру. Pipes стали однією з найважливіших ідей Unix, бо дозволили зʼєднувати програми між собою. Значення
!</blockquote>
→ Shell
Unix із самого початку був багатокористувацькою системою.<blockquote>
Unix — це прадід багатьох сучасних операційних систем і водночас набір ідей, які досі живуть у Linux, macOS, BSD, Android, серверах і DevOps. |-
| style="background:#fff3cd; color:#856404; font-weight:bold;" | критично
| '''Unix і Unix-like — не одне й те саме'''
| Linux виступає як Unix-подібною системою, але не обовʼязково сертифікованим UNIX®. ! Сертифікованими UNIX можуть бути тільки системи, які пройшли відповідну процедуру The Open Group.<syntaxhighlight lang="bash">
== cron ==
</blockquote>
* web server;
* database server;
* mail server;
* file server;
* application server;
* scientific computing;
* enterprise systems;
* telecom;
* banking;
* universities. Команди:
→ Hardware
|-
| '''r'''
| read, читання
|-
| '''w'''
| write, запис
|-
| '''x'''
| execute, виконання
|}
'''chmod''' змінює права доступу.[[Category:C]]
/dev/tty
Unix використовує ієрархічну файлову систему. !
Права: |- | /bin | Основні виконувані програми |- | /sbin | Системні утиліти |- | /etc | Конфігураційні файли |- | /home | Домашні каталоги користувачів у багатьох Unix-like системах |- | /usr | Програми, бібліотеки, документація |- | /var | Логи, кеші, spool, змінні інформаційні дані |- | /tmp | Тимчасові файли |- | /dev | Пристрої як файли |- | /proc | Псевдофайлова платформа процесів у багатьох Unix-like системах |- | /opt | Додаткове програмне забезпечення (ПЗ) |}
Багато Unix-команд досі використовуються в Linux, macOS, BSD і серверних системах. Параметр
sudo chown user:group file.txt
Встановити права 755:
невеликі утиліти; '''macOS цікава тим, що під красивим графічним інтерфейсом Apple ховається Unix-подібна основа з shell, процесами, правами й системними інструментами.''' |- | '''stdin''' | 0 | Стандартне введення |- | '''stdout''' | 1 | Стандартне виведення |- | '''stderr''' | 2 | Стандартний потік помилок |} </blockquote> У контексті Unix Bell Labs важливі тому, що там працювали: Актуальна специфікація — '''Single UNIX Specification Version 5 / 2024'''. '''chown''' змінює власника файлу. |- | style="background:#d4edda; color:#155724; font-weight:bold;" | Ключове | '''Мова C і Unix розвивалися разом''' | Переписування Unix мовою C зробило систему переносимішою між апаратними платформами. Вони дозволяють будувати складну обробку даних із маленьких простих команд.''' == Solaris ==
Коли платформа представляє багато речей як файли, з ними можна працювати однаковими інструментами: читати, писати, перенаправляти, фільтрувати. Приклад C-програми: </syntaxhighlight> BSD або Berkeley Software Distribution — важлива гілка Unix-історії, що виникла в University of California, Berkeley. Теза
Shell — командна оболонка Unix.== історія продукту Unix ==
Популярні shell:
- популяризацією Unix;
- книгою про мову C разом із Dennis Ritchie;
- AWK;
- Unix-документацією;
- поясненням Unix-філософії. це сімейство операційних систем. Тому працювати постійно під root — погана практика.
chown
chmod
</syntaxhighlight>
Unix-системи історично були дуже важливі для серверів.macOS має Unix-подібну основу Darwin і в різні періоди мала UNIX-сертифікацію для певних версій.== POSIX ==
ls -la
- раннім Unix;
- файловою системою;
- shell;
- системним програмуванням;
- мовою B;
- ранніми інструментами;
- загальною архітектурою системи.
</syntaxhighlight>
shell;
- C стала мовою, якою Unix став переносимим;
- Unix і C разом сформували стиль системного програмування;
- багато сучасних мов, компіляторів і систем досі несуть цей вплив.
</syntaxhighlight> man printf
системні виклики. Unix зробив операційну систему не монолітом із важкими інструментами, а набором простих механізмів, які можна комбінувати.
Коротко
файли;
Типова схема:
Типові ідеї:
- TCP/IP;
- sockets;
- inetd;
- ssh;
- telnet у старих системах;
- sendmail;
- DNS;
- NFS;
- web servers;
- network daemons. Unix навчив індустрію, що операційна платформа здатна бути не тільки набором внутрішніх механізмів, а й культурою роботи: прості інструменти, текстові потоки, переносимість, автоматизація процесів, документація й повага до командного рядка. Приклад запуску backup щодня о 02:00:
|-
| '''ls'''
| Показує файли
|-
| '''cd'''
| Переходить у каталог
|-
| '''pwd'''
| Показує поточний каталог
|-
| '''cp'''
| Копіює файли
|-
| '''mv'''
| Переміщує або перейменовує файли
|-
| '''rm'''
| Видаляє файли
|-
| '''cat'''
| Виводить вміст файлу
|-
| '''grep'''
| Шукає текст
|-
| '''find'''
| Шукає файли
|-
| '''sed'''
| Потоковий редактор
|-
| '''awk'''
| Обробка тексту й колонок
|-
| '''sort'''
| Сортує рядки
|-
| '''uniq'''
| Прибирає або рахує повтори
|-
| '''wc'''
| Рахує рядки, слова, символи
|-
| '''chmod'''
| Змінює права доступу
|-
| '''chown'''
| Змінює власника
|-
| '''ps'''
| Показує процеси
|-
| '''kill'''
| Надсилає сигнал процесу
|}
== OpenBSD ==
</pre>
echo "Hello" > output.txt
'''Якщо сучасний сервер — це місто, то Unix — це один із перших вдалих планів такого міста: вулиці-файли, мешканці-процеси, правила-дозволи, транспорт-pipes і диспетчер-shell.'''
* find;
* xargs;
* grep;
* wc;
* pipe;
* текстові потоки.</blockquote>
int main(void) {
Приклад:
* банки;
* великі компанії;
* критичні системи;
* IBM Power hardware;
* корпоративні бази даних;
* ERP.<syntaxhighlight lang="bash">
== Процеси ==
* сервер бази даних;
* application server;
* batch jobs;
* інтеграції;
* обмін файлами;
* планові задачі;
* резервне копіювання;
* middleware;
* monitoring;
* enterprise storage;
* банківські й промислові системи. ls -l
'''У Unix-світі документація часто живе прямо в системі. Що вивчати
grep "error" app.log | wc -l
Головна ідея Unix — створити просту, переносиму й багатокористувацьку операційну систему, у якій програми можна швидко поєднувати між собою.
</syntaxhighlight>
BSD
Ці терміни потрібно розрізняти. Значення
- звичайні файли;
- каталоги;
- пристрої;
- термінали;
- pipes;
- sockets;
- псевдофайлові системи.
процеси;
cat names.txt | sort | uniq -c
Поточний каталог: Історично використовувалась у enterprise-середовищах:
Рекомендований шлях вивчення Unix
Root має майже повну владу над системою. |-
| Ключове | UNIX® сьогодні виступає як торговельною маркою | Назву UNIX® офіційно використовують сертифіковані системи, які відповідають вимогам The Open Group. На відміну від Multics, Unix спочатку був меншим, простішим і практичнішим. ! платформа
Порахувати кількість рядків із помилками: echo "Hello from Unix shell" Формат: хвилина година день_місяця місяць день_тижня команда
Приклади: ВисновокСортування і підрахунок: Unix і документаціяUnix-ідеї в DevOps: Pipes |
Pipes — це клей Unix-світу.Manual pages зазвичай поділяються на секції. Статус
{| class="wikitable"
<syntaxhighlight lang="bash">
Brian Kernighanman grep користувачі; Everything is a file</syntaxhighlight> </syntaxhighlight> Його внесок повʼязаний із: Unix і ERP
Але безпека залежить від адміністрування: Для K2 ERP Unix важливий не обовʼязково як конкретна ОС для встановлення, а як історична й технічна основа багатьох серверних практик.'''Не кожна Unix-подібна платформа виступає як сертифікованим UNIX®. Команда
'''Pipe''' передає результат однієї програми іншій. man chmod
Root здатна: HP-UX — Unix-система Hewlett-Packard / HPE. Типова схема: Unix довго був основою великих корпоративних систем. як приклад, Linux зазвичай називають Unix-like, але не UNIX® у строгому торговельно-стандартизованому сенсі. Unix-філософіяroot |
- | Ключове | Unix-філософія вплинула на DevOps і CLI-культуру | Shell, pipes, grep, sed, awk, cron, ssh і текстові конфігурації — прямі спадкоємці Unix-культури. Unix/Linux-like ідея
→ Web / Desktop / Mobile client
'''Unix — це платформа, яка стала філософією. Етап
'''Bell Labs''' — дослідницька лабораторія, де народилися Unix, мова C та багато інших фундаментальних технологій. Unix
'''root''' — суперкористувач Unix-системи. fg
[[Category:Shell]]
→ Database
! Призначення
== Bell Labs ==
Знайти файли:
== AIX ==
<syntaxhighlight lang="bash">
man sh | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Команди користувача | ||||||||||||||
| 2 | Системні виклики | ||||||||||||||
| 3 | Бібліотечні функції | ||||||||||||||
| 4 | Спеціальні файли | ||||||||||||||
| 5 | Формати файлів | ||||||||||||||
| 6 | Ігри | ||||||||||||||
| 7 | Огляди, conventions | ||||||||||||||
| 8 | Адміністративні команди |
Файлова платформа Unix
→ Backend на Linux/Unix-like server → System calls chmod +x script.sh
Простота концепцій Файли, процеси, shell, pipes і permissions створюють зрозумілу модель Композиційність Команди можна поєднувати в pipelines Переносимість C і POSIX-ідеї допомогли переносити програми між системами Стабільність Unix-системи історично сильні в довготривалих серверних сценаріях Багатокористувацька модель Unix із самого початку був розрахований на кількох користувачів Сильна CLI-культура Shell і команди зручні для автоматизації Вплив на сучасне IT Linux, macOS, BSD, Android і DevOps несуть Unix-спадщину
скрипти;Джерела
Складність для новачків Shell, права, процеси й конфігурації потребують навчання Історична фрагментація Різні Unix-гілки мали різні команди, API й інструменти Комерційні Unix-системи можуть бути дорогими AIX, HP-UX, Solaris у enterprise-сценаріях повʼязані з обладнанням і підтримкою Не всі системи однаково сумісні POSIX і SUS допомагають, але деталі можуть відрізнятися CLI здатна бути небезпечним Потужні команди швидко використати неправильно Менше масового desktop-ПЗ Класичні Unix-системи не стали головною домашньою desktop-платформою
Користувачі K2 ERP cat access.log | grep "error" | wc -l ! Unix-система мислить так: Unix — це не тільки операційна платформа. Типові каталоги: Одна з відомих ідей Unix — everything is a file. текстові потоки;
Unix-програми мають стандартні потоки. |}
ping example.com
Команди:
Подивитись процеси:
== Unix і DevOps ==
|-
| '''Unix'''
| Історичне сімейство операційних систем і філософія проєктування
|-
| '''UNIX®'''
| Зареєстрована торговельна марка The Open Group для сертифікованих систем
|-
| '''Unix-like'''
| платформа, схожа на Unix за принципами, API або поведінкою, але не обовʼязково сертифікована
|-
| '''POSIX-compatible'''
| платформа або середовище, яке підтримує POSIX-інтерфейси
|-
| '''GNU/Linux'''
| Unix-подібна платформа на основі Linux kernel і GNU/інших компонентів
|}
/dev/null
== конкурентні переваги Unix ==
[[Category:Bell Labs]]
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
<blockquote>
{| class="wikitable"
* 1969 — початок роботи над Unix у Bell Labs;
* ранні версії для PDP-компʼютерів;
* дорожня карта розвитку shell, файлової системи, процесів і утиліт;
* створення мови C;
* переписування значної частини Unix мовою C;
* поширення Unix в університетах;
* поява BSD;
* комерційні Unix-системи;
* стандартизація POSIX і UNIX;
* вплив на Linux, macOS, Android, BSD і сучасний інтернет. '''Ken Thompson''' — один із головних творців Unix. Саме тому її ідеї пережили десятиліття й досі працюють у Linux-серверах, MacBook, Android-смартфонах, хмарі, контейнерах і бізнес-системах.'''
Він важливий для:
* ZFS;
* DTrace;
* zones;
* enterprise-сценаріям;
* SPARC;
* серверній інфраструктурі. Це стиль мислення: маленькі інструменти, текстові потоки, файли як універсальна абстракція і можливість поєднувати прості речі у складні системи.'''
У побуті Linux часто називають Unix-подібною системою.
! Відома через:
Daemons
Приклади redirect:
grep -R "error" . Unix виник наприкінці 1960-х років у Bell Labs і вплинув на Linux, BSD, macOS, iOS, Android, Solaris, AIX, HP-UX, сучасні сервери, командний рядок, C, POSIX, DevOps, інтернет-інфраструктуру й культуру відкритих систем. Вона повʼязана з POSIX і описує інтерфейси, утиліти, заголовки, поведінку системи та вимоги до сумісності. У ширшому технічному й історичному сенсі Unix — це ціла традиція операційних систем, побудованих навколо ідей простоти, текстових інтерфейсів, файлів, процесів, pipes, shell, прав доступу й переносимості.</syntaxhighlight> </syntaxhighlight> Unix виріс після досвіду Multics — великого й амбітного проєкту операційної системи. Unix має сильну традицію документації через manual pages. bg Результат:
! Android використовує Linux kernel, а отже має непрямий звʼязок із Unix-like світом. Сигнал ! Знайти всі log-файли, вибрати рядки з error і порахувати їх:
!
<syntaxhighlight lang="bash"> == Android і Unix ==