
- •7.080403 – Програмне забезпечення автоматизованих систем
- •1 Структура файлової системи, базовий та розгорнутий перелік команд ос unix
- •1.2 Підготовка до роботи
- •1.3 Методичні вказівки до виконання роботи
- •1.3.1 Процедура віддаленої реєстрації користувача на платформі unix
- •1.3.2 Файлова система
- •1.3.3 Середовище виконання процесів
- •1.3.4 Базові команди системи
- •1.4 Порядок виконання роботи
- •1.5 Завдання
- •1.7 Контрольні запитання
- •2 Редактор VI
- •2.3.3 Команди руху маркера по екрану монітора
- •2.3.4 Команди редактора, що забезпечують перехід у режим вводу
- •2.3.6 Команди копіювання
- •2.3.7 Команди пошуку вказаної символьної конструкції або літери
- •2.4 Порядок виконання роботи
- •2.5 Завдання
- •2.7 Контрольні запитання
- •3 Shell. Змінні оболонки shell. Застосування файла .Profile
- •3.3.2 Команда echo
- •3.3.3 Змінні середовища виконання
- •3.3.4 Файл .Profile
- •3.3.5 Використання лапок
- •3.3.6.1 Позиційні змінні (параметри)
- •3.3.6.2 Літерно-цифрові змінні (користувача)
- •3.3.6.3 Раніше визначені спеціальні змінні
- •3.3.7 Переадресація вводу-виводу за допомогою дескрипторів файлів
- •3.3.8 Шаблони, підстановки
- •3.3.9 Спеціальні символи shell операторів
- •3.4 Порядок виконання роботи
- •3.5 Завдання
- •3.7 Контрольні запитання
- •4 Shell. Оператори облонки shell. Програмування в оболонці shell
- •4.1 Мета роботи
- •4.2 Підготовка до роботи
- •4.3 Методичні вказівки до виконання роботи
- •4.3.1 Оператори мови shell
- •4.3.2 Синтаксис shell
- •If список команд
- •4.3.3 Створення та організація процедури у shell
- •4.3.4 Команди підтримки та їх особливості
- •4.3.4.1 Умовна перевірка: test
- •4.3.4.2 Оцінка арифметичних виразів expr
- •4.3.4.3 Команди true і false
- •4.3.4.4 Внутрішньорядкове введення документів
- •4.3.5 Передача параметрів до процедури shell
- •4.3.6 Приклади використання команд shell
- •4.3.6.1 Використання оператора if
- •If список команд
- •If список команд
- •4.3.6.2 Використання оператора case
- •4.3.6.3 Умовні цикли while та until
- •4.3.6.4 Організація циклу для списку: for
- •4.3.6.5 Керування циклами: break та continue
- •4.3.6.6 Кінець файла та вихід
- •4.4 Порядок виконання роботи
- •4.5 Завдання
- •4.7 Контрольні запитання
- •5 Мережні протоколи tcp/ip. Протокол telnet та протокол обміну файлами ftp
- •5.3.1.1 Командний режим telnet
- •5.4 Порядок виконання роботи
- •5.5 Завдання
- •6 Awk. Програмування на мові awk
- •6.3.1 Структура програми на мові awk
- •6.3.2 Поля
- •6.3.3 Вивід на друк
- •6.3.4 Форматований висновок
- •6.3.5 Прості шаблони
- •6.3.5 Вбудовані змінні
- •6.3.6 Змінним, обумовленим користувачем
- •6.3.7 Повідомлення про помилки
- •6.3.8 Вираження
- •6.3.8.2 Відносні вираження
- •6.3.8.3 Регулярні вираження
- •6.3.8.5 Символи
- •6.3.8.6 Комбінації виражень
- •6.3.8.6 Діапазони виражень
- •6.3.8.9 Вбудовані змінні
- •6.3.8.10 Арифметичні дії
- •6.3.8.11 Змінні поля
- •6.3.8.12 Деякі лексичні угоди
- •6.3.8.13 Вивід у файли
- •6.3.8.14 Вивід у канали
- •6.4 Порядок виконання роботи
- •6.5 Завдання
- •6.7 Контрольні запитання
- •Перелік рекомендованої літератури
5 Мережні протоколи tcp/ip. Протокол telnet та протокол обміну файлами ftp
5.1 Мета роботи
Вивчити можливості застосування протоколів telnet та ftp для отримання віддалених ресурсів та обміну файлами у мережі.
5.2 Підготовка до роботи
Перед лабораторною роботою слід повторити матеріал за курсом лекцій та рекомендованою літературою [1,2,3,4].
5.3 Методичні вказівки до виконання роботи
Операційна система UNIX використовує кілька протоколів. Найбільш вживаними є telnet та ftp. За допомогою них можна отримати як ресурси будь-якої доступної мережної машини, так і обмінятися файлами між різними обчислювальними платформами. Тобто це є базовий інструмент реалізації мережних рішень різного рівня.
5.3.1 Використання віртуальних терміналів
Звернувшись до терміну «віртуальний термінал» необхідно розуміти, що це термінал, який немає фізичного з’єднання з віддаленою машиною. Тобто, це означає, що програмне забезпечення на вашій та віддаленій машині встановлює фізичні зв’язки таким чином, що ваш термінал діє як термінал віддаленої машини.
За допомогою команди telnet користувач має змогу встановити зв’язок з віддаленою машиною та використати її ресурси. Для цього він повинен виконати команду у такий спосіб:
telnet
або
telnet 10.12.87.60
або
telnet user01
Якщо у першому випадку користувач тільки ініціював роботу протоколу, то у другому та третьому випадку – вказав з якою машиною потрібно встановити зв’язок. У другому випадку це ip потрібної машини, а у третьому – система звертається до файла /etc/hosts, для встановлення ip адреса машини за синонімом, що застосували у команді.
5.3.1.1 Командний режим telnet
Розглянемо більш детально кожен варіант застосування команди.
Виконавши команду telnet без використання параметрів, користувач ініціює командний режим роботи, тобто команда telnet знаходиться у режимі очікування з’єднання з віддаленою машиною або отримання іншої команди протоколу. Розглянемо найбільш вживані команди:
open |
Встановлює зв’язок з віддаленою машиною. Як параметр використає ip або синонім віддаленої машини |
close |
Розриває встановлений зв’язок з віддаленою машиною та встановлює командний режим роботи telnet |
quit |
Розриває встановлений зв’язок з віддаленою машиною та завершує роботу команди telnet |
z |
Затримує роботу telnet для контролю |
line |
Віддалена машина запитує дозвіл на перехід у режим порядкового читання |
characte |
Віддалена машина запитує дозвіл на перехід у режим посимвольного читання |
escape |
Ця команда надсилає спеціальний символ до telnet |
status |
Відбиває стан зв’язку з віддаленою машиною та поточні опції керування |
? |
Надання допомоги з використання команд |
При використанні команд слід пам’ятати, що коли команда повинна мати опції, а вони не були введені, то з’являється діалог, у якому користувач повинен ввести потрібну інформацію.
5.3.1.2 Використання команди telnet з параметрами
У разі використання telnet з параметрами, протокол намагається встановити зв’язок з віддаленою машиною, ip-адрес якої заданий як параметр команди telnet. У випадку, коли віддалена машина недосяжна, то формується повідомлення і виконання команди припиняється. Якщо замість ip-адреси застосовується синонім, система сама встановлює ip-адрес, виходячи з інформації файла /etc/hosts.
5.3.2 Передача файлів
Команда ftp надає можливість виконати обмін файлами між машиною користувача та іншими машинами глобальної мережі. За допомогою цього протоколу є можливість маніпулювати файлами та каталогами як на машині користувача так і на машинах мережі, якщо є доступ до їх файлової системи. Ця команда має розгалужений список внутрішніх команд, що забезпечують такі можливості.
5.3.2.1 Ініціація роботи протоколу
Виклик команди ftp може бути:
- виклик команди ftp без параметрів:
ftp
- виклик команди ftp з ip-адресою мережної машини:
ftp 10.12.87.60
- виклик команди ftp з синонімом ip-адреси мережної машини:
ftp user01
Виклик команди ftp аналогічний виклику команди telnet.
5.3.2.2 Команди ftp
Коли на екрані буде запрошення ftp, користувач має можливість виконати одну з наведених в подальшому команд. У відповідності від того який режим роботи був ініційований, то користувач може отримувати додаткові повідомлення. Крім того, слід зважити на те, що протокол ftp дозволяє введення не повного найменування команди, а достатньої кількості символів, з найменування команди, що однозначно ідентифікують ім’я команди.
! |
Ця команда затримує ftp та викликає командну мову (shell) на локальній машині. Будь-які символи після знаку оклику сприймаються та виконуються як shell команди. Потім можна повернутися до ftp з shell. Усі ftp-опції та зв’язані віддалені машини повертаються у той же стан, який був до появлення цієї команди. Якщо команда shell надрукована у тому же рядку, де і !, то виконується тільки ця команда. Після виконання команди програма ftp повертається до командного режиму. |
append |
Команда append примушує ftp додавати зміст локального файла до кінця файла віддаленої машини, з якою з’єднані на даний час. Коли викликають цю команду, то є змога вказати до якого файла потрібно додати, наприклад: ftp> append <ім’я локального файла> <ім’я файла віддаленої машини> В іншому випадку можна використовувати тільки ім’я команди ftp, а потім отримати запит про ім’я файлів, наприклад: ftp> append (local-file) <ім’я локального файла> (remote-file) <ім’я файла віддаленої машини> Цю команду можна використовувати тільки з тими машинами, що використовують UNIX систему або систему, яка сумісна з UNIX. |
ascii |
Ця команда примушує ftp перетворювати файли у ASCII код. |
bell |
Ця команда призводить до того, що на вашому терміналі з’явиться сигнал після завершення передачі кожного файла. Для зупинки дії команди потрібно ще раз увести цю команду ftp. |
binary |
Ця команда примушує ftp передавати файл у двійковому коді. |
bye |
Ця команда зачиняє усі відкриті зв’язки та виконує вихід з ftp. |
cd |
Ця команда виконує заміну поточної директорії, на віддаленій машині, на нову. Можна вказати нове ім’я директорії, коли викликають команду як у наведеному прикладі: ftp > cd /usr/bin Коли викликають команду cd ftp без аргументів, то можна отримати запит машини на введення імені директорії або буде використане ім’я домашньої директорії. Це залежить від варіанта реалізації команди cd ftp. |
close |
Ця команда зачиняє усі відкриті зв’язки. |
debug |
Ця команда включає або виключає багатослівний режим. Коли режим включається, то про це інформує відповідне повідомлення на терміналі. При виключенні режиму – повідомлень немає. |
delete |
Ця команда вилучає файл на віддаленій машині, до якої були підключені зараз. Можна вилучити файл на віддаленій машині за допомогою такого формату команди ftp: ftp> delete <ім’я файла, який треба вилучити> Коли викликають команду delete без аргументів, то машина запитує ім’я файла, який потрібно вилучити. |
dir |
Ця команда видасть детальний список директорії на віддаленій машині, до якої ви підключені.(Порівняєте з опцією ls, наведеної нижче). Ви можете задати ім'я директорії, яку потрібно роздрукувати, при виклику команди ftp. Наприклад: ftp> dir /usr/bin Якщо ім'я директорії не вказано, то буде роздрукована поточна директорія на віддаленій машині. Можна спонукати ftp, занести результати виконання команди у файл, перше ніж він з'явиться на екрані. Це робиться у такий спосіб: ftp> dir /usr/bin printfile Потрібно тільки вказати ім'я директорії до імені вихідного файла (тут printfile). Таким чином, можна надрукувати зміст поточної директорії у файлі, що називається printfile, виконавши таку команду: ftp> dir . printfile де "." означає поточну директорію. |
form |
Ця команда виводить на екран формат файла, що використовується. Звичайно підтримується недрукований формат. |
get |
Ця команда копіює файл з віддаленої машини, до якої в цей час приєднані. Цей файл копіюється на локальну машину. Коли викликається ця команда, потрібно вказати ім'я файла на віддаленій машині та ім'я файла на локальній машині. Наприклад: ftp> get <ім'я файла на віддаленій машині> <ім'я файла на локальній машині> Якщо просто вказати ім'я файла на віддаленій машині, який потрібно скопіювати, то файл на локальній машині матиме те саме ім'я. Наприклад: ftp> get <ім'я файла на віддаленій машині> Можна виконати команду ftp get без аргументів. Тоді програма ftp запитає про ім'я файла, наприклад: ftp> get remote-file) <ім'я файла на віддаленій машині> local-file) <ім'я файла на локальній машині> |
glob |
Ця команда змушує ftp забороняти розширення імен файлів UNIX, таке універсальне, як '*'. Ця команда служить і для заборони й для дозволу розширення в такий спосіб що, якщо задати її повторно, то розширення знову дозволене. Після дозволу розширення ftp до всіх імен файлів додасть розширення при виведенні списку файлів. |
hash |
Ця команда спонукає ftp видавати на екрані символ '# ' після кожного блоку даних, що посилається на віддалену машину. Розмір блоків даних може бути різним, залежно від версії програмного забезпечення. Для того, щоб побачити поточне значення, з командою ftp використайте багатослівний режим. Ця команда включає й виключає видачу символу '#' на екран її при повторному наборі. |
help |
Ця команда видає на екран інформацію про роботу ftp. Якщо після help задати ім'я команди, то з'явиться інформація про цю команду. Якщо набрати просто help, то з'явиться інформація про всі команди ftp. |
lcd |
Ця команда змінює поточну директорію, використовуваний ftp на вашій машині. Ви можете задати ім'я директорії, яка вам потрібна для роботи, наприклад: ftp> lcd /ysr/deb Якщо ви не задали ім'я директорії, то використовуватиметься ваша домашня директорія. |
ls |
Ця команда роздруковує абревіатурний список змісту директорії віддаленої машини, з якою ви пов'язані в цей момент. Ви можете задати ім'я директорії, яку ви хочете роздрукувати. Наприклад: ftp> ls /usr/bin Якщо ви не задали ім'я, буде роздрукована поточна директорія. Можна задати, щоб результати виконання команди були поміщені у файл до появи їх на дисплеї. Це виконується ftp, якщо вказати ім'я файла на вашій машині, куди необхідно помістити лістинг директорії, наприклад: ftp> ls /usr/bin printfile Ім'я директорії потрібно задати до друку файла (тут printfile). Наприклад, якщо ви хочете роздрукувати поточні директорії у файл із ім'ям printfile: ftp> ls . printfile де "." ставиться, щоб підкреслити, що директорія поточна. |
mdelete |
Ця команда вилучає файли зі списку, на віддаленій машині, з якою ви позв'язані в цей момент. Ви можете задати імена файлів для вилучення під час виклику команди. Наприклад: ftp> mdelete ім'я 1файла вилученої машини, ім'я 2файла... У протилежному випадку ви можете просто використати ім'я команди. Програма ftp запросить у вас ім'я: ftp> mdelete (remote-files) ім'я 1файла, 2файла... |
mdir |
За цією командою видається список-лістинг директорії віддаленої машини й результат міститься у файлі вашої машини. Ви можете задати список файлів вилученої машини й ім'я файла вашої машини, куди поміститься результат виконання команди. Наприклад: ftp> mdir ім'я 1файла вилученої машини... printfile (Зазначте, що останнє ім'я – це ім'я файла вашої машини printfile). Можна просто використати ім'я команди. Тоді програма ftp запросить у вас ім'я файлів, наприклад: ftp> mdir (remote-files) ім'я 1файла вилученої машини...printfile local-file printfile?y |
mget |
Ця команда копіювання одного або більше файлів з віддаленої машини, до якої ви підключені в цей момент, на вашу машину. Файли після копіювання матимуть такі самі імена. Ви можете вказати список файлів для копіювання: ftp> mget ім'я 1файла вилученої машини, ім'я 2файла... Якщо ви не задали імена файлів під час виклику команди, програма ftp запросить вас про них: ftp> mget (remote-files) ім'я 1файла вилученої машини, ім'я 2файла ... |
mkdir |
Ця команда створює директорію на віддаленій машині, до якої ви в цей момент підключаєтеся. Ви можете задати ім'я директорії під час виклику команди, наприклад: ftp> mkdir /u/mydir Якщо ви не задали ім'я, ftp запросить вас про нього, наприклад: ftp> mkdir directory-name) ім'я директорії |
mls |
Ця команда отримує список групи файлів поточної директорії на віддаленій машині та поміщає результат у файл на вашій машині. Ви можете задати список файлів віддаленої машини й файл вашої машини, куди помістити результат під час виклику команди, наприклад: ftp> mls ім'я 1файла вилученої машини ...printfile Ви можете не вказувати імена при виклику команди, і тоді програма запросить вас про них: ftp> mls (remote-files) ім'я 1файла вилученої машини...printfile local-file printfile?y |
mput |
Ця команда копіює один або більше файлів з вашої машини на віддалену машину, з якою ви пов'язані в цей момент. На віддаленій машині файли матимуть такі самі імена. Ви можете задати список файлів під час виклику команди, наприклад: ftp> mput 1файл вашої машини, 2файл вашої машини... Якщо ви не вказали імена, програма ftp вас про це запросить: ftp> mput (local-files) ім'я 1файла вашої машини, ім'я 2файла... |
nmap |
Використайте цю команду для установки й скасування механізму перетворення імен файлів. Ця команда корисна при зв'язку з UNIX несумісними машинами, у яких використовується інший спосіб іменування файлів. Перейменовування файлів локальної машини виконується за допомогою команд get і mget, а віддаленої машини за допомогою команд put і mput. Команда mput комплексна. |
ntrans |
Використайте цю команду для включення й вимикання механізму трансляції символів імені файла. Ця команда корисна при зв'язку з UNIX несумісною віддаленою машиною, де застосовується інший спосіб іменування файлів. Трансляція імен файлів локальної машини виконується за допомогою команд get і mget, а віддаленої машини за допомогою команд put і mput. Команда mtrans комплексна. |
open |
Ця команда встановлює зв'язок з віддаленою машиною, що перед-бачається для передачі файлів. Під час виклику команди ви можете вказати ім'я машини, наприклад: ftp> open admin Якщо ім'я не зазначене, програма запросить його: ftp> open (to) ім'я машини Якщо ви вказали ім'я машини під час виклику команди, ви можете також указати номер порту на вилученій машині. Якщо зазначено порт, то ftp відкриє зв'язок через цей порт, якщо він переважніше того, що задається за замовчуванням. Зміни порту робляться в тому випадку, якщо вас про це попросять або це задається системним адміністратором. Якщо порт не заданий, то програма його не запитує. |
prompt |
Ця команда запобігає вашому запиту до ftp про дозвіл на перехід між файлами в багатофайлових командах, таких як mget. Ця команда підключається та відключається при повторному наборі. |
put |
Ця команда переміщає файл із вашої машини на віддалену машину, до якої ви в цей момент підключені. Ви можете задати ім'я файла вашої машини та ім'я файла віддаленої машини під час виклику команди ftp, наприклад: ftp> put ім'я вашого файла, ім'я файла вилученої машини або ftp> put ім'я вашого файла Якщо ви не вказали ім'я файлів(а), то програма вас про них запросить, наприклад: ftp> put (local-file) ім'я вашого файла (remote-file) ім'я файла вилученої машини Якщо ви не вкажете ім'я файла віддаленої машини, то команда put створить файл на віддаленій машині під тим же ім'ям, що й на вашій машині. |
pwd |
Ця команда змушує ftp друкувати ім'я поточної робочої директорії на віддаленій машині, з якою ви пов'язані в цей момент. |
quit |
Команда аналогічна команді bye, про яку говорилося вище. |
quote |
Команда змушує ftp посилати параметри, які ви вводите в машину та посилати їх до віддаленої машини для виконання. Ті команди, що ftp підтримує, можуть бути відображені на екрані за допомогою команди remotehelp. Ви можете ввести цю команду під час виклику програми ftp, наприклад: ftp> quote NLST Якщо ви вказали тільки ім'я команди, ftp запитає вас про командний рядок, який потрібно використати, наприклад: ftp> quote (command-line to send) NLST Цю команду необхідно використати тільки за порадою вашого системного адміністратора. |
recv |
Ця команда аналогічна команді get, описаної вище. |
remotehelp |
Ця команда запитує допомогу ftp на віддаленій, з якою ви пов'язані в цей момент. Ця інформація повідомляє про те, які команди підтримує віддалена машина. |
rename |
Ця команда перейменовує файл на віддаленій машині, з якою ви пов'язані зараз. Під час виклику команди ви можете використати імена файлів, наприклад: ftp> rename ім'я 1 файла, ім'я 2 файла Якщо ви використали тільки ім'я команди без параметрів, то машина запросить імена файлів: ftp> rename (from-name) ім'я 1 файла (to-name) ім'я 2 файла |
mdir |
Ця команда вилучає директорію на віддаленій машині, з якою ви пов’язані зараз. Ви можете задати ім’я директорії, яку необхідно вилучити, під час виклику команди, наприклад: ftp> rmdir /u/mydir або ви можете не задавати ім’я під час виклику команди, і машина запросить вас про нього: ftp> rmdir (directory-name) /u/mydir Ця команда не завжди підтримується. |
Send |
Ця команда аналогічна команді put, описаної вище. |
Sendport |
Ця команда змушує ftp забороняти можливість завдання порту локальної машини для даних віддаленої машини. Ця команда може підключатися й відключатися її повторним набором. Під час виклику ftp за замовчуванням задається певний порт. Цю команду необхідно використати за порадою вашого системного адміністратора. |
Status |
Це команда змушує ftp зображувати свій поточний статус на вашому терміналі. Статус включає режими, які обрані командами bell, form, hash, glob, port, type. |
Type |
Ця команда встановлює в якому вигляді передається файл. Допустимі коди ASCII і двійковий. Ця команда аналогічна командам ascii і binary. Якщо ви не вказали тип під час виклику команди, то встановлюється ASCII. |
Trace |
Ця команда змушує ftp дозволяти пакетне трасування. Ця команда включається й відключається її повторним набором. Цю команду необхідно використати тільки за порадою вашого системного адміністратора. |
User |
Ця команда дозволяє
користувачу ідентифікувати самого
себе на віддаленій машині при
встановленні зв’язку. Ця ftp> user mike cat myaccount Ви можете не вказувати всю цю інформацію під час виклику команди. Тоді програма вас про неї запросить, наприклад: ftp> user (usename) mike(ім’я користувача) password: Account: myaccount(ім’я ресурсу) Зазначте, що луна не відбиває ваш пароль при його наборі для захисту вашої інформації. Якщо ви не набрали пароль або ім’я ресурсу, то запиту про неї не буде. |
Verbose |
Ця команда змушує ftp забороняти багатослівний режим. Ця команда включається й вимикається при повторному наборі. У багатослівному режимі ftp протокольні повідомлення, послані віддаленою машиною з’являються на вашому терміналі. Крім того, у цьому режимі відображається статистика після передачі кожного файла. Якщо цей режим заборонений, то дана інформація не зображується. |
? |
Інша назва команди help. |