Інтернет Windows Android

Основи Linux - командний рядок і файлова система. Історія виникнення і стандарти UNIX Стандарт ієрархії файлової системи

Операційна система UNIX

Офіційною датою народження операційної системи UNIX вважають 1 січня 1970 року. Саме з цього моменту будь-яка система UNIX відраховує своє системне час. Це - дуже великий термін для операційної системи. Сьогодні, незважаючи на появу багатьох інших операційних систем, побудованих на інших принципах, UNIX міцно займає місце серед лідерів.

До основних характеристик UNIX, що дозволяє зрозуміти причини довгожительства цієї системи, можна віднести наступні.

Код системи написаний на мові високого рівня СІ, що зробило її простий для розуміння, змін і перенесення на інші апаратні платформи.

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

UNIX має простим, але потужним набором стандартних користувальницьких інтерфейсів.

Уніфікований інтерфейс файлової системи UNIX реалізує доступ не тільки до даних, що зберігаються на дисках, а й до терміналів, принтерів, магнітних стрічок, компакт-дисків, мережі та навіть до пам'яті.

Для системи UNIX розроблено велику кількість різних додатків - від найпростіших текстових редакторів до потужних систем управління базами даних.

У загальному вигляді операційна система UNIX може бути представлена \u200b\u200bдворівневою моделлю, як це зображено на рис. 8.1
.

У центрі знаходиться ядро системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп'ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро включає в себе програми, що реалізують набір послуг, що надаються прикладним програмам. До послуг ядра відносяться операції введення / виводу, створення і управління процесами, синхронізація процесів і т.д. Наступний рівень моделі - системні послуги, що забезпечують користувальницький інтерфейс ОС UNIX. Схема взаємодії з ядром і додатків, і системних задач однакова.

Функції операційної системи UNIX

Операційна система UNIX взаємодіє з апаратними та програмними ресурсами комп'ютера, виконуючи наступні функції:

    управління обладнанням;

    управління ресурсами;

    моніторинг системи;

управління обладнанням

Прикладні програми не мають можливості використовувати дане обладнання комп'ютера безпосередньо. Тільки операційна система виконує функції управління обладнанням, надаючи можливість доступу додатків і іншим програмам до периферійних пристроїв (при цьому усувається необхідність знати специфіку управління таким пристроєм). Закладена в ОС концепція незалежності програм від конкретної апаратної реалізації є одним з важливих елементів забезпечення мобільності операційної системи UNIX, що дозволяє широко використовувати її в різноманітних апаратних конфігураціях.

управління ресурсами

ОС UNIX управляє розподілом ресурсів комп'ютера між безліччю користувачів, що виконують одночасно безліч завдань, часто працюють з різними об'єктами, підтримуючи багатозадачність і розрахований на багато користувачів режими роботи. Багатозадачність дозволяє одному користувачеві виконувати одночасно кілька програм, при цьому центральний процесор і оперативна пам'ять розділяються між безліччю процесів.

Розрахований на багато користувачів режим підтримує можливість одночасної роботи декількох користувачів, розділяючи між ними ресурси комп'ютера, в тому числі дорогі периферійні пристрої, такі як принтери або плоттери. Такий режим роботи виявляється економічно більш ефективним, ніж об'єднання декількох машин, на яких працює по одному користувачеві.

Підтримка інтерфейсів користувача

Це засіб забезпечення інтерактивного (забезпечує діалог) взаємодії користувачів з обчислювальною системою.

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

Командний рядок зазвичай зручна для користувачів, знайомих з функціями і командами системи. При роботі з таким типом інтерфейсу користувач на «запрошення» (за замовчуванням для користувача це знак долара) вводить кожну команду з клавіатури. Цей інтерфейс не забезпечує «огляду» системи, однак дозволяє виконати будь-яку команду системи. Програми, які забезпечують такий інтерфейс, називаються командними оболонками (Shell). Командних оболонок існує дуже багато: Bourne shell (sh), Bourne Again Shell (bash), Korn shell (ksh), C shell (csh), Debian Almquist shell (dash), Zsh і т.д. Найбільш поширеною є bash.

Зазвичай використовується новачками або користувачами, яким необхідно провести деякі установки в операційній системі. Часто такий інтерфейс здійснює функцію гіда: він дозволяє користувачеві вибрати деяку функцію зі списку (меню), яка буде виконуватися системою. Зазвичай меню організовується у вигляді багаторівневого тексту, пропонуючи користувачеві кілька можливостей вибору. Прикладом такого інтерфейсу може служити програма sysadm, яка допомагає системному адміністратору виконувати роботи по конфігурації і налаштування системи.

Графічний користувальницький інтерфейс орієнтований як на новачків, так і на кваліфікованих користувачів. Він забезпечує кілька шляхів взаємодії з комп'ютером: огляд об'єктів системи, зображуваних піктограмами, виконання команд шляхом вибору графічного зображення (піктограми) на екрані дисплея за допомогою «миші» або пристрою tracking ball. ОС UNIX забезпечує X.desktop як графічний користувальницький інтерфейс для роботи зі спеціальними X-терміналами або систему X Window для роботи зі звичайними графічними терміналами.

Забезпечення віддаленого доступу в комп'ютерній мережі

ОС UNIX забезпечує доступ користувачів до ресурсів інших комп'ютерів, що працюють в обчислювальної мережі. У складі операційної системи є набір мережевих додатків, що дозволяють встановлювати зв'язок з віддаленим комп'ютером, реєструватися в віддаленій системі, передавати дані між комп'ютерами мережі, користуватися електронною поштою. UNIX підтримує мережеву файлову систему NFS (Network File System), що дозволяє користуватися командами операційної системи для доступу до файлової системи віддаленого комп'ютера.

Компоненти операційної системи UNIX

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

У складі ОС UNIX є кілька сотень команд, які виконують завдання організації та обробки даних і управляють оточенням користувача. Самі команди є програмами, які виконують певні функції, вимагаючи, як правило, мінімального введення даних, і виконуються порівняно швидко. Велика частина з них доступна всім користувачам, однак є команди, які доступні тільки адміністратору системи, який є привілейованим користувачем. Деякі команди, при виконанні яких є можливість інтерактивного введення інформації, іноді називають утилітами. Прикладом утиліт можуть служити редактор текстів vi і команда управління електронною поштою mail.

оболонки. Оболонками зазвичай називаються інтерактивні програми, що забезпечують користувальницький інтерфейс з ядром операційної системи. Оболонка стає активним процесом користувача з моменту, коли він реєструється в системі і до його виходу з системи. Ці програми є командними інтерпретаторами (іноді їх називають командними процесорами).

Як було зазначено вище, в складі ОС UNIX зазвичай використовується кілька оболонок.

Оболонки з обмеженнями (restricted shell - rsh і ksh - підмножини Bourne shell і Korn shell) розроблені для користувачів, яким необхідно обмежити доступ до системи.

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

Взаємодія прикладних задач з ядром відбувається за допомогою стандартного інтерфейсу системних викликів. Інтерфейс системних викликів визначає формат запитів на базові послуги. Процес запитує базову функцію ядра за допомогою системного виклику певної процедури ядра. Ядро виконує запит і повертає процесу необхідні дані.

Ядро складається з трьох основних підсистем:

    1) підсистема управління процесами і пам'яттю;

    2) файлова підсистема;

    3) підсистема введення / виводу.

виконує наступні функції:

    створення і видалення процесів;

    розподіл системних ресурсів між процесами;

    синхронізацію процесів;

    взаємодія процесів.

Спеціальна функція ядра, виконувана планувальником процесів (scheduler), вирішує конфлікти між процесами в конкурентній боротьбі за системні ресурси.

Забезпечує розподіл пам'яті між процесами. Якщо для всіх процесів недостатньо пам'яті, ядро \u200b\u200bпереміщає частини процесу або кілька процесів (частіше пасивних, які очікують будь-яких подій в системі) в спеціальну область диска (область «підкачки»), звільняючи ресурси для виконуються (активних) процесів.

файлова підсистема забезпечує уніфікований інтерфейс доступу до даних, розташованим на дискових накопичувачах, і до периферійних пристроїв. Вона виконує операції розміщення та видалення файлів, виконує операції запису / читання даних файлу, а також контролює права доступу до файлу.

Виконує запити файлової підсистеми і підсистеми управління процесами на доступ до периферійних пристроїв. Вона взаємодіє з драйверами пристроїв - спеціальними програмами ядра, що обслуговують зовнішні пристрої.

Доступ до системи UNIX

Щоб встановити контакт з системою UNIX, вам необхідно мати:

    термінал;

Отримання реєстраційного імені

реєстраційне ім'я - це ім'я, за допомогою якого система UNIX перевіряє, чи є ви повноважним користувачем системи, під час запиту доступу до неї.

Реєстраційне ім'я ви повинні вводити кожен раз, коли хочете увійти в систему.

Існує кілька правил вибору реєстраційного імені. Зазвичай Назва може містити від 3 до 8 символів. Воно може складатися з великих або маленьких букв, цифр, символу підкреслення, але не може починатися з цифри.

Однак ваше реєстраційне ім'я, можливо, буде визначатися конкретним застосуванням. Приклади допустимих імен:

Зв'язок з системою UNIX

Якщо ОС UNIX встановлена \u200b\u200bна персональному комп'ютері, ви можете зареєструватися безпосередньо на ньому через текстову віртуальну консоль. Але можливі й інші варіанти доступу.

Припустимо, що термінал безпосередньо або за допомогою телефонної лінії пов'язаний з комп'ютером. Хоча в цьому підрозділі описана типова процедура входу в систему, дані інструкції можуть не підійти для вашої системи, тому що існує кілька способів реєстрації в системі UNIX через телефонну лінію.

Для здійснення зв'язку з системою необхідно включити термінал.

Якщо він безпосередньо пов'язаний з комп'ютером, то в верхньому лівому кутку негайно з'явиться підказка:

Якщо в якості терміналу використовується персональний комп'ютер, налаштований на роботу в мережі за допомогою сімейства протоколів TCP / IP, необхідно встановити зв'язок з комп'ютером, на якому встановлена \u200b\u200bОС UNIX. Це можна здійснювати декількома способами, наприклад за допомогою мережевого додатку telnet, яке є в операційних системах Windows або за допомогою засобів доступу до Internet. Зверніть увагу, що - це незахищений протокол, який в даний час вже практично не застосовується. Сучасною альтернативою є Secure Shell (SSH).

Приклад.

Як терміналу використовується персональний комп'ютер з ОС Windows NT, сконфигурированной для роботи в мережі. Необхідно зареєструватися в UNIX-системі.

Необхідні вихідні дані і дії:

    для встановлення зв'язку з ОС UNIX необхідно знати мережеве ім'я віддаленого комп'ютера або його IP-адреса (наприклад, 192.168.2.19);

    знайти в персональному комп'ютері додаток telnet і запустити його на виконання;

    у вікні додатка вибрати пункт меню Підключення;

    ввести IP-адресу віддаленій UNIX-системи (наприклад, 192.168.2.19);

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

процедура реєстрації

Коли з'явиться підказка login:, введіть реєстраційне ім'я та натисніть клавішу . Наприклад, якщо ваше реєстраційне ім'я all30123, то рядок реєстрації буде виглядати наступним чином:

    login: all30123

Якщо ви зробите помилку при введенні вашого реєстраційного імені, то можете виправити її за допомогою символу @ або клавіші .

Пам'ятайте, що важливий регістр символів. Імена all30123 і ALL30123 належать двом різним користувачам.

Тепер система видає вам підказку для введення пароля. Введіть пароль і натисніть клавішу . Якщо при введенні ви зробите помилку, то можете виправити її за допомогою клавіші або символу @. Система UNIX не відображує ваш пароль на екрані в цілях безпеки.

Якщо реєстраційне ім'я та пароль допустимі в системі UNIX, то система може вивести поточну інформацію і потім запрошення командного рядка.

Коли ви ввійдете в систему, то екран терміналу буде виглядати наступним чином:

    login: all30123

Якщо ви зробите помилку при вході в систему, UNIX виведе повідомлення:

    login incorrect

Потім надасть вам другий шанс увійти в систему, видавши підказку login :. Екран буде виглядати наступним чином:

    login: all30123

Якщо ви ніколи не були зареєстровані в системі UNIX, то процедура вашої реєстрації може відрізнятися від описаної вище. Це може статися в тому випадку, якщо адміністратор системи передбачив процедуру призначення тимчасових паролів новим користувачам. Якщо ви маєте тимчасовий пароль, то система змусить вибрати новий пароль, перш ніж дозволить зареєструватися.

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

Процедура входу в систему:

    Ви встановлюєте контакт; система UNIX відображає підказку login :. Введіть ваше реєстраційне ім'я та натисніть клавішу .

    Система UNIX виводить підказку password :. Введіть ваш тимчасовий пароль і натисніть клавішу .

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

    Система запропонує ввести ваш старий пароль. Введіть тимчасовий пароль.

    Система запропонує ввести ваш новий пароль. Введіть обраний вами пароль.

Пароль повинен відповідати наступним вимогам:

    кожен пароль повинен складатися, принаймні, з 6 символів;

    кожен пароль повинен містити, принаймні, 2 буквених символу і одну цифру або спеціальний символ. Буквений символ може бути набраний в регістрі або великих символів або малих;

    кожен пароль повинен відрізнятися від вашого реєстраційного імені. Великі букви і відповідні їм маленькі букви еквівалентні;

    новий пароль повинен відрізнятися від старого, принаймні, на три символи.

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

Для перевірки система просить вас заново ввести пароль. Введіть пароль знову.

Якщо ви введете новий пароль вдруге не так, як в перший, то система повідомить, що паролі не збігаються, і запропонує повторити процедуру реєстрації знову. Коли паролі співпадуть, система відобразить підказку.

Наступний екран відображає описану процедуру:

    login: dko30123

    password:

    Your password has expired

    Choose a new one

    Old password:

    New password:

    Re-enter new password:

ідентифікація користувача

Коли системний адміністратор реєструє користувача в системі, з реєстраційним ім'ям зв'язуються два компонента ідентифікації: ідентифікатор користувача (User ID - UID) і ідентифікатор групи, До якої він належить (group ID - GID).

Ім'я користувача зв'язується з унікальним числом. Система використовує його як інструмент у різних механізмах захисту в ОС UNIX, наприклад, при захисті файлів або при виконанні привілейованих команд.

У будь-якій ОС UNIX є один спеціальний привілейований користувач з ідентифікатором UID \u003d 0, який зазвичай пов'язаний з ім'ям root. Це означає, що користувач має всі системні привілеї.

Ім'я групи також пов'язано з числом, яке зазвичай належить до групи користувачів, об'єднаних спільними завданнями, наприклад співробітники відділу, студенти одного потоку і т.д. Це число також використовується механізмами захисту в системі. Якщо користувач повинен працювати з даними інших груп, цей ідентифікатор пов'язується з іменами інших груп.

Вся реєстраційна інформація про користувачів системи зберігається в файлі / etc / passwd.

У сучасних версіях ОС UNIX зашифровані паролі і водночас ставиться до них системна інформація зберігаються в файлі / etc / shadow, структура і призначення полів якого представлені на рис. 8.2
.

Записи даних про кожну встановленої групі містяться в файлі / etc / group, структура і призначення полів якого представлені на рис. 8.3 .

Структура і призначення полів файлу / etc / passwd представлені на рис. 8.4
.

Угоди по введенню

При взаємодії з системою UNIX ви повинні бути інформовані про угоди по введенню. Система UNIX вимагає, щоб ви вводили команди маленькими літерами (за винятком деяких команд, в яких присутні великі літери). Інші угоди дозволяють вам виконувати завдання, такі як стерти літери або видалити рядок, натиснувши одну або дві клавіші.

Таблиця 8.1.
Угоди про введення

ключ

функція

Підказка системної команди (пропонує вам ввести вашу команду)

або<^h>

стерти символ

Зупинити виконання програми або команди

Видалити поточну командний рядок

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

Чи означає кінець рядка введення і поміщає курсор на новий рядок

Зупинити введення в систему або вийти з системи (завершити роботу)

Повернутися на один символ (для терміналів, у яких немає клавіші )

Тимчасово зупинити висновок на екран

Продовжити висновок на екран інформації, яка була зупинена за допомогою<^s>

Примітка. У табл. 2.1 символ ^ означає керуючий символ . Тобто ви повинні в цьому випадку натиснути дві клавіші одночасно: клавішу керуючого символу і зазначену букву.

Підказка команди

Стандартним запрошенням командного рядка для користувача в системі UNIX є знак долара $. Для користувача root - #. Коли запрошення з'являється на екрані вашого терміналу, то це означає, що система UNIX очікує інструкції від вас. Відповідним відповіддю на підказку з вашого боку є видача команди з наступним натисканням клавіші .

Виправлення помилок введення

Існує кілька способів виправлення помилок введення. Символ @ стирає поточний рядок, а клавіші і<^h> стирають останній введений символ. Ці клавіші і знаки є значеннями за замовчуванням. Функції, які вони виконують, можуть бути змінені іншим клавішах.

Зупинка виконання команд

Щоб зупинити виконання більшості команд, просто натисніть клавіші . Система UNIX зупинить виконання програми і виведе підказку на екрані. Це підказка служить сигналом, що остання запущена на виконання команда зупинена і система готова до прийому наступної команди.

Поява на екрані підказки означає, що система UNIX розпізнала вас як повноважного користувача і чекає від вас введення команди.

У загальному вигляді командний рядок має наступну структуру:

    ім'я [опції] [аргументи]

Ім'я команди, опції і аргументи повинні відділятися один від одного пробілом або знаком табуляції. Обробка командного рядка інтерпретатором починається тільки після натискання клавіші .

У подальшому викладі функцій команд передбачається:

Опції (параметри):

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

    як правило, починаються з символу «-» ( «мінус»), який не відділяється пропуском від інших символів;

    можуть бути скомбіновані будь-яким чином, при цьому знак «мінус» можна використовувати тільки один раз.

Аргументи вказують об'єкти, які повинні оброблятися командою, наприклад:

    ім'я файлу;

    номер процесу;

Якщо ви знаєте, що повинна зробити викликається програма, але не впевнені в правильному використанні синтаксису, можна в командному рядку після імені команди вказати опцію --help:

    $ Cal --help

Для того щоб мати можливість отримання докладної інформації, в ОС UNIX є вбудований посібник (on-line), доступ до якого забезпечують команди man і apropos.

У найпростішому випадку для отримання інформації про будь-якій команді необхідно вказати її ім'я в якості аргументу команди man:

    man імя_команди

apropos виводить список команд відповідно до ключовим словом (шаблоном), зазначеним в якості аргументу команди:

    apropos шаблон

Приклади.

Якщо запустити команду date і натиснути клавішу , Система UNIX звертається до програми, званої date, виконає її і виведе результат на екрані:

    $ date

    Tues Sep 18 14:49:07 2000

Команда date виводить дату і час.

Якщо запустити команду who і натиснути клавішу , То екран буде виглядати наступним чином:

    $ who

    dko30024

    Oct18 8:30

    dko30001

    Oct18 8:34

    dko30020

    Oct18 8:32

    Oct18 8:00

who виводить список реєстраційних імен користувачів, що працюють в даний час у вашій системі. Позначення tty (друга колонка) робить посилання на спеціальні файли, які відповідають кожному призначеному для користувача терміналу. У третій і четвертій колонках зазначаються дата і час реєстрації кожного користувача. .

Це означає, що ви успішно завершили роботу з системою і вона готова зареєструвати нового користувача.

Якщо ви реєструвалися з віддаленого терміналу, відбудеться розрив зв'язку, про що вас повідомить, наприклад, додаток telnet.

Примітка. Перш ніж ви вимкніть термінал, обов'язково завершите роботу з системою.

Основні висновки

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

    У загальному вигляді операційна система UNIX може бути представлена \u200b\u200bдворівневою моделлю. У центрі знаходиться ядро \u200b\u200bсистеми (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп'ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро включає в себе програми, що реалізують набір послуг, що надаються прикладним програмам. До послуг ядра відносяться операції введення / виводу, створення і управління процесами, синхронізація процесів і т.д. Наступний рівень моделі - системні послуги, що забезпечують користувальницький інтерфейс ОС UNIX. Схема взаємодії з ядром і додатків, і системних задач однакова.

    Операційна система UNIX взаємодіє з апаратними та програмними ресурсами комп'ютера, виконуючи наступні функції:

    • управління обладнанням;

      управління ресурсами;

      підтримка інтерфейсів користувача;

      виконання введення та виведення інформації;

      моніторинг системи;

      забезпечення віддаленого доступу в комп'ютерній мережі.

    UNIX-система містить три головні компоненти: систему команд, оболонки і ядро.

    У складі ОС UNIX є кілька сотень команд, які виконують завдання організації та обробки даних і управляють оточенням користувача. Самі команди є невеликими програмами, які виконують певні функції, вимагаючи, як правило, мінімального введення даних, і виконуються порівняно швидко.

    Оболонками зазвичай називаються інтерактивні програми, що забезпечують користувальницький інтерфейс з ядром операційної системи. Оболонка стає активним процесом користувача з моменту, коли він реєструється в системі і до його виходу з системи. Ці програми є командними інтерпретаторами (іноді їх називають командними процесорами).

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

    Ядро складається з трьох основних підсистем:

    • підсистема управління процесами і пам'яттю;

      файлова підсистема;

      підсистема введення / виводу.

    Щоб встановити контакт з системою UNIX, вам необхідно мати:

    • термінал;

      реєстраційне ім'я, яке ідентифікує вас як повноважного користувача;

      пароль, який перевіряє вас на ідентичність;

      інструкції для діалогу і доступу до системи UNIX, якщо ваш термінал прямо не пов'язаний з комп'ютером.

Контрольні питання

    Для вирішення яких завдань призначений клас операційних систем UNIX?

    Які можливості має надавати операційна система класу UNIX?

    Які завдання ядра ОС UNIX?

    Які функції ядра ОС UNIX?

    Яке призначення компонента операційної системи «Система команд»?

    Чи можна стверджувати, що оболонка надає користувачеві інтерактивний інтерфейс взаємодії з операційною системою?

    Яким чином виконується ідентифікація користувача в ОС UNIX?

Для початку непогано було б скласти загальне уявлення про те, що таке Linux і як він працює.

А почати можна з Введення в Linux (Sxw). Хоча є й інші введення. Наприклад це. Ось дока Р.С.Клочкова і Н.А.Коршеніна Основи UNIX і Linux (SXW), (PDF).

Основи ОС UNIX. Навчальний курс. (SXW) (PDF)
Copyleft (no c) - Fuck copyright! 1999-2003 В. Кравчук, OpenXS Initiative
Цей короткий (імовірно, 16 годин, з яких 6 - практичні заняття) вступний курс призначений для ознайомлення з архітектурою, особливостями і основними засобами ОС UNIX. При успішному освоєнні, курс дозволить вільно і продуктивно працювати в ОС UNIX в якості користувача і продовжити вивчення адміністрування або програмування цієї операційної системи.
Виклад ведеться, в основному, без прив'язки до особливостей будь-якої версії UNIX, але при необхідності конкретизації, вона робиться для систем SVR4, зокрема, ОС Solaris 8.
Також пропоную книгу Андрія Робачевского «Операційна система UNIX»
Ось що пише автор: «Дана книга не є заміною довідників і різних посібників з опера ційної системі UNIX. Більш того, відомості, представлені в книзі, часом важко знайти в документації, що поставляється з операційною системою. Ці видання насичені практичними рекомендаціями, скрупульозним описом налаштувань тих чи інших підсистем, форматів виклику команд і т. П. При цьому за кадром часто залишаються такі питання, як внутрішня архітектура окремих компонентів системи, їх взаємодія і принципи роботи. Без знання цієї «анатомії» робота в операційній системі перетворюється в використання завчених команд, а неминучі помилки призводять до нез'ясовним наслідків. З іншого боку, в цій книзі питань адміністрування UNIX, налаштування конкретних підсистем і використовуваних команд приділено значно менше уваги. Мета даної книги полягає у викладі основ організації операційної системи UNIX. Слід мати на увазі, що ім'ям UNIX позначається значне сімейство операційних систем, кожна з яких має свою назву і властиві тільки їй особливості. У цій книзі зроблена спроба виділити те спільне, що становить «генотип» UNIX, a саме: базовий призначений для користувача і програмний інтерфейси, призначення основних компонентів, їх архітектуру і взаємодія, і на основі цього уявити систему в цілому. У той же час там, де це має значення, наводяться посилання на конкретну версію UNIX ».

Особисто мені дуже допомагає читання прекрасної книги Віктора Олексійовича Костроміна Linux для користувача"Яку можу Вам запропонувати (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А ось ця ж книга, але вже в PDF (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А тепер ще й в SXW (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
Якщо Ви віддаєте перевагу документи в форматі HTML, то за наведеними вище посиланнях можна потрапити на сторінку, звідки пропонується закачати архіви глав книги саме в цьому форматі.

З фундаментальних книг можу також порадити прекрасне керівництво Карла Шредера «Linux. Збірник рецептів ». Відразу попереджаю, що за цим посиланням книга в формате.pdf, і важить вона 50 МВ. Але можливий і альтернативний варіант - та ж книга, тільки в

ФОРМАТЕ.ТХТАнотація до книги наступна: "Пропоноване видання містить унікальну колекцію рад, інструментів і сценаріїв; ви знайдете ряд готових налагоджених рішень складних проблем, з якими стикається будь-який адміністратор, що налаштовує Linux-сервер; ці рішення стануть в нагоді і під час налаштування невеликих мереж, і при створенні потужних розподілених сховищ даних. Книга написана в уже стала популярною формою книг рецептів видавництва O'Reilly в форматі «Проблема-Рішення-Обговорення». Для досвідчених користувачів, програмістів, системних адміністраторів, студентів вузів, аспірантів і викладачів ». Якщо раптом посилання припинить існування, прохання повідомити - можливо викладу файл.pdf і на свій сайт.

Мені дуже подобається серія статей і заміток Олексія Федорчука, Володимира Попова та ряду інших авторів, які я беру звідси: http://unix.ginras.ru/. Ось найцікавіші матеріали про Linux в цілому і його окремих компонентах зокрема (Linux-all.zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip).
SXW - (Linux-all. Zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip),
А також книга Олексія Федорчука » Сага про POSIX або Введення в POSIX'івізм»В якій висвітлюються загальні питання ряду систем, в першу чергу про UNIX-подібних. Назва говорить сама за себе. За словами авторів, книга призначена для користувачів (в тому числі і початківців). Ось файли - Частина 1, Частина 2, частина 3, частина 4.
І SXW - Частина 1, Частина 2, Часть3, Часть4.

А якщо цікава історія ВІЛЬНИХ СИСТЕМ, то можете почитати Добірку статей, під загальною назвою Дорога, відкрита всім»(Sxw) і, за словами автора, висвітлює загальні питання Open Sources, POSIX-систем, історію UNIX, BSD, Linux

Також, для розуміння принципів роботи ОС, поняття процесу, нарівні з поняттям файлу, є, безумовно, одним з найважливіших понять. Цьому присвячена стаття В.А. Костроміна » Процеси і демони в Linux»(SXW.

Text-Terminal-HOWTO (SXW) v 0.05, June +1998
Цей документ пояснює, що таке текстові термінали, як вони працюють, як встановлювати і конфігурувати їх і дає деяку інформацію про їх ремонті. Він може частково використовуватися, навіть якщо у вас немає керівництва по терміналу. Хоча ця праця написаний для реальних терміналів на системі Linux, частина його також застосовна для емуляторів терміналу і / або інших Unix-подібних систем.

Також дуже корисно, для більш швидкого і легкого освоєння консолі почитати прекрасно ілюстрований посібник - Працюємо з історією команд (SXW).

Ось матеріали присвячені командним оболонок, або командним інтерпретаторів, іменованих також просто Шеллі (shell). В першу чергу добірка статей які об'єднані під назвою Шелл і утиліти (SXW), (PDF).

Найбільш популярною оболонкою на сьогоднішній день є Bash - зто скорочення Bourne Again SHell (Ще одна оболочкa Борна). раджу прочитати BASH конспект, (SXW), (PDF)
Дата створення: 16.12.97.

А також Особливості роботи оболонки bash (SXW), (PDF).
Документ коротко підсумовує те, що Bash успадкував від Борновскі оболонки: структури контролю оболонки, вбудовані команди, змінні та інші особливості. Тут також наведено деякі значні відмінності між Bash і Борновскі оболонкою.

Інтерпретатор командного мови shell Shell (SXW), (PDF) - командна мова, що може виконувати як команди, введені з терміналу, так і команди, що зберігаються у файлі.

Програмування на Shell (UNIX) (SXW), (PDF)

Якщо зависає Windows, користувач робить якісь рухи тіла, а потім, переконавшись в «марність і суєтності цього світу», зі спокійним серцем натискає RESET. В Лінуксі все інакше. Про це стаття - Висить? Знімемо! (SXW)

Питання і відповіді по kppp (SXW)

Стаття В.А.Костроміна « Ієрархія каталогів і файлових систем в Linux»(SXW) в якій розповідається про розроблений в рамках проекту Open Source стандарті на структуру каталогів UNIX-подібних операційних систем (маються на увазі Linux і BSD-системи).

Про файлах (якими в Linux, по суті, є каталоги, і навіть пристрої) але в дещо іншому ракурсі розповідає керівництво Файли і права доступу до них (SXW).
Дуже рекомендую. Розжовано чудово.

Команди скорочення Linux (SXW).
Це - практична добірка програм, які ми використовуємо найбільш часто, вважаємо корисними, і які присутні в наших дистрибутивах Linux (RedHat або Mandrake).

консолі UNIX (SXW) - замітки про різні консолях.

А ось некволе керівництво Mandrake Linux 9.0 Керівництво по Командного Строке (SXW).

Монтування файлових систем з пристроїв і файлів (SXW) (PDF)
Дата створення документа: 26.07.2004
Дата останньої зміни: 20.08.2004
Автор: Князєв Олексій.

основи Linux

Linux натхненна операційною системою Unix, яка з'явилася в 1969 році і до цих пір використовується і розвивається. Багато що з внутрішнього устрою UNIX існує і в Linux, що є ключем до розуміння основи системи.

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

Каталоги і файлова система

Файлові системи в Linux і Unix організовані за принципом ієрархічної, деревоподібної структури. Верхній рівень файлової системи - / або кореневий каталог . Це означає що всі інші файли і каталоги (включаючи також інші диски і розділи) знаходяться всередині кореневого каталогу. В UNIX і Linux файлом вважається все - включаючи жорсткі диски, їх розділи і знімні носії.

Наприклад, /home/jebediah/cheeses.odt показує повний шлях до файлу cheeses.odt. Файл знаходиться в каталозі jebediah, яка знаходиться в каталозі home, який в свою чергу, знаходиться в кореневому каталозі (/).

Усередині кореневого каталогу (/) існує ряд важливих системних каталогів, які присутні в більшості дистрибутивів Linux. Нижче слідує список загальних каталогів, які знаходяться безпосередньо в кореневому каталозі (/):

Права доступу

Всі файли в Linux мають права доступу, які дозволяють або забороняють читати, змінювати або виконувати їх. Супер користувач «root» має доступ до будь-якого файлу в системі.

Кожен файл має наступні три набори доступу, в порядку їх значимості:

    власник

    відноситься до користувача, який є власником файлу

    група

    відноситься до групи, пов'язаної з файлом

    інші

    відноситься до всіх інших користувачам системи

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

    читання

    файли можуть бути відображені і відкриті для читання

    вміст каталогів доступно для перегляду

    запис

    файли можуть бути змінені або видалені

    вміст калог доступно для змін

    виконання

    виконувані файли можуть бути запущені як програми

    каталоги можуть бути відкриті

To view and edit the permissions on files and directories, open the Applications → Accessories → Home Folder and right-click on a file or directory. Then select Properties. The permissions exist under the Permissions tab and allow for the editing of all permission levels, if you are the owner of the file.

To learn more about file permissions in Linux, read the file permissions page in the Ubuntu Wiki.

термінали

Working at the command line is not as daunting a task as you would think. There is no special knowledge needed to know how to use the command line. It is a program like everything else. Most things in Linux can be done using the command line, although there are graphical tools for most programs. Sometimes they are just not enough. This is where the command line comes in handy.

The Terminal is located in Applications → Terminal. The terminal is often called the command prompt or the shell. In days gone by, this was the way the user interacted with the computer. However, Linux users have found that the use of the shell can be quicker than a graphical method and still holds some merit today. Here you will learn how to use the terminal.

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

Основні команди

Перегляд вмісту каталогів: ls

команда ls статистику по всіх файлах різними кольорами з повним форматуванням тексту

Створення каталогів: mkdir (ім'я каталогу)

команда mkdir створює новий каталог.

Перейти до каталогу: cd (/ адреса / каталогу)

команда cd дозволяє перейти в будь-який вказаний вами каталог.

Копіювання файлу або каталогу: cp (що - ім'я файлу або каталогу) (куди - ім'я каталогу або файлу)

команда cp копіює будь-який обраний файл. команда cp -r копіює будь-який обраний каталог з усім вмістом.

Видалення файлів або каталогів: rm (ім'я файлу або папки)

команда rm видаляє будь-який обраний файл. команда rm -rf видаляє будь-який обраний каталог з усім вмістом.

Перейменувати файл або каталог: mv (ім'я файлу або каталогу)

команда mv перейменовує або переміщує вибраний файл або каталог.

Пошук каталогів і файлів: locate (ім'я каталогу або файлу)

команда locate дозволяє знайти заданий файл на вашому комп'ютері. Для прискорення роботи використовується індексація файлів. Для того щоб оновити індекс, введіть команду updatedb . Вона запускається автоматично кожен день, якщо комп'ютер включений. Для запуску цієї команди потрібні права супер користувача (див. «Користувач root і командна sudo»).

Ви також можете використовувати маски, щоб вказати більше одного файлу, такі як «*» (збіг з усіма символами) або «?» (Збіг з одним символом).

For a more thorough introduction to the Linux command line, please read the command line introduction on the Ubuntu wiki.

редагування тексту

All of the configurations and settings in Linux are saved in text files. Even though you most often can edit configurations through the graphical interface, you may occasionally have to edit them by hand. Mousepad is the default Xubuntu text editor, which you can launch by clicking Applications → Accessories → Mousepad on the desktop menu system.

іноді, Mousepad запускається з командного рядка за допомогою програми gksudo , Яке запускає Mousepad з адміністративними привілеями, що дозволяє змінювати файли конфігурації.

Якщо вам необхідний текстовий редактор в командному рядку, можете використовувати nano - простий у використанні текстовий редактор. При запуску з командного рядка завжди використовуйте наступну команду, щоб відключити автоматичний перенос слів:

Nano -w

For more information about how to use nano , Refer to the guide on the wiki.

There are also quite a few other terminal-based editors available in Ubuntu. Popular ones include VIM and Emacs (The pros and cons of each are cause for much friendly debate within the Linux community). These are often more complex to use than nano , But are also more powerful.

Користувач root і командна sudo

The root user in GNU / Linux is the user which has administrative access to your system. Normal users do not have this access for security reasons. However, Ubuntu does not enable the root user. Instead, administrative access is given to individual users, who may use the "sudo" application to perform administrative tasks. The first user account you created on your system during installation will, by default, have access to sudo. You can restrict and enable sudo access to users with the Users and Groups application (see «Управління користувачами і групами» for more information).

Коли ви відкриваєте програму, що вимагає прав супер користувача, sudo зажадає ввести ваш пароль. Це гарантує, що шкідливі програми не зможуть зашкодити вашу систему, а також нагадає вам, що ви збираєтеся виконати дії, які вимагають особливої \u200b\u200bобережності!

Щоб використовувати sudo в командному рядку, просто наберіть «sudo» перед командою, яку необхідно виконати. Після цього буде потрібно ввести ваш пароль.

Sudo will remember your password for 15 minutes (by default). This feature was designed to allow users to perform multiple administrative tasks without being asked for a password each time.

Be careful when doing administrative tasks - you might damage your system!

Some other tips for using sudo include:

    Щоб використовувати термінал з правами супер користувача (root), наберіть «sudo -i» в командному рядку

    The entire suite of default graphical configuration tools in Ubuntu already use sudo, so they will prompt you for your password if needed.

    При запуску графічних додатків замість «sudo» використовується «gksudo». Це дозволяє запитувати пароль у користувача в невеликому графічному вікні. Команда «gksudo» зручна, якщо ви хочете встановити кнопку запуску Synaptic на вашу панель або щось подібне.

    For more information on the sudo program and the absence of a root user in Ubuntu, read the sudo page on the Ubuntu wiki.

Перш ніж ви зможете освоїти, ви повинні вільно орієнтуватися в основних поняттях системи Linux. Уміння працювати з Linux буде дуже корисним навиком, тому що на серверах Linux працює велика кількість веб-сайтів, електронної пошти та інших інтернет-служб.

В даному розділі ми збираємося роз'яснити основні поняття пов'язані з Linux. Виконуючи поставлене перед нами завдання ми вважаємо, що ви вже маєте уявлення про комп'ютерних системах в цілому, включаючи такі компоненти як центральний процесор (ЦП), оперативна пам'ять (ОЗУ), материнська плата, жорсткий диск, а також інші контролери і пристрої, пов'язані з ними.

3.1

Термін «Linux» часто використовується для позначення всієї операційної системи, але насправді Linux - це ядро \u200b\u200bопераційної системи, яке запускається початковим завантажувачем, що запускаються BIOS / UEFI. Ядро бере на себе роль, схожу на роль диригента в оркестрі, воно забезпечує узгоджену роботу апаратних засобів і програмного забезпечення. Дана роль має на увазі під собою управління обладнанням, користувачами і файловими системами. Ядро являє собою загальну базу для інших програм, що працюють в даній системі, і найчастіше запускає ring zero,також відоме, як простір ядра (kernel space).

користувача простір

Ми використовуємо термін «призначене для користувача простір», щоб об'єднати всі, що відбувається за межами ядра.

Серед програм, які працюють в просторі користувача, багато основних утиліт з проекту GNU, більшість з яких призначений для запуску з командного рядка. Ви можете використовувати їх в сценаріях для автоматизації різних завдань. Додаткову інформацію про найбільш важливих командах см. В розділі 3.4 «».

Давайте швидко розглянемо різні завдання, що виконуються ядром Linux.

3.1.1 запуск обладнання

Призначенням ядра, перш за все, є управління і контроль над основними компонентами комп'ютера. Воно виявляє і налаштовує їх, коли комп'ютер включається, а також коли пристрій монтується або витягується (наприклад, USB пристрій). Це також робить їх доступними для більш високорівневого програмного забезпечення завдяки спрощеному програмного інтерфейсу, тому додатки можуть використовувати переваги пристроїв, не звертаючись до деталей, наприклад до слоту розширення, в який вставлена \u200b\u200bплата. Програмний інтерфейс також надає певний рівень абстракції; це дозволяє використовувати обладнання для проведення відеоконференцій, наприклад, використовувати вебкамеру незалежно від її моделі та виробника. Програмне забезпечення може використовувати інтерфейс Video for Linux(V4L) і ядро \u200b\u200bбуде переводити виклики інтерфейсу в реальні апаратні команди, необхідні для роботи конкретної веб-камери.

Ядро експортує дані про виявлений обладнанні через віртуальні системи / proc / і / sys /. Додатки часто отримують доступ до пристроїв за допомогою файлів, створених в / dev /. Особливі файли, що представляють диски (наприклад, / dev / sda), розділи (/ dev / sdal), миші (/ dev / input / mouse0), клавіатури (/ dev / input / event0), звукові карти (/ dev / snd / *), послідовні порти (/ dev / ttyS *) та інші компоненти.

Існує два типи файлів пристроїв: блочні і символьні. Перші мають характеристики блоку даних: вони мають кінцевий розмір, і ви можете отримати доступ до байтів в будь-якій позиції блоку. Останні ведуть себе як потік символів. Ви можете читати і писати символи, але ви не можете шукати задану позицію і змінювати довільні байти. Щоб дізнатися тип файлу пристрою, перевірте першу букву виведення команди Is -1. Це може бути або b, для блокових пристроїв, або c, для символьних пристроїв:

Як ви вже можливо здогадалися, диски і розділи використовують блокові файли пристроїв, в той час як миша, клавіатура і послідовні порти використовують символьні файли пристроїв. В обох випадках програмний інтерфейс включає в себе спеціальні команди, які можуть бути активовані через системний виклик ioctl.

3.1.2 Об'єднання файлових систем

Файлові системи є важливим аспектом ядра. Системи, засновані на Unix, об'єднують всі сховища файлів в одну ієрархію, що дозволяє користувачам і додаткам отримувати доступ до даних, знаючи їх розташування в межах цієї ієрархії.

Відправна точка цього ієрархічного дерева називається root, представлений символом "/". Дана директорія може містити іменовані суб-директорії. Наприклад, домашня суб-директорія «/» називається / home /. Ця суб-директорія, в свою чергу, може містити інші суб-директорії і т.д. Кожна директорія також може містити файли, в яких будуть зберігатися файли. Таким чином, home / buxy / Desktop / hello.txt відноситься до файлу під назвою hello.txt, який зберігається в суб-директорії Desktop, що знаходиться в buxy суб-директорії домашнього каталогу, який присутній в root. Ядро компілює між даною системою іменування і місцем зберігання на диску.

На відміну від інших систем, Linux володіє тільки однієї такої ієрархією і може інтегрувати дані з декількох дисків. Один з таких дисків стає root, а інші монтуються на директорії в ієрархії (ця команда в Linux називається mount). Ці інші диски потім стають доступними під точками монтування ( mount points ) Це дозволяє зберігати призначені для користувача домашні директорії (які зазвичай зберігаються на / home /) на окремому жорсткому диску, який буде містити директорію buxy (разом з домашніми директоріями інших користувачів). Після того, як ви встановили диск в / home /, ці каталоги стають доступними в їх звичайному місці, а різні шляхи, такі як /home/buxy/Desktop/hello.txt, продовжують працювати.

Існує безліч форматів файлової системи відповідно до безлічі способів фізичного зберігання даних на дисках. Найбільш широко відомі ext2, ext3 і ext4, але існують і інші. наприклад, VFAT є файлової системою, яка історично використовувалася DOS і операційними системами Windows. Підтримка VFAT операційною системою Linux дозволяє жорстких дисків бути доступними як під Kali, так і під Windows. У будь-якому випадку, ви повинні підготувати файлову систему на диску, перш ніж змонтувати її, і ця операція називається форматуванням.

Команди, такі як mkfs.ext3 (де mkfs розшифровується як MaKe FileSystem) обробляє форматування. Як параметр ці команди вимагають файл пристрою, який представляє розділ, який слід відформатувати (наприклад, / dev / sdal, перший розділ на першому диску). Ця операція знищує всі дані і повинна запускатися тільки один раз, якщо звичайно ви не хочете стерти файлову систему і почати нову роботу.

Є також мережеві файлові системи, такі як NFS, Які не зберігають дані на локальному диску. Замість цього дані передаються через мережу на сервер, який зберігає їх і видає на першу вимогу. Завдяки абстракції файлової системи вам не потрібно турбуватися про те, як цей диск підключений, так як файли залишаються доступними за своїм звичайним ієрархічним шляху.

3.1.3 управління процесами

Процес є виконуваним екземпляром програми, для якої потрібно зберігати пам'ять, як самої програми, так і її робочих даних. Ядро відповідає за створення і відстеження процесів. Коли скрипт буде працювати, ядро \u200b\u200bспочатку виділяє деяку пам'ять, завантажує виконуваний код з файлової системи в цю пам'ять, а потім запускає код. Він містить інформацію про цей процес, найбільш помітним з яких є ідентифікаційний номер, відомий як ідентифікатор процесу (process identifier (PID)).

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

Насправді існує тільки один запущений процес в будь-який момент часу, але ядро \u200b\u200bділить час процесора на невеликі фрагменти і запускає кожен процес по черзі. Оскільки ці часові зрізи дуже короткі (в мілісекундах), вони створюють зовнішній вигляд процесів, що працюють паралельно, хоча вони активні тільки протягом їх тимчасового інтервалу і не діють в решту часу. Основним завданням ядра є налагодження механізмів планування таким чином, щоб зберегти цей зовнішній вигляд, одночасно збільшуючи продуктивність системи. Якщо відрізок часу буде занадто довгим, може перестати відповідати належним чином. Ну а якщо ж вони будуть занадто короткими, система буде втрачати занадто багато часу на перемикання між ними.

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

Мультипроцесорні Системи (і інші варіанти)

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

Ядро дозволяє запускати кілька незалежних примірників однієї й тієї ж програми, але кожному дозволяється доступ тільки до власних тимчасовим зрізами і пам'яті. Таким чином, їх дані залишаються незалежними.

3.1.4 управління правами

Unix системи підтримують безліч користувачів і груп та дозволяють контролювати права доступу. У більшості випадків, процес визначається користувачем, який запускає його. Даний процес може виконувати тільки ті дії, які дозволені його власнику. Наприклад, відкриття файлу вимагає від ядра перевірити процес на наявність необхідних прав (для отримання більш детальної інформації конкретно по цьому прикладу, див. Розділ 3.4.4, "Управління правами")

3.2 Командний рядок Linux

Під «командним рядком» ми маємо на увазі текстовий інтерфейс, який дозволяє вводити команди, виконувати їх і переглядати результати. Ви можете запустити термінал (текстовий екран всередині графічного робочого столу або текстового термінала поза будь-якого графічного інтерфейсу) і інтерпретатор команд всередині нього ( оболонка).

3.2.1

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


Малюнок 3.1 Запуск терміналу GNOME

Наприклад, в системі Kali Linux за замовчуванням, GNOME термінал може бути запущений зі списку обраних додатків. Також ви можете ввести «terminal» у вікні Activities (вікно, яке активується, коли ви пересуваєте миша в лівий верхній кут) і натисніть на необхідної вам іконці програми, які з'являться (Малюнок 3.1, "").

У разі будь-яких порушень або некоректної роботи вашого графічного інтерфейсу ви все одно можете запустити командний рядок на віртуальних консолях (до шести з них можуть бути доступні через шість комбінацій клавіш, починаючи з CTRL + ALT + F1 і закінчуючи CTRL + ALT + F6 - клавішу CTRL можна не натискувати, якщо ви вже знаходитеся в текстовому режимі поза графічного інтерфейсу Xorg або Wayland).

Ви отримуєте звичайний екран входу, де ви вводите свій логін і пароль, перед тим як отримати доступ до командного рядка з її оболонкою:

Програма, обробна введені вами дані та виконання ваших команд, називається оболонкою(shellабо інтерпретатором командного рядка). За замовчуванням оболонкою, що надається в Kali Linux, є Bash (це означає Bourne Again SHell). Кінцевий символ «$» або «#» вказує, що оболонка очікує вашого введення. Ці символи також вказують на те, яким чином сприймає вас Bash, як звичайного користувача (перший випадок із позначкою доларом) або як суперкористувача (останній випадок з хешем).

3.2.2

Даний розділ надає лише короткий огляд деяких команд, кожна з яких має безліч різних опцій і можливостей, не описаних тут, тому, будь ласка, зверніться до великої документації, доступної в відповідних сторінках керівництва. У тестуваннях на проникнення, найчастіше ви будете отримувати доступ до системи через оболонку, після успішного експлуатування, а не через призначений для користувача графічний інтерфейс. Уміння грамотно користуватися командним рядком є \u200b\u200bнеобхідним для вас, якщо ви хочете досягти успіху як фахівець в сфері безпеки.

Як тільки сеанс запущений, команда pwd (яка розшифровується як print working directory (відобразити робочий каталог)) Виведе на екран ваше поточне місце розташування в файлової системі. Ваше поточне місце розташування можна змінити за допомогою команди cd назва директорії(Де cd означає (змінити директорію)). У тому випадку, якщо ви не вказали директорію, куди хочете перейти, ви автоматично повернетеся в вашу домашню директорію. Якщо ви введете cd -, то ви повернетеся в попередню робочу директорію (в ту, в якій ви перебували перед введенням останньої команди cd). Батьківський каталог завжди називається .. (дві крапки), в той час як поточний каталог позначається. (Однією точкою). Команда ls дозволяє вам перерахувати вміст директорії. Якщо ви не вказуєте додаткових параметрів команда ls, відобразить вміст поточної директорії.

Ви можете створити нову директорію за допомогою команди mkdir назва директорії,а також видалити існуючу (порожню) директорію за допомогою команди rmdir назва директорії. Команда mv дозволить вам переміщати і перейменовувати файли і директорії; вилучити файл можна за допомогою rm назва файлу,а копіювання файлу виконується за допомогою cp вихідний файл цільової-файл.

Оболонка виконує кожну команду, запускаючи першу програму з такою назвою, яку вона знаходить в каталозі, вказаному у змінній середовища PATH. Найчастіше ці програми знаходяться в / Bin, / sbin, / usr / bin або / usr / sbin. Наприклад, команда ls знаходиться в / bin / ls; Іноді команда безпосередньо обробляється оболонкою, і в цьому випадку вона називається вбудованої командою оболонки (серед них - cd і pwd); команда type дозволяє запросити тип кожної команди.

Зверніть увагу на використання команди echo, яка просто відображає рядок в терміналі. В даному випадку, вона використовується для виведення на екран вмісту змінної середовища, тому що оболонка автоматично замінює змінні з їх значеннями пере виконанням командного рядка.

змінні середовища

Змінні середовища дозволяють зберігати глобальні настройки для оболонки або інших програм. Вони є контекстуальних, але успадкованими. Наприклад, кожен процес має свій власний набір змінних середовища (вони є контекстуальних). Оболонки, такі як оболонки входу, можуть оголошувати змінні, які будуть передані іншим виконуваним програмам (вони успадковуються).

Ці змінні можуть бути визначені як для системи в / etc / profile так і для користувача в ~ / .profile, але змінні, які не є характерними для інтерпретаторів командного рядка, краще вставляти в / etc / environment, оскільки ці змінні будуть введені в усі призначені для користувача сесії завдяки підключається модулю аутентифікації (Pluggable Authentication Module (PAM)) - навіть якщо ніяка оболонка не виконується.

3.3 Файлова система Linux

3.3.1 Стандарт ієрархії файлової системи

Як і інші дистрибутиви Linux, Kali Linux організований відповідно до стандарту Filesystem Hierarchy Standard (FHS), що дозволяє користувачам інших дистрибутивів Linux з легкістю орієнтуватися в Kali. FHS визначає призначення кожної директорії. Директорії верхнього рівня описуються наступним чином.

  • / Bin /: основні програми
  • / Boot /: Ядро Kali Linux і інші файли, необхідні для його раннього процесу завантаження
  • / Dev /: файли пристрою
  • / Etc /: файли конфігурації
  • / Home /: особисті файли користувачів
  • / Lib /: основні бібліотеки
  • / Media / *: точки монтування для знімних пристроїв (CD-ROM, USB накопичувачі і т.д.)
  • / Mnt /: тимчасові точки монтування
  • / Opt /: додаткові програми, що надаються третіми особами
  • / Root /: особисті файли адміністратора (файли root)
  • / Run /: непостійні файли робочого процесу, які не зберігаються після перезавантаження (ще не включені в FHS)
  • / Sbin /: системні програми
  • / Srv /: дані, що використовуються серверами, розташованими в цій системі
  • / Tmp /: тимчасові файли (ця директорія часто випорожнюється після перезавантаження)
  • / Usr /: додатки (ця директорія надалі поділяється на bin, sbin, lib згідно з такою ж логікою, що і в директорії root). Крім того, / usr / share / містять дані з незалежної архітектурою. Каталог / usr / local / призначений для використання адміністратором для установки додатків вручну без перезапису файлів, що обробляються системою пакетування. (Dpkg).
  • / Var /: змінні дані, оброблювані демоном. Це включає в себе файли журналів, черги, буфери і кеши.
  • / Proc / і / sys / є характерними для ядра Linux (і не є частиною FHS). Вони використовуються ядром для експортування даних в призначене для користувача простір.

3.3.2 Домашня директорія користувача

Вміст користувальницької директорії не є стандартизованим, але, тим не менш, існує кілька вартих уваги умовностей. Одна з них полягає в тому, що призначений для користувача домашній каталог часто позначається тильдой ( "~"). Це дуже корисно знати, тому що інтерпретатори команд автоматично замінюють тильду вірною Директорією (яка знаходиться в змінному середовищі HOME і чиє звичайне значення є / home / user /).

Традиційно файли конфігурації програми часто зберігаються безпосередньо в вашому домашньому каталозі, але їх імена файлів зазвичай починаються з крапки (наприклад, клієнт електронної пошти mutt зберігає конфігурацію в ~ / .muttrc). Зверніть увагу, що імена файлів, що починаються з точки, за замовчуванням приховані; команда ls перерахує їх лише, в тому випадку якщо вказана опція -a, а графічні файлові менеджери повинні бути явно налаштовані для відображення прихованих файлів.

Деякі програми також використовують кілька файлів конфігурації, організованих в одному каталозі (наприклад, ~ / .ssh /). Деякі додатки (наприклад, веб-браузер Firefox) також використовують свій каталог для зберігання кеша завантажених даних. Це означає, що ці каталоги можуть в кінцевому підсумку споживати багато дискового простору.

Ці файли конфігурації, які зберігаються прямо у вашій домашній директорії, часто колективно називаються dotfiles,довгий час розширюються до такої міри, що ці директорії можуть бути захаращені ними. На щастя, спільна робота під егідою FreeDesktop.org привела до створення специфікації базового каталогу XDG (XDG Base Directory Specification) конвенції, метою якої є очищення цих файлів і каталогів. У цій специфікації зазначено, що файли конфігурації повинні зберігатися в ~ / .config, файли кешу в - /. Cache, а файли даних додатка в - /. Local (або вих суб-директорії). Ця конвенція поступово набирає обертів.

Графічний робочий стіл найчастіше використовує ярлики для відображення вмісту каталогу / Desktop / (або будь-якого іншого слова, яке є точним перекладом даного, в системах, які не використовують англійську мову). Нарешті, система електронної пошти іноді зберігає вхідні листи в каталозі - / Mail /.

Це цікаво: