Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С_Р 2 частина.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.3 Mб
Скачать

Урок № 72

(згідно навчальної робочої програми)

Тема: «Використання оболонок»

Питання:

    1. Що таке оболонка?

    2. Особливості оболонок.

    3. Командний рядок оболонки.

    4. Настройка оболонки.

    5. Виконання програм у фоновому режимі.

    6. Побудова сценаріїв оболонки.

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

Оболонка — це інтерпретатор команд, який може використовуватися для запуску, припинення, останову і навіть написання програм.

З якою оболонкою ви працюєте, можна визначити при реєстрації в Linux, або проглянувши вміст файлу /etc/passwd, або за допомогою пошуку в цьому файлі вашого імені користувача. Як це виглядає, демонструє наступний приклад:

  • Fgrep bball /etc/passwd

bball:х:100:100:William H. Ball/home/bball:/bin/bash

Ім'я оболонки, якою ви користуєтеся, виводиться в кінці вмісту вашого файлу passwd. (У приведеному прикладі з пошуком імені користувача за допомогою команди fgrep— це //bin/bash.)

Особливості оболонки ash

Оболонка ash, є однією з найменших оболонок, доступних в Linux. Ця оболонка має 24 вбудованих команди і 10 різних опцій командного рядка. Оболонка ash підтримує більшість з найбільш поширених команд оболонки.

Це популярна оболонка, яка зазвичай використовується при завантаженні OpenLinux в однокористувавцькому режимі, в захищеному режимі або при завантаженні дискетних версій OpenLinux. Об'єм виконуваного файлу, як правило, раз в десять менше, ніж у оболонки bash, робить ash практично незамінною оболонкою для невеликих файлових систем.

Особливості оболонки Linux за умовчанням — bash

Оболонка bash є однією з найбільш популярних оболонок для OpenLinux. Ця оболонка володіє 48 вбудованими командами і десятком опцій командного рядка. Оболонка bash працює аналогічно оболонці shі містить в каталозі /bin символічний зв'язок з ім'ям sh, яка указує на оболонку bash.

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

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

Оболонка bash містить декілька важливих файлів, які мають назви файлів ресурсів (resource), робочої конфігурації (runconfiguration) і запуску оболонки (shellstartup).

Загальнодоступна оболонка Корна - pdksh

Оболонка pdksh володіє 42 вбудованими командами і 20 опціями командного рядка. Ця оболонка розташована в каталозі /bin, але символічний зв'язок для неї існує також в каталозі /usг/bin.

Оболонка pdksh називається kshі аналогічно оболонці bashвона прочитує сценарій ініціалізації оболонки /etc/profile, якщо у вашому домашньому каталозі відсутній файл .profile. На жаль, ця оболонка не підтримує такий же командний рядок, як оболонка bash. Проте ця оболонка підтримує управління завданням так що ви можете припинити, перевести у фоновий режим, повторно викликати або завершити виконання програм з програмного рядка.

Оболонка zsh

Оболонка zsh, володіє 84 вбудованими командами. Оболонка zshмає більше 50 різних опцій командного рядка, а також емулює команди оболонок shі ksh.

Подібно до оболонок bashі tcsh, оболонка zsh дозволяє проглядати раніше введені команди, а також здійснювати скорочене введення, редагувати і перевіряти орфографію командного рядка. Вона також дозволяє використовувати функції роботи з процесами для управління виконанням програм. Ця оболонка підтримує широкий набір опцій командного рядка для пошуку файлів і пошуку у файлах по шаблонах підстановки.

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

Звернення до цих файлів здійснюється в тому випадку, якщо оболонка zsh не виявила у вашому домашньому каталозі аналогічних файлів, а тільки файли з лідируючою крапкою в імені, наприклад, такий як .zlogin. Ця оболонка володіє функціональними можливостями, аналогічними всім іншим оболонкам, і здатна емулювати роботу оболонок shі ksh при виклику як символічний зв'язок.

Командний рядок оболонки

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

Оболонка привласнює кожному файлу введення і виводу номер. Стандартному введенню привласнюється номер нуль (0). Стандартному виводу привласнений номер один (1), а стандартному виведенню помилок привласнюється номер два (2).

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

  • cpio-о<trashfiles.txt >trash.cpio 2»cpio. errors

Настройка оболонки

Коли ви використовуєте оболонку, вона функціонує в середовищі або оточенні, яка містить змінні середовища (environmentvariables). Змінні середовища — це заздалегідь певні значення або складені імена, що містяться в різних текстових ресурсних файлах, розташованих у домашньому каталозі і каталозі /etc. Для оболонки bash за умовчанням загальносистемні змінні інтерфейсу задані у файлі /etc/profile, а персональні настройки параметрів визначаються у файлі .bashrc домашнього каталога.

Існує багато різних змінних середовища. Щоб вивести перелік поточних використовуваних змінних, можна скористатися командами printen vабо set:

PATH=/usr/local/bin:/bin:/opt/kde/bin: /usr/bin: . : /usr/XHR6/bin: /home/

*bbbal/bin

HOME=/home/bball

SHELL=/bin/bash

Щоб запустити програму без використання змінної $РАТН, ви повинні ввести повний шлях (path), або ієрархію каталогів (або складене ім'я), файлу команди.

Зміна запрошення для введення командного рядка — лише один з методів настройки стилю роботи з оболонкою. Ви можете також визначити “ярлики” або псевдоніми (aliases) команд, щоб набудувати режим їх роботи відповідно до ваших потреб. Щонайменше пару псевдонімів, вже визначених для вашої системи, ви можете виявити у файлі bashrc, що міститься в каталозі /etc.

Визначення загальносистемних псевдонімів вводяться root-оператором. Свої власні визначення ви можете помістити у файл .bashrc домашнього каталога. У якості ж root-оператора ви можете порахувати доцільним ввести у файл .bashrc щонайменше три таких визначення для всіх користувачів:

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

Виконання програм у фоновому режимі

Більшість оболонок надає можливість запуску і подальшого виконання програм як фонових (background) процесів.

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

  • rxvt&

Ця команда запускає термінал rxvt, і запрошення вашого командного рядка знов стає вільним для введення. З програмою, що виконується у фоновому режимі, зв'язується номер процесу, доступ до якого можна отримати.

Ви можете зупинити процес за допомогою команди оболонки kill, вказавши номер процесу для програми:

  • kill 291

[1]+ Terminated rxvt

Застосуванням команди kill є грубий метод управління фоновими програмами. Залежно від типу використовуваної оболонки ви можете перевести програму, що виконується, у фоновій режим, припинити виконання програми, продовжити виконання програми у фоновому режимі, припинити виконання програми або повернути програму на дисплей терміналу. Всі ці дії носять назву управління завданнями (Jobcontrol).

Якщо ви працюєте з оболонкою bash, то для перекладу програми, що виконується, у фоновий режим і припинення її функціонування слідує, утримуючи натиснутою клавішу <Ctrl>, натиснути клавішу <Z> на клавіатурі.

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

На основі точного такого ж підходу ви можете також зупинити виконання програми. Замість того щоб використовувати команду ps для встановлення номера процесу для програми, а потім застосувати команду kill, можна скористатися командою kill з оператором %:

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

Ви вже знаєте, як перенаправити виведення програми у файл і як потім перенаправити вміст файлу в іншу програму. Але все це можна зробити одночасно, не використовуючи тимчасовий файл, за допомогою символу вертикальної межі (¦), який називається каналом (pipe). Використання каналів для вибудовування послідовності команд в командному рядку називається конвеєрною обробкою.

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

Побудова сценаріїв оболонки

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

  • rxvt-geometry80*11+803+375 -bgwrite-fgblack -і pico&

  • rxvt-geometry 80*24+806+2 -bgwrite-fgblack -і pine&

Ці два командні рядки запускають редактор pico і поштову програму pine в двох вікнах терміналу rxvt на другому робочому столі дисплея з дозволом 800x600 пікселів. Ви можете, проте, перетворити ці команди у виконувані файли, спочатку зберігши їх у вигляді файлів за допомогою текстового редактора, а потім застосувавши до них команду chmod:

  • chmod +х d2

Тепер, коли виникне необхідність запустити ці програми, все що потрібно зробити — ввести в командний рядок вираз:

  • d2

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

rxvt-geometry80*11+803+375 -bgwhite-fgblack -і $2 &

rxvt-geometry 80*24+806+2 -bgwhite-fgblack -і $1 &

Звернете увагу, що порядок змінних не має значення. Тепер при запуску команди ви можете підставити в командний рядок імена програм, як в наступному прикладі:

  • d2 pine pico

Контрольні питання:

  1. Що таке оболонка?

  2. Які особливості оболонки ash?

  3. Які особливості оболонки bash?

  4. Які особливості оболонки pdksh?

  5. Які особливості оболонки zsh?

  6. Командний рядок оболонки?

  7. Як здійснюється настройка оболонки?

  8. Як здійснюється виконання програм у фоновому режимі?

  9. Як здійснюється побудова сценаріїв оболонки?

  10. Як здійснюється використання каналів?

Література: Болл Билл Освой самостоятельно Linux за 24 часа, 2-е издание. : Пер. с англ. : Уч. пос. – М. : Издатель ский дом «Вильямс», 2000. – 480 с.: ил. – Парал. тит. англ., стор. 119-141.