You are on page 1of 10

Навчальна дисципліна “Операційні системи Unix/Linux”

Лабораторна робота №1

Знайомство з ОС Linux

Мета: познайомитися з ОС Linux на прикладі Ubuntu Linux 18.04 LTS та інтерфейсом


командного рядка.
Інструменти: веб-переглядач, комп’ютер з робочим інтернет-з’єднанням.

Теоретичні відомості та хід роботи

Короткі відомості про Ubuntu 18.04


Ubuntu 18.04 LTS - випуск 18.04 операційної системи Ubuntu. Ubuntu є дистрибутивом Linux і
походить від іншого дистрибутиву Linux - Debian, тому Ubuntu іще називають Debian-сумісним
дистрибутивом. Розробкою та підтримкою Ubuntu займається компанія Canonical.
Абревіатура LTS розшифровується як Long Term Support - довгострокова підтримка. LTS-
випуски підтримуються 5 років.
Існують різноманітні графічні інтерфейси для Linux, у тому числі й для Ubuntu (GNOME,
KDE, Xfce, LXDE тощо). У цьому курсі ми працюватимемо з інтерфейсом командного рядка (CLI -
command line interface).
Детальніше - див. лекції (тема 1 “Вступ”), а також курс NDG Linux Essentials, chapters 1-3.
Командна оболонка
Командною оболонкою (shell) називають інтерфейс командного рядка, що інтерпретує
команди користувача.
Серед найпопулярніших командних оболонок – sh (Bourne shell), bash (Bourne-Again shell), csh
(C shell), tcsh (TENEX C shell). Усі командні оболонки для Linux загалом дуже подібні. У цьому
курсі розглядатиметься bash.
Вхід у систему
Якщо графічний інтерфейс не встановлено (або наразі не використовується), вхід у систему
виглядає подібно до зображеного на рис. 1.1.

Рис. 1.1
Спершу вводиться логін (на рис. 1.1 – student), а після натискання Enter – пароль. Пароль під
час введення у командному рядку не відображається на екрані взагалі ніяк – навіть зірочками.

1
Тому на перший погляд може здатися, ніби пароль не вводиться. Це не так. Акуратно введіть всі
символи паролю і натисніть Enter.
Примітка. У курсі NDG Linux Essentials вхід у систему здійснюєтся автоматично, щойно
завантажиться віртуальна машина.
Повідомлення дня
Якщо ви працюєте з Linux без графічного інтерфейсу, то на початку роботи на екран буде
виведено так зване повідомлення дня (Message of the Day, MOTD). MOTD може містити
різноманітну інформацію про систему, зокрема дату та час останнього входу до цієї системи, назву
дистрибутива та його випуск, версію ядра тощо. Наприклад, в Ubuntu 18.04 без GUI повідомлення
дня може виглядати подібно до показаного на рис. 1.2.

Рис. 1.2
Вигляд повідомлення дня та інформація, яка виводиться у ньому, може відрізнятися.
Завдання №1.1
1) Запустіть Ubuntu. Як: у курсі NDG Linux Essentials віртуальна машина з Linux запускається
автоматично, коли ви відкриваєте будь-який теоретичний блок (chapter) або лабораторну роботу
(lab). Вхід у систему також буде автоматичний. Якщо ж ви використовуєте іншу установку Linux,
імовірно, треба буде ввести логін і пароль.
2) Коли з'явиться повідомлення дня, проаналізуйте його. Які відомості воно містить? Додайте
скриншот повідомлення дня та його розшифрування у звіт.
Запрошення
Коли командна оболонка готова до введення чергової команди, вона виводить так зване
запрошення (prompt).
Стандартне запрошення у терміналі Linux має таку будову:
логін_користувача@ім'я_комп'ютера:поточний_каталог$
Наприклад,
student@lab:~$ логін користувача – student,
ім'я комп'ютера – lab,
поточний каталог – домашній каталог користувача student (про це
свідчить значок ~)
student@lab:/etc$ логін користувача – student,
ім'я комп'ютера – lab,
поточний каталог – каталог /etc
ubuntu@ip-172-31-17-237:~$ логін користувача – ubuntu,

2
ім'я комп'ютера – ip-172-31-17-237,
поточний каталог – домашній каталог користувача ubuntu (про це
свідчить значок ~)
Однак запрошення може відрізнятися від стандартного. Наприклад:
olenaholovnia:~$ логін користувача – olenaholovnia,
ім'я комп'ютера – не вказано у даному запрошенні,
поточний каталог – домашній каталог користувача olenagolovnya (про
це свідчить значок ~)
Замість значка долара ($) можуть використовуватися й інші спецсимволи. Вони вказують на
командну оболонку, яку використовує даний користувач. Зокрема, значок $ свідчить про те, що
користувач працює в оболонці bash. Інші поширені спецсимволи: %, >, # (останній символізує
користувача root).
Завдання №1.2
1) Проаналізуйте запрошення (відшукайте у ньому логін користувача, ім'я комп'ютера, поточний
каталог).
2) Додайте скриншот запрошення та його аналіз у звіт.
Кілька простих команд
Розглянемо деякі базові команди командного рядка Linux. Усі ці команди можуть мати
різноманітні аргументи та параметри, з яких тут описано лише незначну частину. Більше
відомостей про ці та інші команди можна одержати у довідковій системі. Один зі способів зробити
це - ввести
man назва_команди
Для виходу з довідки у форматі MAN натисніть клавішу Q.
Детальніше про одержання довідки у Linux - згодом.
Команда pwd
Виводить ім'я поточного каталогу. Наприклад:

Перший рядок – запрошення і власне команда pwd, другий рядок – вивід команди, тобто
результат її роботи, поданий у текстовій формі і виведений на екран.
Тобто поточний каталог:
/home/student
Це домашній каталог користувача. Домашній каталог користувача є підкаталогом каталогу
/home, називається за ім'ям користувача і є стандартним місцем для зберігання файлів цього
користувача (за замовчуванням користувач має до них повний доступ).
Для хитрих. Якщо ви уважно читали пункт "Запрошення", то знаєте, що можна було
з'ясувати, який каталог поточний, і без команди pwd. Це справді так. Символ ~ у запрошенні
означає, що поточним каталогом є домашній каталог. З іншого боку, ми розглядали стандартне
запрошення. У загальному випадку запрошення може бути налаштоване так, щоб відомості про
поточний каталог там не відображалися. Крім того, домашній каталог не обов'язково зберігається
у /home і називається за іменем користувача – всі ці налаштування можуть бути змінені.

3
Завдання №2.3.
1. За допомогою команди pwd перевірте, який каталог є поточним у вашому випадку. Чи
відображається ця інформація у запрошенні?
2. Додайте вивід команди pwd та його аналіз у звіт.
Коротко про систему каталогів у Linux
Файли та каталоги у Linux детальніше розглядатимуться згодом, а поки здійснимо дуже
загальний огляд системи каталогів у Linux. Логічна структура системи каталогів у Linux наступна.
Є кореневий каталог, що позначається /. Всі інші каталоги є його підкаталогами того чи іншого
рівня. Фрагмент прикладу структури каталогів Linux показано на рис. 1.3.
/
/bin
bash
bunzip2
busybox

/boot
abi-3.13.0-74-generic
config-3.13.0-74-generic
grub
fonts
gfxblacklist.txt

initrd.img-3.13.0-74-generic
memtest86+.bin

/dev
autofs
block
1:0
1:1


/etc
acpi
asus-keyboard-backlight.sh
asus-wireless.sh

adduser.conf
….
/home
student
Відео
Документи
Завантаження


Рис. 1.3

4
При цьому фізично деякі підкаталоги можуть міститися в інших розділах жорсткого диску чи
взагалі на іншому жорсткому диску. У разі підключення того чи іншого зовнішнього носія
(наприклад, флешки) цей зовнішній носій також вбудовується (кажуть "монтується") у наявну
структуру каталогів. Вищезгадана флешка може бути підмонтована, скажімо, як каталог
/media/student/5819-3252. Монтування пристроїв буде детальніше розглянуто пізніше.
Файли у Linux не обов'язково мають розширення. Більшість, навпаки, не має жодного. Регістр
символів в іменах файлів та каталогів важливий. Тобто file1 і File1 – це два різних файли, а
/home/student/dir1 та /home/student/Dir1 – два різні каталоги. В іменах файлів та каталогів
використовуються прямі слеші – "/" (у Windows, наприклад, зворотні, "\").
Буфер хронології команд
У командному рядку працює буфер хронології команд (дозволяє повторити попередньо
введені команди; найпростіший спосіб використання буферу хронології команд – стрілки вгору-
вниз). Знайшовши потрібну команду, відредагуйте її, якщо є така потреба, після чого натисніть
Enter.
Команда ls
Виводить вміст каталогу. Якщо ввести команду ls без аргументів, буде виведено вміст поточного
каталогу, наприклад:

Якщо треба вивести вміст іншого каталогу, вкажіть його ім'я як аргумент команди ls:

Якщо, наприклад, треба вивести ще й приховані файли та підкаталоги, додайте до команди ls


параметр -а:

а якщо розширені відомості про файли та підкаталоги – параметр -l: (англійська ел):

5
Параметри можна поєднувати:

Зверніть увагу! Команди у Linux, як і імена файлів та каталогів, чутливі до регістру символів.
Завдання №1.3.
1) За допомогою команди ls без параметрів виведіть вміст:
* поточного каталогу (домашнього);
Зверніть увагу. У деяких випадках домашній каталог може містити лише приховані елементи і
тому на перший погляд здаватися порожнім.
* кореневого каталогу (/);
* каталогу /dev
2) За допомогою команди ls з параметрами виведіть вміст:
* каталогу /dev так, щоб відображалися розширені відомості (доцільно, скориставшись буфером
хронології команд, відшукати попередню команду, а потім відредагувати її);
* домашнього каталогу так, щоб відображалися приховані файли;
* домашнього каталогу так, щоб відображалися приховані елементи та розширені відомості (знову
доцільно скористатися буфером хронології команд).

3) Додайте скриншоти одержаних виводів у звіт.


Команда cat
Команда cat призначена для виведення вмісту файлів (за замовчуванням – на екран). Наприклад:
cat file1 вивести вміст файлу file1

6
cat file1 file2 вивести вміст файлу file1, а з нового рядка – файлу file2
Зрозуміло, що виведений файл може не вміститися на екрані. У такому випадку ви побачите
не весь файл, а його завершення. Це здебільшого несуттєво, якщо командний рядок запущено у
терміналі у межах графічного інтерфейсу, адже вікно терміналу має смугу вертикальну
прокручування. Однак коли ви працюєте без графічного інтерфейсу, у вас два виходи: відкрити
файл за допомогою текстового редактора або скористатися командами more та less. Почнемо з
розгляду команд more і less, а текстові редактори розглянемо згодом.
Команда more
Команда more робить вивід посторінковим. У випадку використання more для виведення
файлів це працює наступним чином: якщо файл не вміщається на екрані, буде виведено спершу
перший фрагмент файлу, а внизу – позначку More (варіант – Далі), а також частка виведеного на
екран у відсотках. Аби переглянути файл далі, натискайте Enter.
Наприклад, для посторінкового виведення на екран файлу file3 можна скористатися командою:
more file3
Якщо треба достроково вийти з режиму посторінкового виведення, натисніть клавішу Q.
Команда less
Команда less подібна до команди more, проте дозволяє рухатися по виведеному тексту не
лише вперед, а й назад (клавіші зі стрілками вгору і вниз).
Посторінкове виведення на екран файлу і вихід з команди less такі самі, як і в команди more,
зокрема команда для виведення файлу file3 виглядатиме так:
less file3
Завдання №1.4.
Виведіть на екран вміст файлу /etc/services:
* за допомогою команди more;
* за допомогою команди less.
Переконайтеся, що вмієте переміщуватися по файлу вперед або вперед-назад (залежно від
можливостей команди), а також коректно виходити з режиму посторінкового відображення.
Команда id
Команда id (без параметрів) виводить відомості про поточного користувача, зокрема його ім'я
та групи, до яких він належить. Наприклад:

До команди id ми ще звертатимемось далі.


Завдання №1.5
1) Скориставшись командою id, виведіть на екран відомості про користувача, від імені якого ви
ввійшли до системи.
2) Відшукайте, де у виводі команди зазначається ім'я користувача, а де – перелік груп, до яких цей
користувач входить. Одна з груп завжди називається за іменем користувача. Знайдіть її.
3) Додайте скриншот виводу команди id та аналіз цього виводу у звіт.

7
Механізм sudo
Традиційно у unix-подібних ОС, у тому числі й у linux-системах, обліковий запис
адміністратора (або суперкористувача) має назву root. Решта облікових записів мають значно
обмеженіші права (їм, зокрема, не дозволяється здійснювати встановлювати програмне
забезпечення).
Обмежити права користувача root практично неможливо, тому, працюючи під цим обліковим
записом, користувач, особливо недостатньо досвідчений, легко може пошкодити систему.
Оскільки в недосвідченого користувача теж цілком може виникнути потреба виконати
адміністративну задачу, у багатьох сучасних Linux-системах, зокрема в Ubuntu Linux,
використовується компромісний підхід – механізм sudo.
У деяких випадках безпосередній вхід під обліковим записом root відключається. Тоді
користувач (навіть якщо він зветься адміністратором) входить у систему під обмеженим обліковим
записом (а не під root), а права root одержує лише для виконання тієї чи іншої адміністративної
задачі. При цьому в користувача запитують пароль (його власний пароль, а не пароль користувача
root – останній за замовчуванням просто відсутній). Втім, вхід під обліковим записом root може
бути й увімкнено (на віртуальних машинах у NDG Linux Essentials вхід під root увімкнено).
Незалежно від того, ввімкнено вхід під записом root чи ні, описаний вище підхід за
допомогою утиліти sudo (superuser do).
Заволодіти адміністративними правами при такому підході може не будь-який користувач, а
лише обмежене коло користувачів. В Ubuntu це зокрема (але не виключно) члени групи sudo.
Користувач, створений під час встановлення системи, включається до групи sudo
за замовчуванням.
Відомості про те, яким суб'єктам дозволяється набувати адміністративних прав через
механізм sudo, зберігаються у файлі /etc/sudoers.
Набуття прав адміністратора у командному рядку
Для виконання тієї чи іншої команди з правами адміністратора допишіть перед нею sudo:
sudo команда,_для_виконання_якої_потрібні_права_адміністратора параметри
Система запитає пароль – введіть його (пам'ятайте, що у командному рядку паролі під час
введення не відображаються взагалі ніяк – навіть зірочками). Пароль може і не знадобитися, якщо
нещодавно ви вже виконували якусь команду використовуючи sudo.
Завдання №1.6
1) За допомогою команди cat спробуйте переглянути вміст файлу /etc/sudoers, не використовуючи
sudo. Чи вдається це зробити?
2) Повторіть спробу, додавши команду sudo. Чи вдалося тепер? Чому?
Дуже важливо! Будьте обережні. На живій машині цей файл можна редагувати лише у виняткових
випадках і лише тоді, коли ви точно знаєте, що робите. Якщо у майбутньому вам треба буде надати
право використовувати sudo користувачу, такого права позбавленому, є інші, безпечніші способи
це зробити.
3) Включіть скриншоти обох спроб перегляду файлу /etc/sudoers та аналіз вдалих і невдалих
спроб у звіт.

8
Вхід під іншим обліковим записом
У даному випадку не йдеться про повне завершення сеансу поточного користувача - лише про
тимчасовий вхід від імені іншого облікового запису. Для цього використовується команда su.
Наприклад, ввівши
su user1
і за потреби підтвердивши своє право на вхід паролем, ми розпочнемо у командному рядку сесію
від імені облікового запису user1 (попередня сесія лишатиметься відкритою, і, закривши
новостворену, ви автоматично у неї повернетесь).
Для закриття сесії користувача user1 введіть
exit
або натисніть Ctrl+D.
Якщо у системі дозволено вхід під обліковим записом root, то ви можете здійснити такий вхід,
ввівши
su
Завдання №1.7.
1) Увійдіть під обліковим записом root (пароль - netlab123) Перейшовши, зверніть увагу на
запрошення та спецсимвол, яким це запрошення завершується.
2) Спробуйте переглянути файл /etc/sudoers, не дописуючи sudo перед командою. Чи вдалося це
тепер. Чому?
3) Вийдіть з режиму суперкористувача.
4) Додайте скриншот входу під обліковим записом root та виходу з-під нього у звіт.
Комбінації клавіш
У командному рядку діє низка комбінацій клавіш. Для початку запам'ятайте дві: Ctrl+S
(призупинити/поновити виконання команди) та Ctrl+C (припинити виконання команди без
можливості поновлення).
Завдання №1.8.
1) Введіть команду sudo cat /etc/sudoers
2) Коли система запитає пароль, введіть пароль навмисне неправильно.
3) Після повідомлення про помилку припиніть виконання команди без можливості поновлення.

Вимоги до звіту

Звіт має містити наступну інформацію.

1) Cкриншот повідомлення дня та його розшифрування.

9
2) Скриншот запрошення та його аналіз.

3) Скриншот виводів із завдання №1.3.

4) Скриншот виводу команди id та аналіз цього виводу.

5) Скриншоти обох спроб перегляду файлу /etc/sudoers (завдання №1.6) та аналіз вдалих і
невдалих спроб.

6) Скриншот входу під обліковим записом root та виходу з-під нього.

Адреса для надсилання звіту: olenaholovnia@gmail.com, тема листа - OS_Лаб_1_Звіт

10

You might also like