Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



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

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




Сторінка6/10
Дата конвертації10.03.2017
Розмір0.74 Mb.
1   2   3   4   5   6   7   8   9   10

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

Тема: «Програмування на мові bash.

Файли ініціалізації»


Мета

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

Крите́рій (від лат. critērium, яке зводиться до грец. χριτήριον - здатність розрізнення; засіб судження, мірило, пов'язаного з грец. χρινω - розділяю, розрізняю) - мірило, вимоги, випробування для визначення або оцінки людини, предмета, явища; ознака, взята за основу класифікації.
Профе́сія (фах) - відокремлений («окреслений») у рамках суспільного поділу праці комплекс дій та відповідних знань, що вимагає відповідної освіти.


Завдання для самостійної підготовки

1. Вивчити:



  • організацію умовного виконання командного рядка, угруповання команд у командному рядку;

  • використання змінних shell;

  • організацію командних файлів;

  • арифметичні обчислення в shell;
    Угрупо́вання - комплекс видів живих організмів, що входять до складу однієї екосистеми.
    Обчи́слення - є гілкою математики, зосередженою на функціях, похідних, інтегралах, і нескінченному ряду чисел. Цей предмет являє собою важливу частину сучасної математичної освіти. Воно складається з двох основних галузей - диференціального і інтегрального численнь, які пов'язують основні теореми обчислення.


  • використання псевдонимів.

2. Детально ознайомитись з довідкової системи man з такими

командами UNIX: let, echo, read, env, set, sh, alias.


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


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

Зміст звіту


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

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

  3. Висновки.


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

Bash – командний процесор, який інтерпретує введені команди. Bash має свою внутрішню мову програмування.

Скрипт – це програма на мові shell.
Змінні

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

Лати́ни (лат. Latini) - народ італьської мовної групи індоєвропейської родини (італіки), мова яких (латинська) була найближчим родичем сабінської, умбрської й оскської мов. Латини стали основою формування римського народу.

Оператор присвоєння в bash має такий вигляд:

Ім’я змінної=значення.

NAME=Ivan

Якщо потрібно привласнити значення, що містить пробєл, потрібно використовувати лапки:



NAME="Ivan Ivanov"

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



echo "$NAME"

Арифметичні операції виконуються при використанні ключового слова let



let sum=1 1

echo $sum

$(( expression ))

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

Мо́ва програмува́ння (англ. Programming language) - це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.
Наприклад,

foo=$(( ((5 3*2) - 4) / 2 ))
Команда read приймає рядок зі стандартного вводу і присвоює його змінній.

read login

echo $login

$ {} <текст> відділення змінних від тексту



let a=3 5

echo ${a}text



Для маніпулювання рядками приміняються спеціальні підстановки

1. $ {: звідки: скільки} – выделить подстроку



txt=”abcd”

s=${txt:0,3}

echo $s

2. ${змінна:=значення} Значення присвоюється змінній, якщо вона не визначена або являється пустим рядком.



var1=”abc”

${var1:=”cde”}

${var2:=”fgh”}

echo $var1

echo $var2

3. ${змінна: значення} Якщо змінна ініціалізована (визначена),замість неї використовується вказане в конструкції значення. (*)



var1=${a: ”text”}

echo $var1

4. ${змінна:-значення} Якщо змінна визначена і не являеться пустим рядком, підставляється її значення, інакше підставляється значення, вказане в конструкції. (*)

var1=${a:-”text”}

echo $var1

5. ${#змінна} кількість символів в значенні змінної

a=”abc”

echo ${#a}
При підстановці команд потрібно використовувати зворотні одинарні лапки (вони розташовані під символом тільди на клавіатурі). Підставляти можна не тільки одну команду, а цілі списки команд:

USERS=`who | wd –l`

UP=`date; uptime`

I=`whoami`

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

Локальні - ті, які видно на поточному рівні роботи процесора.

Глобальні видно на всіх нижніх рівнях, тобто в під процессорах



Команди для управління змінними

env – перегляд глобальних змінних

set – змінні певного рівня

unset – розіменування змінних

export – зробити змінну глобальною
Стандартні глобальні змінні системи, що встановлюються при запуску системи , видні у всіх підпроцесорах.

HOME домашня директорія LOGNAME логін

SHELL командний процесор HOSTNAME ім’я комп’ютера

PATH шляхи для пошуку команд HISTSIZE число команд history

MAIL шлях до файлу з листами PS1 запрошення командного рядка

CDPATH шляхи для пошуку каталогів НОМЕ шлях до домашнього

каталогу i т.п.

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

Приклади використання

history

$HISTSIZE=5



history

set PATH=$PATH:/home/student/scripts

set PATH=$PATH:$HOME/scripts

PS1=”`uname`:”


Підстановки

\$ $ для всіх, # - root

\d – поточна дата

\t – час


\s –діючий shell

\u – login

\w – поточний каталог

\h – ім’я хоста


Використання різних кольорів

PS1=”\033[0;32m \u@\h: \033[0m”

0;30 black 0; 33 brown

0;34 blue 0; 35 purple

0;32 green 0; 37 light gray

0;36 eyan 1; 30 dark gray

0; 31 red 1; 37 white

echo –e “\033[0;34m


Формування псевдонімів

Для простих частовикористовуємих команд необов’язково створювати скрипт - достатньо зробити "псевдонім" (alias).

Псевдоні́м (грец. ψευδής - «помилковий, брехливий, вигаданий» і грец. όνομα - «ім'я») - ім'я, використовуване людиною замість справжнього (даного при народженні, зафіксованого в документах) в тій або іншій публічній діяльності.

Для визначення псевдонимів використовується оператор alias. Наприклад:

alias ll=’ls –l’

Отримали нову команду ll. Перевіряєм її роботу:

ll

Аналогічно визначенню змінних, навколо символа "=" не повинно бути пробелів, а якщо в "значенні" псевдоніму є пробели або спецсимволи, то йго слід "екранувати".



Подивитися список псевдонімів можна командою alias без параметрів.
Створення скриптів

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

Етапи створення:

1. У каталозі (наприклад, /home/student/my_scripts) створити звичайний текстовий файл (назвемо його ech). Це можна зробити за допомогою команди touch ech або будь-якого текстового редактора (vim, gedit, і XW)

2.

Пара́метр (від дав.-гр. παραμετρέω) - відмірюю, розмірюю)(рос. параметр, англ. parameter, нім. Parameter m, Kennwert m, Kenngrösse f, Kennzahl f) - величина, що нею характеризують якусь властивість, стан, розмір або форму об'єкта, робочого тіла, процесу, явища або системи тощо.
Текстовий редактор - комп'ютерна програма-застосунок, призначена для створення й зміни текстових файлів (вставки, видалення та копіювання тексту, заміни змісту, сортування рядків), а також їх перегляду на моніторі, виводу на друк, пошуку фрагментів тексту тощо.
Помістити в створений файл команди. Це можна зробити пере направленням виводу (>) або в текстовому редакторі. Виберемо mc → F4 Вводимо echo Hello

3. Запустити файл в виконання з допомогою спеціальних команд:



. ech

sh ech

4. Можна зробити створений файл виконуваним.



chmod u x ech

Якщо файл знаходиться в каталозі, прописаному в змінній PATH, або ви додали шлях до нього в змінну PATH, то запустити скрипт можна без використання додаткових команд



ech
Файлы ініціалізації

Файлы ініціалізаціїце сценарії shell, які визиваються автоматично.

При реєстрації користувача в bash визивається $HOME/.bash_profile

В кожному shell є файл ініціалізації самого shell $HOME/.bashrc

При виході з системи $HOME/.bash_logout

Існують конфігурації файли командної оболонки, загальні для всіх користувачів



/etc/bashrc

/etc/profile

Файли ініціалізації є текстові файли і маючи відповідні права можна їх правити..

$HOME/.bash_profile зазвичай містить команди, що формують інтерфейс. Наприклад, вітання, рядок запрошення, колірні настройки, значення глобальних змінних і т.д.

$HOME/.bashrc - команди, що розширюють або настроюють командний інтерпретатор. Наприклад, виклик необхідних програм, оголошення псевдонімів і т.д.

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

Для того, щоб перевірити роботу цих файлів необхідно ввійти в систему (команда login).

$HOME/.bash_logout містить команди, які виконують при виході з системи. Наприклад, очистка екрану, рядок повідомлення і команда



sleep, яка задає паузу. Така пауза дозволяє прочитати виведені повідомлення .
Завдання

  1. Створити директорію myscripts, в якій зберігатимуться виконувані файли.

  2. У myscripts створити скрипт, що видає наступне повідомлення: (використовувати різні кольори). “У моєму домашньому каталозі підкаталогів: <підкаталоги> “

  3. Запустити цей скрипт на виконання за допомогою команд інтерпретації.

  4. Створити скрипт, що прочитує з екрану деяке слово і що виводить кількість символів в цьому слові.

  5. Зробити цей скрипт виконуваною командою. Запустити її на виконання.

  6. Створити свій profile, що виконує наступні функції:

  • виводить рядок вітання з вказівкою поточної дати;

  • дозволяє виконати програми, що зберігаються в my_scripts як звичайні команди;

  • дозволяє діставати доступ до файлів і підкаталогів myscripts без завдання додаткової дороги;

  • встановлює кількість історії введених команд = 25;

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

  1. Створити свій bashrс, в якому задаються наступні команди:

  • команда резервного копіювання файлів, створених власником за поточний день, окрім порожніх;

  • команда видалення всіх порожніх файлів з каталога.

  1. Написати свій .bash_logout, що виводить прощальний рядок.

  2. Перевірити роботу файлів ініціалізації.


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

  1. Яке призначення командного інтерпретатора ?

  2. В чому різниця локальних і глобальних змінних ?

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

  4. Які стандартні змінні ви знаєте ? Їх призначення ?

  5. Як можна запустити скрипт на виконання ?



1   2   3   4   5   6   7   8   9   10



  • Порядок виконання роботи
  • Зміст звіту