69293

Командний інтерфейс користувача

Лекция

Информатика, кибернетика и программирование

Командний інтерпретатор запускають щоразу, коли користувач реєструється у системі із термінала, при цьому стандартним вхідним і вихідним пристроєм для інтерпретатора і запущених за його допомогою програм є цей термінал.

Украинкский

2014-10-02

33 KB

1 чел.

Лекція № 20

Тема: Командний інтерфейс користувача

План

  1.  Принципи роботи командного інтерпретатора
  2.  Переспрямування потоків введення-виведення
  3.  Використання каналів

Принципи роботи командного інтерпретатора

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

В UNIX-системах командний інтерпретатор називають оболонкою (shell). Розроблено багато версій інтерпретаторів, серед них sh (вихідний варіант), csh (C-shell) і bash. Інтерпретатор bash входить у стандартну поставку більшості дистрибутивів Linux. Системи лінії Windows XP включають спеціалізований інтерпретатор cmd, який використовують під час роботи в режимі консолі. Роботу інтерпретатора буде розглянуто на прикладі bash [26].

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

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

$ cat myfile.txt вміст файла myfile.txt $    ... очікування введення

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

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

$ updatedb &

$ ... очікування введення, updatedb продовжує виконання

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

Набори команд інтерпретатора можуть зберігатися в командних файлах (такі інтерпретатори, як bash, дають можливість використати в них досить потужну мову програмування). Цей командний файл може бути виконаний за тими самими правилами, що і будь-який файл скрипта.

Переспрямування потоків введення-виведення

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

$ sort > out.txt $ sort < in.txt

Під час виконання таких команд результат виведення опиниться не на екрані, а у файлі out.txt, а введення буде виконано не з клавіатури, а з файла in.txt При цьому очікування введення із клавіатури не буде.

Можна переспрямовувати одночасно і потік введення, і потік виведення:

$ sort < in.txt > out.txt

У даному випадку програма зчитує дані з одного файла, обробляє їх і записує в інший файл.

Стандартний дескриптор, що відповідає файлу повідомлень про помилки stderr, при цьому не переспрямовують. Для його переспрямування використовують такий синтаксис:

$ sort 2> err.txt

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

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

$ grep linux * | sort

У цьому разі результати виконання утиліти дгер передаватимуться на стандартний ввід утиліті sort. Канали можуть об'єднувати будь-яку кількість процесів.

Ще один спосіб використання каналів зводиться до обміну даними між процесом і командним інтерпретатором, під час якого результати виконання процесу будуть підставлені в командний рядок інтерпретатора. Таку технологію називають командною підстановкою (command substitution), для цього командний рядок виклику застосування, результати виконання якого потрібно використати, беруть у зворотні лапки: ~виконуваний_файл параметри4.

$ grep linux 'cat fi1elist.txt"

У даному випадку файл filelist.txt містить список імен файлів, у яких потрібно зробити пошук. Внаслідок виконання утиліти cat список має видаватись на стандартний вивід, але замість цього його підставляють у командний рядок виклику утиліти grep.

Питання для самоконтролю:

  1.  Поняття командного інтерпретатора
  2.  Принципи роботи командного інтерпретатора
  3.  Переспрямування потоків введення-виведення
  4.  Використання каналів


 

А также другие работы, которые могут Вас заинтересовать

30781. Монтаж многоэтажных каркасных зданий, последовательность монтажа элементов 15.51 KB
  Монтаж многоэтажных каркасных зданий последовательность монтажа элементов. Монтаж – совокупность технологических процессов связанных с доставкой конструктивных элементов установкой и закреплением. Методы монтажа техническое решение определяющее способ возведения конструкции и последующей сборки: По степени укрупнения: А поэлементный – подъём и установка в проектное положение отдельных готовых конструктивных элементов Б крупноблочный – конструкции предварительно собираются в блок укрупнит.сборка В монтаж сооружения целиком В...
30782. Монтаж многоэтажных каркасных зданий, расположение монтажных кранов, зон складирования, привязка подкрановых путей 15.6 KB
  Монтаж многоэтажных каркасных зданий расположение монтажных кранов зон складирования привязка подкрановых путей. При размещении привязке монтажных кранов на стройгенплане должны быть удовлетворены следующие условия: четкая ритмичная работа кранов и связанных с ними других строительных механизмов и машин безопасные условия труда машинистов и обслуживающего персонала снижение себестоимости и трудоемкости работ сокращение временина установку кранов и устройство подкрановых путей. Положение оси подкрановых путей относительно строящегося...
30783. Основные технологические процессы при монтаже колонн верхних ярусов многоэтажных зданий 15.14 KB
  Колонны высотой на один или два этажа стропят фрикционными или рамочными захватами а рамы штыревыми. Эти приспособления бывают одиночными для закрепления одной колонны групповыми для четырех колонн и в виде совокупности групповых кондукторов обеспечивающей монтаж элементов яруса на значительной части здания. Нижняя обойма обхватывает выступающую над перекрытием часть колонны предыдущего яруса а две другие закрепляют устанавливаемую колонну. После окончательного закрепления колонны одиночный кондуктор разъединяют...
30784. Основные технологические процессы при монтаже ригелей и плит перекрытия 13.13 KB
  Плиты поднимают четырехветвевыми стропами сразу выверяют и приваривают к ригелям. В безбалочных перекрытиях по капителям укладывают осевые плиты а по ним плитывкладыши.
30785. Виды защитных покрытий и требования к ним 14.84 KB
  Защитные покрытия предназначены для защиты зданий и их элементов от внешних агрессивных воздействий окружающей среды. Защитные покрытия в зависимости от поражающих факторов бывают : Гидроизоляционные Антикоррозийные Огнеупорные теплоизоляционные светонепроницаемые и др.войлок Противокоррозийные покрытия – защищают от коррозии наносятся окраской распылением.
30786. Технология устройства гидроизоляции 15.47 KB
  Гидроизоляция: Окрасочная Литая Оклеечная Жёсткая Окрасочную изоляцию жидкими составами толщиной 02. Литую асфальтовую изоляцию в виде сплошного водонепроницаемого слоя асфальтовой массы толщиной 10. На нее наносят слой битумной мастики толщиной 1. Швы между полотнищами очередных слоев смещают по отношению друг к другу Жесткая гидроизоляция цементнопесчаная гидроизоляция толщиной до 25 мм состава 1:1; 1 : 2; 1 : 3 устраивают двумя способами торкретированием и оштукатуриванием.
30787. Виды теплоизоляционных покрытий. Технология 15.75 KB
  Теплоизоляция: Засыпная Мастичная Литая Обвалакивающая Сборноблочная Вакуумная Засыпная – в стену приваривают шпильки 335 см на них крепят мелкую металлическую сетку с ячейками в которые засыпается диатомовая крошка перлитовый песок мин и стекловата. Мастичная – на стену с помощью шпилек устанавливают мелкую армирующую сетку. Мастику наносят на сетку 1 слой – набрызг затем разглаживание последний слой укладывают рейкой. При устройстве однослойной изоляции поверх войлока укладывают оцинкованную металлическую сетку и закрепляют ее...
30788. Назначение кровель. Кровельные материалы. Виды кровель и требования к ним 14.37 KB
  Кровельные материалы. Кровли: Мягкие – рулонные материалы мембраны мастичные Жёсткие – листовые материалы штучные. Скатные кровли – более 15 уклон – штучные листовые материалы черепица металлочерепица рулонные.
30789. Устройство рулонных кровель 15.32 KB
  К вертикальной поверхности пополнительный слой гидроизоляции. Ковер начинают наклеивать с пониженных мест воронок внутреннего водостока ендов карнизов послойно: сначала первый слой по всей площади захватки после его проверки и приемки второй слой до 5. Наклейка : послойная слой за слоем по всей площади крыши ступенчатая3 5 слоёв сразу. Наплавляемый рубероид – нижний слой полимерное покрытие нагревают путём разогрева газовыми горелками.