ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Адміністрування локальних мереж
         

     

    Інформатика, програмування


    1. Загальний огляд архітектури UNIX систем. 5

    Короткий огляд UNIX подібних операційних систем. 5
    Основні причини популярності UNIX. 5
    Структура операційної системи. 5
    Завдання виконуються ядром операційної системи 6
    Підсистема керування процесами. 7
    Підсистема управління пам'яттю. 7
    Файлова підсистема. 8
    Підсистема вводу-виводу. 8

    2. Шеллі і основні команди HP-UX. 9

    загальне знайомство з шеламі 9
    Bourne Shell. 10
    C Shell. 42
    Korn Shell і POSIX shell 57
    Key Shell (keysh). 65

    3. Адміністрування системи X Window 69

    Базові концепції X Window 69
    Компоненти системи X Window 69
    Попереднє конфігурування 70
    Імена та класи клієнтів 73
    Імена та класи ресурсів 74
    Типи ресурсів 74
    Управління шрифтами 75

    2. Програмування на HP-UX 82

    Етап лінкірованія. 85
    Робота з бібліотеками 85
    Створення архівної бібліотеки. 89
    Відкриття Бібліотек розподіленого доступу 91
    Створення загальнодоступної Бібліотеки з ld 92
    Модифікування загальнодоступні бібліотеки 93
    Застосування make 94
    Усунення несправностей ADB 103
    Усунення несправностей XDB 109

    3. Приклади команд 110

    VARIABLES 117
    LOCATIONS 117
    FORMATS 118

    4. Системні виклики та взаємодія з UNIX. 119

    Час в UNIX. 124
    Тони. 131
    Поділу просесса 135
    Пайп і FIFO-файли. 135
    Нелокальний перехід. 138
    Колективна пам'ять 139
    Семафори 140
    Черги повідомлень 142

    5. Старт системи. 146


    6. Run-levels. 150

    Зупинка системи 155
    Конфігурування ядра системи 158

    7. Зміна системних параметрів 161

    Інсталірованіе периферії 164
    Системна конфігурація 165
    Управління процесами 173
    Управління процесами і ядро системи 182

    8. 1. Файлова система HFS. 185

    Структура файлової системи HFS 186
    Головний суперблоки 186
    Групи циліндрів 187
    Розмір 187
    Блоки даних 189

    Доступ до блоків даних 190

    Модифікація файлів в HP-UX 193
    Менджер логічних дисків LVM 194
    Створення кореневої VG і кореневого LV 201
    Резервне копіювання та свосстановленіе конфігурації Volume Groups 202
    Переміщення і переконфігуруванні дисків 203
    3. Особливості файлової системи VxFS 206
    Монтування та демонтування файлових систем 208
    Перевірка файлових систем 209

    10. Моніторинг використання дискового простору 212


    11. . Організація веб-сайту 214

    Вибір операційної системи. 214
    Вибір програмного забезпечення сервера. 215
    Аналіз веб-серверів. 216
    Інсталяція веб-сервера. 217
    Стратегічне планування. Визначення обсягу роботи. 221
    Тактичне планування сайту. Розробка структури. 226
    Дизайн інтерфейсу. 228
    Програмування. 230
    Публікація і Маркетинг. 233

    12. Веб-сторінки та веб-додатки. 235

    Класифікація веб-об'єктів. 235
    Специфікація DTD. Поняття ортогональності і методи її реалізації. 236
    Веб-сторінки. Мови розмітки. (HTML, XML) 237
    Веб-сторінки. Програмування (JavaScript, CSS, SSI, CGI, PHP) 261
    Модульність і ортогональних з використанням існуючих технологій.
    288
    Веб-додатки. 289
    Загальні вимоги до сторінок сайту. 290
    Сумісність з різними браузерами. 292

    13. Конфігурація та керування веб-серверами. 295

    Вбудовані засоби управління сервером. (apachectl, apxs) 295
    Глобальні розділи конфігурації. 296
    Допоміжні скрипти - перегляд і ротація логів, статистика відвідувань.
    299
    Безпека веб-сервера. 299
    Організація доступу і розмежування прав користувачів. 303
    . Підключення нових модулів і апгрейд програмного забезпечення веб-сайту.
    303

    14. Адміністрування веб-сервера. 304

    Логгірованіе та пошук помилок. 305
    Забезпечення безпеки. 311
    Створення резервних копій. Технології: Backup, mirroring. 313

    15. Система безпеки HP-UX 314


    16. Політика і планування системи безпеки 314

    Установка Trusted Системи 315
    Керування паролями та системним доступом 316

    17. Управлінням доступом до файлів і каталогів 317

    Контроль безпеки мережі (networks) 319

    Загальний огляд архітектури UNIX систем.

    Короткий огляд UNIX подібних операційних систем.

    У даний момент, не існує стандартної системи UNIX, замість цього визіштовхнетеся з безліччю операційних систем, що мають свої назви таособливості. Але за цими особливостями і назвами простежується загальнаархітектура, інтерфейс і середовище програмування. Всі ці системи так чиінакше є спорідненими Із-за своєї простоти, ясності, легкоїздатності до розширення і модифікації UNIX стали переносити на безлічплатформ. Однак незважаючи на безліч реалізацій базової системи, середвсіх них можна чітко виділити дві основні гілки: System V UNIX і BSD UNIX.
    Відмінності між ними не носять прінціпіяльний характер і часто сказати доякий з гілок належить та чи інша реалізація операційної системибуває складно. До основних відмінностей між System V і BSD подібнимисистемами можна віднести термінальну ініціалізацію, імена конфігураційнихфайлів і файлів ініціалізації системи, стандартний розмір блоків файловоїсистеми, управління терміналами, різне відображення інформації пропроцесах т.п. Одним словом принципових відмінностей з поглядукористувача між різними гілками операційної системи UNIX не існує.
    Розглянута Ця операційна система HP-UX 10.20 є однією зреалізацій UNIX випущеної фірмою Hewlett-Packard. За своєю структурою цечиста System V подібна 32-х розрядна операційна система, що включаєпідтримку симетричних багатопроцесорних систем (SMP), файлових систембільшого обсягу (до 128Гб) і розширеного віртуального адресногопростору (до 3.75 Гб).

    Основні причини популярності UNIX.

    Які ж причини популярності цієї операційної системи? У першучергу це більш ніж трьох десятирічний вік. За цей період вонаповністю пройшла перевірку часом. По-друге код системи практичноповністю написаний на мові високого рівня С, що зробило її простою длярозуміння, внесення змін і перенесення на інші апаратні платформи.
    Деякі з версій UNIX поставляються разом з вихідними текстами, однакнавіть попри те, що більшість UNIX поставляється у вигляді бінарнихфайлів, система все одно залишається легко розширюваної та замовною. Такж слід відзначити той факт що UNIX в спочатку створювалася якрозрахована на багато користувачів і багатозадачна система орієнтована в першучергу на виконання серверних функцій. Слід відзначити і той факт що
    UNIX практично з самого початку створювалася як мережна операційна система
    (навіть графічна оболонка UNIX система X Window є повністюмережевий), що дозволило їй зайняти лідируючі позиції на ринку серверів для
    Інтернет додатків і дало потужні вбудовані засоби віддаленогоадміністрування. Чи не маловажну роль в популярності UNIX зіграла їїєдина ієрархічна файлова система з уніфікованим доступом не тількидо файлів даних але і до апаратних ресурсів таким як диски, термінали,принтери, мережа, пам'ять т.п.

    Структура операційної системи.

    У завдання операційної системи UNIX входить безпосереднє управлінняресурсами комп'ютера, розподіл їх між користувачами, приховуючи відостанніх внутрішню архітектуру апаратного забезпечення, шляхомнадання уніфікованого інтерфейсу доступу до апаратних ресурсів.
    До апаратних ресурсів комп'ютера відноситься в першу чергу обчислювальніресурси процесора, пам'ять та дисковий простір, а також рядпериферійних пристроїв, таких як накопичувачі на магнітних стрічках, принтери,термінали, мережеві адаптери т.п. Найбільший загальний погляд дозволяє побачитидворівневу модель системи в тому вигляді як вона представлена на рис. 1.1.

    Рис 1.1

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

    Другої найважливішою функцією виконуваної ядром є захист операційноїсистеми від руйнування з боку користувача програм і реалізаціямеханізмів захисту даних в багатокористувацької середовищі. Всіпризначені для користувача програми користуються послугами ядра за допомогою системнихвикликів.

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

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

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

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

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

    Підсистема управління процесами.

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

    Підсистема управління пам'яттю.

    Підсистема управління пам'яттю управляє виділенням, розміщенням тазвільненням пам'яті для прикладних задач. Прикладні програми ніколи невикористовують фізичну пам'ять безпосередньо, тому що всі сучасні операційнісистеми реалізують так звану віртуальну пам'ять обсяг якої можеперевищувати обсяг фізичної пам'яті. При цьому задіяно механізмисторінкової адресації пам'яті в яких всі віртуальний адресний простіррозділяється на невеликі блоки - сторінки. Розмір сторінки варіюється взалежності від архітектури, для архітектури HP PA-RISC це 2К, для Intelце 4K. Кожна сторінка має спеціальні атрибути які визначають правадоступу до неї, факт присутності у фізичній пам'яті, частоту зверненьи.т.п. Перетворення з віртуального адреси у фізичний здійснюєтьсяапаратно. Дана схема адресації дає ряд незаперечних переваг яківикористовуються всіма сучасними операційними системами. А саме:можливість економії фізичної пам'яті шляхом спільного використанняодних і тих же сторінок віртуальної пам'яті різними процесами, реалізаціярозділяється пам'яті, а також можливість використання вторинних пристроїв уяк пристрої пам'яті що дозволяє завданням задіяти віртуальноїпам'яті більше ніж є реально фізичної пам'яті в системі. Реалізуєтьсяце таким чином: у разі браку фізичної пам'яті, ядро скидаєна зовнішній носій (як правило диск) сторінки до яких найбільш довго небуло звернень, а так само при зверненні до сторінки якої реально немає вфізичної пам'яті процесор генерує виняткову ситуацію обробникякої завантажує сторінку назад з зовнішнього носія у фізичну пам'ять.
    Цей процес носить назву пейджинг або свопінг.

    Файлова підсистема.

    Файлова підсистема ядра надає уніфікований інтерфейс длядоступу до даних знаходяться на дисках та інших зовнішніх пристроях. Воназабезпечує контроль прав доступу до файлів з боку прользователя томукожен файл має атрибути доступу визначають права доступу до нього збоку певного прользователя або груп користувачів.

    Підсистема вводу-виводу.

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

    Шеллі і основні команди HP-UX.

    2.1.1 загальне знайомство з шеламі

    2.1.2 Зміна Шела

    2.2.1 Bourne Shell

    2.2.1.1 Основні можливості Shell.

    2. Shell скрипти

    3. Основи програмування на мові shell

    4. Деякі спеціальні команди

    загальне знайомство з шеламі

    Шелл це інтерфейс між операційною системою і користувачем. Шеллінтерпретує для користувача введення і дає вказівки операційній системівиконати ті чи інші дії. Шелл можна також розглядати як мовапрограмування.

    Bourne Shell. Це самий старший з шелов який був написаний
    Стефаном Борном в Лабораторії Беелла. Цей шелл є шолом за замовчуваннямдля HP-UX користувачів і довгий час був стандартом де факто.
    Bourne Shell не має у своєму арсеналі ні інтерактивних можливостей ніскладних програмних конструкцій на відміну від С та Korn Шелл.

    C Shell. Цей йшов був розроблений Біллом Джоєм в Каліфорнійському
    Університеті Берклі. Його синтаксис має схожість з мовою програмування
    С. Він також має інтерактивний інтерфейс наприклад історію команд ірозкриття імен файлів.

    Korn Shell. Він є відносно новим шолом розробленим
    Девідом Корном в Лабораторії Белла і є догори сумісним збільшістю можливостей Bourne Shell. Так само як і С shell він маєінтерактивні можливості, але виконується швидше має розширеніможливості редагування командного рядка.

    POSIX shell. Цей шелл базується на стандарті визначеному в
    Portable Operation System Interface (POSIX) - IEEE P1003.2. Цей стандартбув розроблений для прикладних і системних програмістів. Він фактичновизначає стандарт на інтерфейс операційної системи. Більшістьможливостей POSIX Shell дуже сильно схожі з аналогічними можливостями
    Korn Shell-a. Ми будемо розглядати обидва ці Шела єдине, вказуючи лишеневеликі відмінності між ними. POSIX Shell має теж ім'я що і Bourne
    Shell тому він поміщений в/usr/bin/posix директорію на відміну від Bourne
    Shell, який знаходиться в директорії/usr/bin.

    Key Shell. Це оболонка для Kourn Shell-a розроблена фірмою
    Hewlett-Packard. Вона дозволяє використовувати меню і онлайн допомогу допомагаючи впобудові команд та виконання ряду часто зустрічаються завдань, таких якпросмотр, редагування та друк файлів, перегляд вмісту директоріїи.т.п. Побудована вона таким чином що користувач може сам надалі

    розширювати її можливості.

    Bash. Назва цього Шела розшифровується як Bourne Again Shell. Вінб розроблений консорціумом Free Software Foundation і незважаючи на те що зазамовчуванням він відсутній у стандартній поставці HP-UX 10.20, в наслідоксвоїх потужних функціональних можливостей він користується величезноюпопулярністю серед користувачів і адміністраторів HP-UX. Йогоінтерпретатор команд сумісний з Bourne Shell. Також він вмістив в собікорисні можливості Korn C Шелл. Він розроблявся в сооответствіі зспецифікації IEEE POSIX Shell and Tools specification (IEEE Working
    Group 1003.2).

    2.1.2 Зміна Шела


    Для того щоб визначити Ваш системний шелл досить відразу після логінавиконати команду:

    echo $ SHELL

    вона показує вміст змінної SHELL в яку система прописує
    Ваш шелл встановлений за замовчуванням. Для тимчасової зміни Шела достатньовиконати запуск бажаного Шела цього:

    $ ksh запуск Kourne Shell

    $ ps друк списку процесів

    PID TTY TIME COMMAND

    12320 pts/2 0:00 sh Bourne shell

    12322 pts/2 0:00 ksh Korn Shell

    12323 pts/2 0:00 ps

    $ exit вихід з Korn Shell-a

    Для постійної зміни Шела що встановлюється системою після входу (loginshell) необхідно виконати команду:

    chsh

    Зауваження: список шелов доступних в системі для користувачів знаходиться вфайлі/etc/shells

    Bourne Shell.

    1. Основні можливості Shell.

    Запуск шелла і вихід з шелла

    Для запуску Bourne Shell досить ввести sh в поточному Шелі. Вихід з Шеламожливий або по команді exit або ввівши в терміналі символ Коца файлу Ctrl-
    D.

    Послідовне виконання команд.

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

    $ who

    $ ps-ef

    $ ls-lі

    $ who; ps-ef; ls-lдадуть повністю однаковий результат.

    Фонове виконання.

    Запуск програми у фоновому режимі (без блокування поточного Шела)досягається додаванням в кінець команди знака &

    Перенаправлення вводу-виводу.

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

    | Символ | Функція | Приклад |
    | <| Перенаправлення введення з файлу | program |> | Перенаправлення виводу в файл | program> out_file |
    |>> | Перенаправлення виводу у файл з | Program>> |
    | | Додаванням | out_file |


    Пайп. Дві або більше програм можуть бути об'єднані таким чином щорезультат однієї програми потрапить на вхід інший. При цьому дані від однієїпрограми до іншої прямують через програмний канал, наприклад:

    program1 | program2 | program3

    або більш реалістичний приклад:

    ls-l/etc | more

    Примітка: пайпи завжди працюють лише в одному напрямку - зстандартного виходу однієї до стандартного входу іншої програми.

    Розширення імен файлів.

    З метою зменшення кількості набраних символів під час введення імен файлів йшовпідтримує метасимволи. Нпрімер для того, щоб вивести лістинг всіхфайлів у поточній директорії імена яких починаються на літеру a доситьскористатися командою ls-la *

    нижче наведена таблиця основних метасимволів

    | Метасимволи | Опис |
    | * | Чи означає будь-який символ в будь-якій кількості |
    | ~ | Чи означає шлях до домашнього каталогу |
    |? | Будь-який символ в кількості один або більше |
    | [...] | Рівність будь-якого одного з символів ув'язнених |
    | | В дужки. Пара символів розділена знаком |
    | | Мінус означає будь-який символ з проміжку між |
    | | Ними. Наприклад [a-zA-Z] - любаялатінская буква |


    5. Shell скрипти

    Виконання скриптів.

    Кілька команд обьедененних однією послідовністю виконанняназивається скриптом. Наприклад послідовне виконання команд, пайпиє простими скриптами. Зазвичай команди з яких складаються скриптизберігають у файлах. Для запуску скрипта можна скористатися двомаметодами:

    sh

    або встановити атрибут виконуваності на файл командою

    chmod + x

    Після чого можна виконувати скрипт:

    ./

    Виведення тексту.

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

    echo "рядок"

    Файл. profile.

    Кожного разу під час входу в систему Bourne Shell автоматично запускаєфайл. profile (скрипт) знаходиться у вашій домашній директорії. Цей скриптвстановлює "оточення" в якому Вам має працювати. Це різнізмінні оточення відповідають за вид системної підказки, шлях пошукувиконуваних файлів, тип терміналу т.п. Наведемо список основнихзмінних оточення.

    . PATH встановлює шлях пошуку файлів, що виконуються і являє собою набір директорій розділених двокрапкою
    . MAIL визначає ім'я файлу поштової скриньки для повідомлення про прихід нової електронної пошти
    . MAILCHECK параметр показує як часто (в секундах) слід перевіряти поштову скриньку на предмет приходу нової пошти
    . HOME визначає домашній каталог (каталог за замовчуванням). Команда cd без параметрів виконує перехід в цей каталог.
    . PS1 основна системна підказка (по промовчав $)
    . PS2 вторинна системна підказка (за замовчуванням>)
    . SHELL ім'я логін шелла користувача
    . TERM тип терміналу користувача
    . EDITOR ім'я текстового редактора за замовчуванням

    Встановлювати змінні оточення можна по різному. Наприклад команди

    PATH =/bin:/usr/bin:/usr/sbin:/usr/contrib/bin:/usr/local/bin

    і < p> PATH =/bin:/usr/bin:/usr/sbin

    PATH = $ PATH::/usr/contrib/bin:/usr/local/bin

    повністю еквівалентні. Для того щоб ці змінні увійшли в системнеоточення (крім Шела, стали доступні і інших програм) необхідновиконає команду

    export

    Коментарі.

    Текст наступний за символом # розглядається шолом як коментар і немає жодного впливу на роботу скрипта.


    Основи програмування на мові shell


    Параметри.

    На додаток до стандартних параметрах Шела можна створювати свої параметри,кторые потім можна використовувати в командах. Наприклад

    $ x = test

    $ echo $ x test

    $ aaa =/

    $ ls $ aaa

    cdrom home nsmail tcb var

    SD_CDROM dev lib opt tmp

    TT_DB etc lost + found sbin tmp_mnt

    Bin export net stand usr

    При включенні параметрів в рядок або в вираз знак $ повиненпередувати параметру. Також необхідно користуватися наступнимиправилами:

    $ (parameter) значення параметра укладеного в дужки буде використано у виразі. Дужки () використовуються коли за параметром дотримуються букви або цифри не пов'язані з парамаметру. Наприклад, якщо значення параметра xxx одно test то значення виразу $ (xxx) 123 буде дорівнювати test123

    $ (parameter:-word) якщо параметр встановлений і не порожній то результатом виразу буде значення параметра, в іншому випадку в результаті буде використано значення параметра word. Наприклад: $ (xxx: -/usr/bin/sh) якщо xxx порожній то результатом виразу буде рядок

    /usr/bin/sh

    $ (parameter: = word) якщо параметр невстановлені або порожній, тоді значення word буде результатом вираження.
    $ (parameter: + word) якщо параметр встановлений і не порожній, тоді результатом вираження є word, в іншому випадку результат порожній.

    Аргументи командного рядка.

    Коли Ви запускаєте на виконання програми , Ви можете передавати їй одинабо більше аргументів. Шелл скрипти мають доступ до цих аргументівза допомогою параметрів $ 0, $ 1, $ 2 ... $ 9. Якщо аргументів більше дев'яти, їхзначення поміщаються в буферу і можуть бути доступні з використаннямкоманди shift яка буде обговорюватися нижче. Параметр $ 0 завжди березначення імені виконуваного файлу, $ 1 - перший аргумент командного рядка,
    $ 2 - друга, тощо
    Кількість аргументів командного рядка завжди можна дізнатися проаналізувавшипараметр $ #. У тому випадку, якщо Вам потрібен один параметр, що містить всіаргументи командного рядка розділені пробілом потрібно воспоьзоватьсяпараметром $ *.
    Для отримання доступу до аргументів з номером більше дев'яти необхідноскористатися командою shift. Після чергового виконання команди shiftвідбувається зсув на один елемент у буферу параметрів у результаті якогозначення параметра $ 2 отримує параметр $ 1, значення параметра $ 3 отримує
    $ 2, тощо Використовуючи цикл (цикл будуть рассвотрени нижче) у поєднанні зкомандою shift можна отримувати доступ до всіх аргументів командного рядка зномерами перевищують 9.

    Квотінг.

    Дуже часто трапляються ситуації коли необхідна особлива трактування тихсимволів які шелл сприймає як спец символи. Наприклад випадок колирядок тексту включаючи пробіли потрібно передати як один аргумент або знак $повинен не бути сприйнятий як покажчик на параметр. Для цих цілейвикористовується квотінг (quoting).
    Наприклад символ бекслеша () можна використовувати для квотінга символу $.

    $ param = aaa

    $ echo $ param aaa

    $ echo $ param

    $ param

    У поєднанні з бекслешем для квотінга можна використовувати подвійні лапки.
    Наприклад:

    echo "$ param is a" new directory "" aaa is a "new directory"

    При цьому знак $ всередині подвійних лапок інтерпретується як покажчик напараметр а бекслеш використовується для "захисту, в" внутрішніх лапок.

    Одинарні лапки також можна використовувати для квотінга але на відміну відподвійних вони "екранують" все що знаходиться всередині них. Різниця одразустає зрозумілою після заміни в попередньому прикладі подвійних лапокодніранимі:

    $ echo '$ param is a "new directory"'

    $ param is a "new directory"

    Підстановка команд.

    Символ зворотного наголосу ( `) використовується в скриптах вказує напідстановку команд. Це має на увазі що результат виводу командипідставляється в шелл як параметр. Нпрімер:

    $ echo "The current date is` date `"

    The current date is Sat Jan 6 04:16:35 GMT 2001

    або

    $ users = `who`

    $ echo "Users currentrly logged in the system: n $ users"

    Users currentrly logged in the system: root console Jan 6 03:57 roman pts/0 Jan 5 23:12

    Умови.

    Дуже часто трапляються ситуації при написанні скриптів коли необхідновиконувати ті чи інші команди в залежності від конкретних умов.
    Наприклад, потрібно відсортувати файл, а в разі його відсутності вивестиповідомлення про помилку. На цей випадок шелл має умовний оператор, ізазначена завдання вирішується з його використанням в такий спосіб:

    if test-f $ 1 then sort $ 1 else echo "file $ 1 doesn't exist" fi

    Умовний оператор має наступний синтаксис:

    if then elif then

    ... .. else fi

    Оператор if перевіряє статус виконаної команди (у даному прикладі test
    -F)
    І в разі успіху (програма повертає 0) виконує команди стоять післяthen, в іншому випадку виконуються команди else/elif.

    Найбільш часто використовується командою в оператореусловія є командаtest. Вона має безліч опцій, повний список яких можна отриматизвернувшись до її документації виконавши команду man test.Очень часто замістькоманди test використовують команду [яка є її фунуціональниманалогом. Тут наводиться лише короткий список основних опцій команди test.

    -r file повертає успіх якщо файл існує і доступний длячитання.

    -w file повертає успіх якщо файл існує і доступнийдля запису.

    -x file повертає успіх якщо файл існує іщо виконується.

    -f file повертає успіх якщо це регулярний файл.

    -d file повертає успіх якщо це директорія.

    -c file повертає успіх якщо це спеціальний файл.

    -s file повертає успіх якщо файл має ненульовийрозмір.

    -h file повертає успіх якщо це сімлінка.

    -z s1 повертає успіх якщо довжина рядка s1нульова.

    -n s1 повертає успіх якщо довжина рядка s1 ненульова.

    s1 = s2 перевірка двох рядків на рівність.

    s1! = s2 перевірка двох рядків на нерівність

    s1 повертає успіх якщо рядок s1 непорожній

    n1-eq n2 Алгебраїчна перевірка двох чисел n1 і n2 на рівність. Крім-eq є ще ряд опцій для алгебраїчного порівняння такі як-ne,-gt,-ge, ...

    Всі перераховані вище умови можуть обьеденяться з використаннямлогічних операторів:

    ! заперечення

    -a Бінарний І

    -o Юінарний АБО (-а має пріоритет більший ніж-о)

    (expr) Угрупування виразів дужками


    Введення даних.

    Для введення іданних в скрипт можна скористатися командою

    read [parameter ...]

    яка в якості аргументів приймає список з одного або більшепараметрів.

    Примітка: знак $ перед іменем параметра в команді read ставити не потрібно.

    Цикли.

    Дуже часто при складанні скриптів простого послідовного виконаннябуває недостатньо. Необхідні механізми, які дозволяли б виконуватикоманди з змінними параметрами. Для цих цілей шелл надає врозпорядження три ціклічекіе конструкції: цикли for, while та untill.


    Цикл for

    Цей тип циклів дозволяє виконувати один і той же набір команд кожного разу зновими значеннями отриманими зі списку параметрів. Він має наступнийформат:

    for parameter [in wordlist] do command-list done

    де parameter це будь-яке ім'я параметра, wordlist - один або декільказначень послідовно привласнюються параметру, command-list - набіркоманд які виконуються при кожному проході циклу. wordlist може бути абопросто набором аргументів розділених пробілом, або командою шелла якагенерує сама аргументи. Наприклад наступний код:

    for i in 1 2 3 4 5 do if mkdir $ i then echo "directory $ i was created" fi done

    створює послідовно директорії з іменами 1 2 3 4 5 і у разі успішногостворення директорії видає повідомлення. Наступний скрипт:

    for i in `ls a *` do cp $ i/tmp echo "$ i was copied" done

    копіює всі файли що починаються на літеру a з поточного каталогу в каталог
    / tmp.

    Цикл while

    while command-list1 do command-list2 done

    цей цикл запускає команди зі списку command-list1, і якщо останнякоманда зі списку виконали успішно (код повернення дорівнює 0) то починаютьвиконуватися команди зі списку command-list2, у противному випадку циклзакінчується. Цикл з такого прикладу:

    while [-r $ 1] do echo "processing $ 1" cat $ 1>> summary shift done

    по черзі зчитує аргументи командного рядка, у разі коли в поточномукаталозі присутній файл доступний на читання з ім'ям збігається з цимаргументом, вміст цього файлу дописується до файлу з ім'ям summary. УІнакше, скрипт припиняє свою роботу.

    Цикл util

    until command-list1do command-list2done

    конструкція цього циклу повністю аналогічна циклу while за виняткомтого що тіло циклу (набір команд command-list2) виконується як мінімумодин раз не залежно від успішності виконання умови циклу (набір командcommand-list1).

    Оператор case

    Оператор case є розширенням стандартного умовного оператора if.
    Якщо є умова при якому може реалізовуватися безліч варіантів тозамість серії операторів if краще використовувати один case.

    case parameter inpattern1 [| pattern2 ...]) command-list1;;pattern2 [| pattern3 ...]) command-list2;;
    ...esac

    шаблони pattern визначають варіанти параметра parameter. При збігупараметра з одним із шаблонів буде виконано відповідний список командcommand-list. У квадратних дужках ([| pattern2 ...]) зазначені додатковіваріанти розділені символом (|) які може приймати parameterкрім основного. Закінчується список шаблонів дужкою. Більш зрозумілоюструктура цього оператора стане після розгляду прикладу:

    case $ i in

    -d |-c) mkdir dir1 echo "directory dir1 was created";;

    -r) rmdir dir1 echo "directory dir1 was removed";;

    *) echo "invalid option";; esac

    У цьому прикладі скрипт отримавши при запуску один з аргументів-d або-cспробує створити директорію з ім'ям dir1, отримавши аргумент-rспробує її стерти. У всіх інших випадках (шаблон *) він видастьПопередження про неправильному аргумент.

    Примітка: Зверніть увагу на те що порядок проходження гшаблонов воператорі case має велике значення. Так якщо рядок

    *) echo "invalid option";;

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

    Команда. (точка)

    Кожного разу коли Ви запускаєте шелл програми, створюється ще одна копіяшелла в якій вони виконуються. Тому якщо Ви написали шелл скрипт, товсі змінні "живуть" тільки під час виконання скрипта. Якщо ви хочетещоб всі змінні з шелл програми були у вашому поточному оточеннізапускати скрипт потрібно в поточному Шелі, це досягається використаннямкоманди. (точка).

    . scriptname

    Команда eval eval [arg ...]

    Аргументи читаються і з'єднуються в одну команду. Потім ця командавиконується Шеллі і статус виходу команди повертається як результаткоманди eval. Якщо аргументи в команді відсутні або порожні то командаповертає нульовий статус.
    Як приклад розглянемо два скрипта:

    d = 'date &'; $ dі d = 'eval date &'; $ d

    перший з них не виконається так як команда date сприйме символ & якаргумент а не як ознака запуску у фоновому режимі, в результаті чогоперший скрипт не виконається на відміну від другого.

    Використання метасимволів.

    У всіх конструкціях циклів і операторі case можливе використанняметасимволів. Наприклад скрипт з прикладу оператора циклу for

    for i in `ls a *` do cp $ i/tmp echo "$ i was copied" done

    можна переписати в більш простому вигляді < p> for i in a * do cp $ i/tmp echo "$ i was copied" done

    результат буде один і той же.

    2.3.1 Деякі спеціальні команди

    Роздільники & & та | |

    Це умовні роздільники. При розподілі двох команд за допомогою & & другукоманда виконається лише в тому випадку коли перший завершиться успішно. Приподілі команд за допомогою | | друге виконається лише тоді коли першізакінчилася неуспішне (код повернення не дорівнює нулю).
    Наприклад при виконанні скрипта:

    test-d/usr/tools & & cd/usr/tools

    test-d/usr/tools | | echo "directory doesn't exist"

    вхід в директорію/usr/tools буде вироблений тільки при її наявності, вІнакше буде видане повідомлення про її відсутність.

    Визначення функцій


    Для скорочення обсягу шелл програм і спрощення їх розуміння і сопровжденіяшелл допускає введення і використання функцій. Для опреденія функціївикористовується наступний синтаксис:

    name () (list;)

    де name - це ім'я функції, а list - список команд з яких складається тілофункції. Нижче наведено приклад функції повертає 0 якщо аргументпереданий їй є каталогом і 1 в іншому випадку.

    dir_test () (if [-d $ 1] then echo "$ 1 is a directory" return 0 else echo "$ 1 is not directory" return 1 fi;

    )

    виклик функції здійснюється таким чином

    name [parameter ...]

    наприклад в нашому випадку це можна зробити так

    dir_test/usr/bin/sh


    Перенаправлення вводу-виводу


    Як було сказано вище для перенаправлення вводу-виводу використовуютьсясимволи (> перенаправлення виводу,>> перенаправлення виведення з додаванняму файл і <перенаправлення вводу). Крім цього існує ще рядконструкцій, один з яких:

    word is found

    > mark

    These words will be printed the cat command until the "mark" word is found

    $

    Якщо перед рядком word стоїть мінус то всі символи табуляції на початкустрок будуть вирізані.

    Інший часто використовується конструкцією при перенаправлення вводу-виводує:

    & цифра

    При цьому задіюється файловий дискриптор асоційованим з вказаноїцифрою. У більшості програм із стандартним вводом пов'язаний дискриптор 0,зі стандартним виводом дискриптор 1, і зі стандартним потоком помилокдискриптор 2. Всі програми які працюють один з одним через пайпи позамовчуванням пользуються дискриптора 0 і 1. Найбільш часто використовуваніперенаправлення це 1> & 2 і 2> & 1. Наведемо приклад з якогостане зрозумілий зміст цих конструкцій:

    $ ls/no/such/file> out

    /no/such/file not found

    $ cat out

    $

    $ ls/no/such/file> out 2> & 1

    $ cat out

    /no/such/file not found

    $

    перша команда намагається вивести лістинг НЕ суцествующего файлу перенаправившистандартний вивід в файл out. Файл out при цьому оказивется порожнім томуповідомлення про помилку виводиться у стандартний потік помилок і з'являється натерміналі. Друга команда об'єднує стандартний потік помилок зстандартним висновком який перенаправлений в файл out. При цьому повідомлення пропомилку потрапляють у файл, про що свідчить команда cat.

    Команда exec exec [arg ...]

    Ця команда виконує заміщення поточного Шела новим шолом або програмою.
    Різниця між простим запуском Шелаєв та з

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status