- •1. Екскурс до історичного розвитку os Unix
- •1.1 Виникнення os Unix
- •2. Unix на платформі Intel
- •3.1 Спільні принципи інсталяції
- •4. Введення в архітектуру ядра os Linux.
- •5. Основні поняття
- •5.1 Початок роботи
- •5.2 Вхід до системи
- •5.3 Ввод команд
- •Janis tty03 Jan 17 08:12
- •5.4 Ввод командного рядка
- •5.5 Команди редагуванняя командного рядка
- •5.6 Керування процесом
- •5.7 Отримання списку процесів, що виконуються ps
- •5.8 Знищення процесу Del, Kill
- •5.9 Призупинка вводу на екран Ctrl-s
- •5.10 Використання калькуляторів
- •6. Початкове завантаження os Unix
- •9. Файлова система Unix
- •9.1 Будова файлової системи Unix
- •9.2 Робота з файлами
- •9.3 Генерація імен файлів за допомогою метасимволів
- •10. Робота з каталогами
- •10.1 Права доступа до файлів та каталогів Для визначення прав доступу, зв’язаних з конкретним файлом або каталогом використовується команда ls –l:
- •Інші дев’ять символів додають три набори по три символи: перший – для індивідуального користувача;
- •10.2 Побудова командного рядка
- •10.3 Переадресація вводу та виводу
- •11. Конвeйори
- •12. Використання друкуючих пристроїв
- •13. Зв’язок з системою unix
- •14. Команда calendar
- •15. Спілкування з користувачем ззовні системи Unix
- •16. Процесори інтерпритаторa b-shell
- •16.1 Зарезервовані змінні
- •17. Керуючі структури у мові b-shell
- •Until false
- •17.1 Завдання директив інтерпретатору shell. Групування
- •17.2 Умовне виконання
- •17.3 Змінні інтерпретатора b-shell
- •2.1 Процедури інтерпритатора shell
- •17.3.2 Вкладені цикли
- •17.4 Керування перериваннями
- •17.5 Преревірка файлів, числових значень та ланцюжків символів
- •Wed Feb 15 21:49:20 1984
- •(Wed Feb 15 21:49:20 1984)
- •17.6 Зарезервовані змінні
15. Спілкування з користувачем ззовні системи Unix
Зв’язок можливо встановити за допомогою однієї з двох команд:
- CU(call up) – виклик по телефону;
UUCP (Unix-to-Unix copy – копіювання з системи Unix у систему Unix).
До того, як ці команди можна буде використовувати, адміністратор системи повинен сформувати деякі системні файли та виконати фізичне з’єднання системними потрібними лініями зв’язку.
Команда CU дозволяє встановити зв’язок по телефонній лінії шляхом набору номера або прямо по провідній лінії та спілкуватися з іншою системою Unix, з терміналу ПЕОМ, на якій виконується інша операційна система. Якщо зв’язок встановлено, можливо вести діалог таким чином, наче ваш термінал з’єднано безпосередньо з іншою системою, та передавати файли у обох напрямках:
$ CU 3456000 - S 1200
Це означає, що встановлено зв’язок по телефону 3456000 і швидкість передачі з обох сторін 1200 біт/сек.
При встановленні зв’язкуна моніторі повинно з’явитися повідомлення:
Login:_
Після цього можливо увійти у іншу систему таким чином, як і у свою особисту. Відсилка файлу, наприклад, буде мати наступний вигляд:
~<message
~% put message
~% take reply - копіювання до іншої системи.
~. - завершення діалогу.
1) $ mail jim < letter [mail буде читати файл letter та передавати його jim]
$_
2) $ cat message > file_1 [читає з файлу massage та записує свій вивід у файл з ім’ям file_1]
$_
3) $ cat message > file_1 [якщо файл не існує]
cat : cant create file_1
$_
4) $ cat message > /dev/1p [вивід на друк]
$_
5) $ cat message > /dev/tty05 [переслати на другий порт]
$_
6) $ >empty.file [створити файл з ім’ям empty.file]
$_
7) $ cat message 1> &file.out 2>&file.error [додавання дескрипторів $_ файлів для направлення діагностики в різні файли або різні пристрої]
$ cat message 1 >&file.all 2>&1
$_ [до одного й того ж файлу]
$ cat message >file.both
$ cat greeting >> file.both
$_ [у файл file.both записується зміст файлів message та greeting]
16. Процесори інтерпритаторa b-shell
Щоб забезпечити можливість запуску з терміналу більше одного процесу додають амперсант &. Це дозволяє вводити наступну команду не очікуючи завершення попередньої.
$ cc program.c &
308
$_
Ця команда викликає компілятор мови С для компіляції у фоновому режимі вихідного модуля програми з файлу program.c. Інтерпретатор ініціалізує цей процес, а ядро системи призначає йому номер процеса.
Виконання команди як фонового процеса не змінює організіції вводу та виводу. Якщо стандартний ввод такого процесу виконується зі свого терміналу, він може бути перерваний вводом з клавіатури для поточного привелейованого процеса. Щоб уникнути цього, краще переадресувати ввод та вивід фонових процесів (no hangup).
$ nohup cmp file1 file2 &
320
sending output to ‘nohup.out’
$_
$ peek=ginger
$port=’>/dev/tty01’
$eval $peek $port
finger >/dev/tty01
$_
Значення змінної можна використати для визначення цієї змінної.
$ word=character
$ word=meta$word
$ echo $ word
metacharacter
$_
UID – виводить ідентифікатор користувача ID;
PPID – виводить номер батьківського процесу 37 є батьком процесів 283 та 421;
PRI – виводить пріорітет процеса, який визначено по змінній NICE. Більше число значень – більш низький пріорітет;
NICE – значення для визначення пріоритету. Це значення можна збільшити за допомогою команди nice;
SZ – виводиться об’єм який займає процес у оперативній пам’яті;
WCHAN – зв’язана з колонкою F, виводить ім’я події до виникнення якої процес затримано, що визначається значенням S у коклнці S. Для активного процесу WCHAN – пропуск;
TIME – виводить сумарний час виконання процесу.
Команда nice.
Щоб розділити час для виконання багатьох процесів, що виконуються на різних терміналах потрібно втсановлювати пріорітети. При запуску процеса перший раз всі вони починаються з одного й того ж рівня пріорітета. Це значить, що кожний процес отримує однакову <увагу> ЦП і може приводити до уповільнення роботи системи в цілому.
$ nice cc screen.c &
212
$ ps –al
F S UID PID PPID CPU PRI NICE ADDR SZ WCHAN
1 s 203 30 1 0 30 20 44 16 6f4c
1 s 0 31 1 0 28 20 49 16 190c
1 s 203 212 30 50 30 30 65 44 6ff6
1 r 12 217 30 161 62 20 8e 28
TTY TIME CMD
cc 0:09 -sh
00 0:01 -2
c0 0:01 cc screen.c
c0 0:09 ps –al
$_
Без аргументів nice збільшує числові значення пріорітету на 10 (що знижує пріорітет).
Для зміни на іншу кількість (від 1 до 19) вказують розмір зміни:
$ nice –12 cc program.c &
$_
NICE=32 (20+12)
Призначити пріорітет менший за 20 може тільки привелейований користувач. При цьому задається від’ємний аргумент:
$ nice –10 cc screen.c &
Команда kill.
$ kill 283 видаляє процес,
$_
але якщо не видалено
$ cc screen.c &
283
$ ps
PID TTY TIME CMD
283 02 0:02 cc screen.c
037 02 0:11 -sh
290 02 0:01 -ps
$_
Якщо у списку не існує номер фонового процесу, то він може бути закінчений.
Перед передачею аргументів команді, що викликається shell завжди завжди присвоює їх значення позиційним параметрам.
$ bounce one two three five six
one two three four five six
$_
У цьому прикладі файл bounce, який містить команду echo $1 $2 $3 $5 $2 $4 $6 виводить рядок за вказаним порядком аргументів.