Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_osi.doc
Скачиваний:
121
Добавлен:
11.02.2015
Размер:
218.11 Кб
Скачать

53. Интерфейс пользователя ос unix. Метасимволы в именах файла.

Метасимволы используются для поиска имен файлов, посредством их упрощается задача указания файлов или групп файлов как аргументов команды.

Поиск всех символов (метасимвол *)

Метасимвол * осуществляет поиск любой строки символов, включая нулевую (пустую) строку. Вы можете использовать * для обозначения полного или частичного имени файла. Просто символ * ищет все имена файлов и справочников в текущем каталоге, за исключением тех, которые начинаются с точки. Чтобы посмотреть метасимвол * в действии, введите его как аргумент в команде echo: echo *. В ответ система распечатает перечень всех имен файлов в вашем текущем каталоге.

Символ * может представлять символы в любой части имени файла. Например, если вы знаете, что несколько файлов имеют одинаковые первые и последние буквы, то вы можете выдать запрос, основываясь на этом факте. Если в вашем каталоге находятся файлы FATE, FE, FADED_LINE, FIG3.4E, FINE_LINE, FAST_LINE, то для отображения всех этих файлов на экране введите команду:

ls F*E

Вы можете, например, с помощью метасимвола * найти все файлы с именами memo в системном каталоге:

ls */memo

Поиск по одному символу (метасимвол ?)

Метасимвол ? осуществляет поиск любого одного символа в имени файла за исключением лидирующей точки. Предположим, вы имеете книгу, в которой 12 глав и хотите получить список глав до 9-ой главы. Если ваш каталог содержит следующие файлы:

Chapter1, Chapter2, Chapter5, Chapter9, Chapter11

то введите команду ls с метасимволом ? для получения всех глав, которые начинаются со строки "Chapter" и заканчиваются одним символом:

$ ls Chapter?

Chapter1 , Chapter2, Chapter5, Chapter9

$

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

ls Chapter??

И, конечно, чтобы получить список всех глав в текущем каталоге, используйте метасимвол *:

ls Chapter*

Поиск одного набора (метасимвол [])

Если вы хотите, чтобы shell нашел любой символ из перечисленных вами символов, то заключите эти символы в квадратные скобки. Предположим, ваш каталог содержит следующие файлы: cat, fat, mat, rat. Если вы воспользуетесь в качестве части имени файла шаблоном [crf], то shell будет искать имена файлов, в которые входят либо буква ``c'', либо буква ``r'', либо буква ``f'' в указанной позиции. Пример:

$ ls [crf]at

cat fat rat

$

54. Стандартные потоки I\O и диагностики. Конвееры и фильтры. Возможности Shell.

Стандартные потоки ввода-вывода

Оболочка оперирует с вводимой и выводимой информацией посредством файлов специального вида - ``потоков (streams)''. Стандартный вывод - это файл, в который оболочка выводит результаты работы команд - по умолчанию, на экран Вашего терминала. Стандартный ввод (обычно это клавиатура) является источником данных для команд. Если команда считывает данные из стандартного ввода, она делает это до тех пор, пока Вы не введете Ctrl-d в новой строке.

Если команда завершает выполнение с ошибкой, на экран обычно выводится сообщение об ошибке. Это сообщение принадлежит отдельному стандартному потоку для ошибок.

Вы можете перенаправить вывод вместо этих потоков в другие - например, в файл или команду. Ниже приведены операции перенаправления, которые использует оболочка при работе со стандартным вводом или выводом.

Создание конвейеров

Конвейер - это соединение стандартного вывода одной команды со стандартным вводом другой. Вы можете сделать это, указав команды в нужном порядке и разделив их вертикальной чертой `|' (иногда называемой ``трубой (pipe)'').

Например, Вы хотите посмотреть длинный список файлов в каталоге '/usr/bin', используя средство форматирования текста less. Введите:

$ ls -la /usr/bin | less [Enter]

Shell - интерпретатор командного языка

В этом разделе описаны команды и символы, имеющие специальное значение, которые позволяют:

* находить с помощью шаблона и манипулировать группами файлов;

* запускать команду в фоновом режиме или в определенное время;

* выполнять последовательно группу команд;

* перенаправлять стандартный ввод и вывод;

* завершать работающие программы.