Skip to content

Latest commit

 

History

History
104 lines (85 loc) · 12.4 KB

cmd.md

File metadata and controls

104 lines (85 loc) · 12.4 KB

Освоєння командної строки Linux

Хід роботи.

Дана лабораторна спрямована на установку середовища для подальшої роботі з предмету "Програмування". Тому, ніякий код писати не треба та завдання одне на всіх.

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

Загальні рекомендації. Перед тим, як виконувати дії, ознайомтесь, будь ласка, зі всіма пунктами завдання/роботи та, за необхідністю, ознайомтесь з додатковою літературою.

Дії, що необхідно виконати:

  1. Знайти, завантажити та інсталювати додаток VirtualBox, що дозволить вам встановити віртуальну операційну систему Linux та працювати з нею доки ви працюєте з ОС Windows. Однак, цей крок можна пропустити, якщо:

    • ваша основна система є Linux;
    • ви маєте операційну систему Windows 10 та вмієте встановлювати Windows Subsystem for Linux;
  2. Знайти, завантажити та встановити образ Linux системи для подальшої роботи. Для кращої роботи також рекомендується встановити Guest Additions або використовувати образ з вже встановленими Guest Additions. Якщо ваша основна система є Linux, то цей крок можна пропустити. Обмежень нема, але існують наступні рекомендації:

    • не треба проявляти героїзм та інсталювати ОС самому - існує багато заздалегідь проінстальованих та сконфігурованих образів, що можна завантажити з інтернету, наприклад, сайту osboxes.org;
    • методичне забезпечення створювалась з урахуванням того, що у вас буде Debian-подібна ОС. Ніхто Вам не забороняє ставити ОС іншої категорії, але виникає ризик того, що проблеми роботи з цією ОС прийде вирішувати Вам самим;
    • якщо у Вас "слабий" комп'ютер (або ноутбук), то рекомендовано ставити Lubuntu ОС, або Linux lite;
    • якщо у Вас "потужній" комп'ютер (або ноутбук), то рекомендовано ставити Ubuntu ОС, або Kali Linux;
    • завантажувати має сенс останню доступну ОС;
    • завантажуйте x64-бітну ОС, за винятком, якщо у вас x32 ЕОМ, що не підтримує x64;
    • Зверніть увагу! Треба вимикати/перевантажувати віртуальну ОС так само, як ви вимикаєте/перевантажуєте свій домашній ПК. Треба вимикати засобами ОС, а не "клацнувши" на "хрестик"! У Ваших попередниках були випадки, коли після некоректного завершення VirtualBox система більше не завантажувалась і всі незбережені дані знищувались!;
    • якщо ви вирішили використовувати debian-based ОС, то після першого запуску рекомендується оновити компоненти системи до актуальних (відкривши термінал):
      • sudo apt-get update;
      • sudo apt-get upgrade;
      • sudo reboot;
  3. Тут і надалі. Усі дії використовуються за допомогою терміналу. Інсталювати мінімально-необхідні пакети (програмні додатки): git, clang, clang-format, clang-tidy, tree, make. Упродовж курсу Ви будете до-інсталювати інші пакети, але ці необхідні, як найменш, у цієї роботі. Для інсталяції пакету необхідно використовувати пакетний менеджер apt-get (для *Ubuntu/Kali Linux) або вбудований менеджер пакетів з графічним інтерфейсом - утиліту ОС, до допомагає інсталювати більшість програмних продуктів ОС без зайвих зусиль.

  4. За допомогою системи контролю версіями git та команди git clone виконати клонування проекту (репозиторія), що знаходиться десь в інтернеті, посилання на який надається кожним викладачем окремо. За умовчуванням, проект буде знаходитися тут: https://github.com/davydov-vyacheslav/sample_project

  5. Ознайомитися з утилітою tree. Необхідно зайти в директорію склонованого проекту та завдяки утиліти tree необхідно вивести на екран структуру каталогів проекту.

  6. Зібрати проект (зкомпілувати). Усі необхідні шаманські дії для компіляції проекту все були зроблені до вас та знаходяться у файлі Makefile. Для того, щоб скористатися ним та виконати компіляцію проекту, необхідно:

    • в командній строці зайти до склонованого каталогу;
    • перейти до каталогу, де знаходиться файл Makefile;
    • перевірити за допомогою команди ls дійсність його наявності;
    • виконав командної строці команду: make clean prep compile check вдосконалитись, що помилок немає;
    • за допомогою утиліти tree знайти створені файли;
    • перейти до каталогу dist та виконати отримані бінарні файли.
  7. Виконати (обґрунтовано) будь-які зміни до коду, але при умові, що:

    • наступна компіляція проекту буде виконана без помилок;
    • зміни можна побачити у даних, що виводяться на екран проектом.
  8. Перекомпілювати проект (командою make clean prep compile check) та продемонструвати зміни, що помітні при виведенні на екран.

  9. Виконати зміни в Makefile:

    • додати ціль all, яка буде виконувати цілі clean prep compile check;
    • перевірити роботу Makefile, шляхом виконання команди make all;
  10. Визначити поточну версію утиліти clang та make;

  11. Дослідити роботу утиліти man та описати її призначення;

  12. За допомогою команди git diff показати виконані зміни у файлах

  13. Написати звіт о ході виконання роботи та отриманих результатах. Звіт не повинен мати зображення!

Зверніть увагу!. У рамках першої лабораторної роботи нічого завантажувати на gitlab не потрібно. Необхідно створити файл lab01.txt та надати його викладачеві домовленим засобом.

Hint!. Додаток VirtualBox має механізм снепшотів (snapshot), що дозволяє зберігати поточний стан системи. При наявності помилок в системі можна "відкатити" систему до будь-якого збереженого стану. Рекомендується освоїти цей механізм.

Вимоги до оформлення та сдачі звіту

Звіт повинен складатися з наступних пунктів:

  • Автор (ПІБ, група), номер роботи, тема роботи;
  • пункти ходу роботи (кількість яких повинна дорівнювати (+-) кількістю пунктів в методичці). Кожен пункт має освітлювати наступні моменти (відподвідати на питання):
    • Що треба зробити?
      • Наприклад, "Для визначення поточної версії clang та make ....."
    • Як треба зробити?
      • Наприклад, "... в командної строці вводимо команди clang --version для отримання версії clang, та make --version для отримання версії утиліти make"
    • Що отримали в результаті?
      • Наприклад, "В результаті отримали наступний резульатат, що свідчить про те, що версія clang=13.0.0, а версія make=3.81"
% clang --version 
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0

Посилання на літературу

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

  1. Що таке Операційна Система? Яки операційні системи ви знаєте?
  2. Які засоби віртуалізації ОС існують?
  3. Що таке менеджер пакетів? Які менеджери пакетів існують?
  4. Що таке система контролю версіями? Які існують системи контролю версіями?
  5. Що таке Makefile? Які його ключові обов'язки? Як його використовувати?
  6. Що робить команда tree?
  7. Як дізнатися перелік файлів та даних, що були змінені за допомогою системи контролю версіями git?