- •4 Курс, 1 семестр
- •Завдання для самостійної підготовки
- •Порядок виконання роботи
- •Методичні вказівки
- •1 Реєстрація в системі
- •Порядок виконання роботи
- •Методичні вказівки Хто такі власники файлів?
- •Зміна прав доступу до файлу
- •Числова нотація команди chmod
- •Символьна нотація команди chmod
- •Створення маски – umask
- •Порядок виконання роботи
- •Методичні вказівки
- •Порядок виконання роботи
- •Методичні вказівки
- •Завдання для самостійної підготовки
- •1. Вивчити:
- •Порядок виконання роботи
- •Методичні вказівки
- •Порядок виконання роботи
- •Методичні вказівки
- •Порядок виконання роботи
- •Методичні вказівки
- •Порядок виконання роботи
- •Методичні вказівки
Порядок виконання роботи
По номеру варіанта вибрати завдання і відповідно до методичних вказівок, за матеріалами рекомендованої літератури і конспекту лекцій виконати завдання і оформити звіт по роботі.
Зміст звіту
-
Початкові дані і постановка задачі.
-
Текст програми.
-
Висновки.
Методичні вказівки
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, яка задає паузу. Така пауза дозволяє прочитати виведені повідомлення .
Контрольні запитання
-
Яке призначення командного інтерпретатора ?
-
В чому різниця локальних і глобальних змінних ?
-
Як в змінну записати результат виконання команди ?
-
Які стандартні змінні ви знаєте ? Їх призначення ?
-
Як можна запустити скрипт на виконання ?
Лабораторна робота №5
Тема: «Керування завданнями»
Мета
Оволодіння практичними навичками роботи з процесами — створення і знищення, керування процесами і їхній аналіз