Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР2.docx
Скачиваний:
10
Добавлен:
12.02.2016
Размер:
84.16 Кб
Скачать

Міністерство освіти і науки україни

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Робота з командною оболонкою BASH

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторної роботи № 2

з курсу «Операційні системи»

Львів 2015

Тема : Робота з командною оболонкою BASH

Мета : Оволодіти практичними навичками роботи та адміністрування в системі LINUX за допомогою командної оболонки BASH. Ознайомитись із оболонкою BASH, виконанням команд у BASH, змінними оболонки, синтаксисом BASH-сценаріїв.

Порядок виконання роботи

По номеру варіанта вибрати завдання і відповідно до методичних вказівок, за матеріалами рекомендованої літератури і конспекту лекцій виконати завдання і оформити звіт по роботі.

Зміст звіту

  1. Початкові дані і постановка задачі.

  2. Текст програми.

  3. Результати виконання програми

  4. Висновки.

Методичні вказівки

  1. Оболонка bash

Bash – це абревіатура від Bourne Again Shell. Це англомовна гра слів: bash побудована на основі оболонки Борна (bourne), яка, разом з оболонками Korn і С, вважається однією з класичних оболонок UNIX.

Так що ж таке оболонка? Оболонка в першу чергу призначена для виклику команд і програм в ОС Linux. Таким чином, вона є свого роду інтерпретатором. Оболонка виконується в будь-якому командному вікні, наприклад konsole, gnome-terminal, xterm, і в текстовій консолі після входу в систему (логування).

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

  1. Виконання команд

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

    1. Фонові процеси

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

User$ find / -name '*sh' > result &

[1] 3345

Вищевказана команда шукає по всій файловій системі файли, назви яких закінчуються на sh. Список знайдених файлів записується у файлі result. Оскільки команда виконується у фоновому режимі, роботу можна не переривати. Результат [1] ​​3345 означає, що фоновий процес має номер PID 3345. Тут PID означає ідентифікатор процесу (process ID). Номер PID цікавий у тому випадку, коли процес був аварійно завершений командою kill. Номер в квадратних дужках це номер фонового процесу, запущеного в bash. Як правило, цей номер не важливий.

    1. Виконання декількох команд

Після символу & ви також можете вказати наступну команду. У такому випадку перша команда буде виконуватися у фоновому режимі, а друга в явному. У наступному прикладі розглянута вище команда find знову запускається у фоновому режимі. Однак ls одночасно виводить зміст поточного каталогу:

user $ find / -name '* sh'> result & ls

Якщо замість символу & поставити крапку з комою, то bash по черзі виконає команди у фоновому режимі: ls; date

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

user $ (ls; date) > content

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

Використовуючи поєднання символів && і ||, можна виконувати команди відносно, тобто залежно від результату іншої команди. Наприклад

user $ команда1 && команда2

виконує команду1 тільки у випадку, якщо ця команда була виконана успішно (без помилки, без видачі 0 в якості значення, що повертається)

Команда

Функція

Команда1 ; команда2

Виконує команди одна за одною

Команда1 && команда2

Виконує команду2, якщо команда1 була виконана успішно

Команда1 || команда2

Виконує команду2, якщо команда1 повертає помилку

Команда &

Запускає команду в фоновому режимі

Команда1 & команда2

Запускає команду1 в фоновому режимі, команду2 — в явному

(Команда1 ; команда2)

Виконує дві команди в одній і тій же оболонці

Інші можливості для створення умов і розгалужень для команд пов'язані з використанням команди if.