Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
unix_lab.doc
Скачиваний:
4
Добавлен:
10.12.2018
Размер:
402.94 Кб
Скачать

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

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

Зміст звіту

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

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

  3. Висновки.

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

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

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

Змінні

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

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

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

NAME=Ivan

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

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

echo "$NAME"

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

let sum=1+1

echo $sum

$(( expression ))

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

foo=$(( ((5 + 3*2) - 4) / 2 ))

Команда read приймає рядок зі стандартного вводу і присвоює його змінній.

read login

echo $login

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

let a=3+5

echo ${a}text

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

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

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 <text>”

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

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

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

alias ll=’ls –l’

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

ll

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

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

Створення скриптів

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

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

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

3. Помістити в створений файл команди. Це можна зробити пере направленням виводу (>) або в текстовому редакторі. Виберемо mc → F4 Вводимо echo Hello

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

. ech

sh ech

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

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. Яке призначення командного інтерпретатора ?

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

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

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

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

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

Тема: «Керування завданнями»

Мета

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]