рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Экранирование специальных символов

Экранирование специальных символов - раздел Образование, Свободные программы и системы в школе Специальное Значение Символов «?», «*», «[», «]», «~» При Указании Имен Файло...

Специальное значение символов «?», «*», «[», «]», «~» при указании имен файлов и является причиной, по которой их (а также другие символы, имеющие специальное значение для оболочки) не рекомендуется вводить в имена файлов. Однако пользователь может столкнуться с ситуацией, в которой ему все же нужно выполнить некоторые действия с файлом, чье имя содержит такие символы.

Алиса перенесла в каталог «Старые_файлы/» файл «Домашняя страница[13].htm» из системы, которой ранее пользовалась.

Как ей к нему обратиться? Буквальное указание в командной строке цепочки символов, совпадающей с именем файла, очевидно, не приведет к разумному результату, поскольку будет интерпретировано как список, состоящий из имени «Домашняя» и шаблона «страница[13].htm» (которому могут соответствовать файлы «страница1.htm» и «страница3.htm»).

 

Рис. 1‑22

 

В лучшем случае эти файлы не будут найдены (Рис. 1‑22), в худшем будут найдены другие файлы, чьи названия случайно совпадут с элементами невольно введенного «списка» или результатами раскрытия «шаблона».

Чтобы указать в командной строке файл, чье имя содержит специальные символы, эти символы необходимо экранировать , т.е. «защитить» от раскрытия. Экранировать отдельный символ можно, поставив перед ними символ обратной косой черты («», «бэкслэш»). Цепочка «Домашняя страница[13].htm» раскрывается в цепочку «Домашняя страница[13].htm» (Рис. 1‑23).

 

Рис. 1‑23

 

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

[alice@wonderland Старые_файлы]$ echo Cпециальные символы в шаблонах ‑‑‑ это вопросительный знак ?, звездочка *, квадратные скобки [ и ]. Их можно экранировать обратной косой чертой \

Cпециальные символы в шаблонах ‑‑‑ это вопросительный знак ?, звездочка *, квадратные скобки [ и ]. Их можно экранировать обратной косой чертой

 

Рис. 1‑24

 

Другой способ экранировать специальные символы от интерпретации как шаблонных – заключить имя файла целиком в апострофы («'») или кавычки («"»).

 

Рис. 1‑25

 

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

Хотя используя экранирование можно создавать, перемещать и копировать, уничтожать файлы, имена которых состоят практически из любых символов, включать специальные (как шаблонные, так и прочие) символы в имена файлов крайне не рекомендуется, так как это заметно повышает вероятность ошибки при вводе.

Оболочка не придает никакого особого значения точке в имени файла (кроме случаев, когда имя начинается с точки), и «расширение имени файла» – это лишь интерпретация пользователя (и, возможно, некоторых программ). Поэтому в отличие от ряда альтернативных систем шаблон «*.» означает не «все файлы с именами без расширений» (как в «РСЭКС‑11» или «МС‑ДОС»), но буквально «все файлы с именами, заканчивающимися на точку».

Перенаправление ввода‑вывода

Команды «cp», «ls», «mkdir», «mv», «rm», «rmdir», «touch», с помощью которых Алиса манипулировала файлами в примерах выше, обычно относят к «файловым утилитам». Все они позволяют манипулировать файлом (копировать, выводить информацию о нем, переименовывать или перемещать, создавать) как единым целым. Любые действия файловых утилит совершенно безразличны к содержимому файлов.

Команда «cat» обычно относится к «текстовым утилитам». Строго говоря, она может обрабатывать и двоичные файлы, но применительно к ним, как правило, операция объединения (а именно объединение содержимого нескольких файлов в один и является «титульной» функцией этой команды, название которой представляет собой сокращение от английского «(con)catenate» – «(кон)катенировать», «сцеплять») бессмысленна.

 

Рис. 1‑26

 

Введя команду «cat» без аргументов (Рис. 1‑26), Алиса сталкивается с новой для себя ситуацией: ее подача не приводит ни к какому видимому результату, никакого вывода на экране не появляется, но и подсказки, которая была бы знаком успешного завершения команды, тоже нет. Дело в том, что команда «cat», в отличие от ранее рассмотренных, не только выводит, но и вводит данные.

Вводя произвольные строки[22](Рис. 1‑27), Алиса обнаруживает, что каждая введенная ею строка после нажатия Enter вновь выводится на терминал. Команда «cat», поданная без аргумента, копирует содержимое ввода в вывод построчно[23].

Закончить ввод можно, введя в начале очередной строки символ конца файла Control‑D. Ввод этого символа приводит к немедленному завершению ввода, т.е. символ завершения строки уже не ожидается, а сам символ не отображается при вводе.

 

Рис. 1‑27

 

Говоря в главах выше о выводе, а сейчас и о вводе, мы подразумевали вывод на экран терминала и ввод с клавиатуры терминала. Это является умолчанием для всех стандартных команд. Однако одним из самых важных свойств открытых ОС является возможность перенаправления ввода‑вывода .

В примере на Рис. 1‑28 Алиса перенаправляет вывод команды «cat», используя символ «>» со следующим за ним именем файла («Вечера»), в который перенаправляется вывод.

 

Рис. 1‑28

 

В этом примере строки ввода уже не дублируются выводом на терминал, а поданная после завершения ввода команда «ls» показывает, что действительно появился файл с названием «Вечера» и размером 173 байта, что соответствует длине введенного текста[24].

Перенаправляться может не только вывод, но и ввод, и Алиса может воспользоваться этим, чтобы вывести с помощью все той же команды «cat» содержимое созданного ею файла на терминал. Перенаправление ввода осуществляется указанием имени файла после символа «<» (Рис. 1‑29).

 

Рис. 1‑29

 

Эти два символа («>» для перенаправления вывода и «<» для перенаправления ввода) легко запомнить, поскольку они графически соответствуют «стрелкам», указывающим «в файл» или «из файла». Промежутки до и после символов «<» и «>» игнорируются.

Перенаправление ввода и вывода может использоваться и одновременно. Команда на Рис. 1‑30 копирует построчно файл «Вечера» в файл «Вечера_2».

 

Рис. 1‑30

 

Результат, в общем, совпадает с результатом простого копирования «cp Вечера Вечера_2», хотя и достигается другим способом. Порядок указания файлов перенаправления ввода и вывода значения не имеет.

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

Часто бывает желательно перенаправить вывод в файл, не уничтожая его содержимого, а дописывая новые строки к уже существующим. Для этого оболочка поддерживает перенаправление вывода в конец существующего файла , обозначаемое «двойной стрелкой» «>>» (Рис. 1‑31).

 

Рис. 1‑31

 

Как и перенаправление вывода в файл, перенаправление вывода в конец файла может применяться совместно с переназначением ввода.

Важно понимать, что возможность переназначения ввода‑вывода является свойством не отдельных программ, а системы в целом. Символы перенаправления и соответствующие имена файлов не передаются самим командам в качестве аргументов. Оболочка самостоятельно назначает файлы ввода‑вывода любой команды. В частности, можно переназначить вывод любой из рассматривавшихся выше команд, например, «ls» (Рис. 1‑32).

 

Рис. 1‑32

 

Кроме стандартного ввода и стандартного вывода, каждая команда открывает еще один файл для вывода ошибок. Команда записывает в стандартный вывод то, что от нее ожидается, а в вывод ошибок – пишет сообщения об ошибках, предупреждения и диагностические сообщения. Как и первые два файла, по умолчанию вывод ошибок ассоциирован с терминалом. Перенаправление стандартного ввода и стандартного вывода не влияет на вывод ошибок.

 

Рис. 1‑33

 

В примере на Рис. 1‑33 сообщение об отсутствии файла «Вечера_3» было выведено на терминал, хотя стандартный вывод был перенаправлен в файл «список».

Перенаправить вывод ошибок можно, использовав конструкцию «2>» со следующим за ней именем файла (Рис. 1‑34).

 

Рис.1‑34

 

Двойка перед символом перенаправления в этой конструкции означает порядковый номер (дескриптор) канала ввода‑вывода; стандартный ввод и стандартный вывод имеют дескрипторы 0 и 1, соответственно[25], а запись «<», «>», «>>» является сокращением от «0<», «1>», «1>>», соответственно[26].

Так же, как и стандартный вывод, вывод ошибок может быть переназначен в конец существующего файла конструкцией «2>>». Если же необходимо переназначить и стандартный вывод, и вывод ошибок в один файл, в командную строку следует, помимо переназначения стандартного вывода включить еще и конструкцию «2>&1», означающую «переназначить второй канал туда же, куда и первый» (Рис. 1‑35).

 

Рис. 1‑35

 

Стандартные файлы‑устройства

Бывает желательно подавить стандартный вывод или вывод ошибок вообще. Некоторые команды предусматривают для этого особые ключи, но в общем случае можно воспользоваться все той же возможностью переназначения вывода. Для этого в любой стандартной системе существует специальный файл, представляющий собою фиктивное «нуль‑устройство». Его полное имя «/dev/null». Запись в него любых данных не приводит к какому‑либо результату, они как бы «бесследно исчезают»[27]. В «/dev/null» можно переназначить как стандартный вывод, так и вывод ошибок.

На «/dev/null» можно также переназначить и стандартный ввод; из него всегда читается пустой файл: подача команды «cat </dev/null >пустой_файл» приведет к появлению в текущем каталоге пустого файла «пустой_файл» (или опустошению существующего файла с таким именем).

Еще один интересный специальный файл‑устройство – «/dev/tty». Это весьма абстрактное устройство, соответствующее терминалу, с которого запущена оболочка. Перенаправление вывода в или ввода из этого устройства не дает никакого видимого эффекта, поскольку совпадает с умолчанием (можно считать, что, если в команде явным образом не присутствуют перенаправления, ввод‑вывод неявным образом направлен так: «</dev/tty >/dev/tty 2>/dev/tty»), но его указание может пригодиться для команд, вводящих текст из файла, указанного в качестве операнда, или выводящих текст в такой файл.

Если Алиса взглянет на перечисленные файлы с помощью команды «ls ‑l» (Рис. 1‑36), она обнаружит, что в поле «тип» присутствует не встречавшийся до сих пор символ «c».

 

Рис. 1‑36

 

Символ «c» означает «устройство с посимвольным вводом‑выводом»[28].

Эти файлы устройств должны присутствовать в любой стандартной открытой системе, так же, как и содержащий их каталог «/dev/». Кроме них, в большинстве реализаций этот каталог содержит множество (сотни или даже тысячи) файлов (иногда организованных в подкаталоги), представляющих различные физические или виртуальные устройства. Любое устройство в открытой ОС представлено в виде файла . Некоторые из них (например, терминалы) представляют собой устройства с посимвольным вводом‑выводом, некоторые (например, магнитные диски) – с поблочным. Тип файла‑устройства с поблочным вводом‑выводом обозначается буквой «b».

– Конец работы –

Эта тема принадлежит разделу:

Свободные программы и системы в школе

На сайте allrefs.net читайте: "Свободные программы и системы в школе"

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Свободные программы и системы в школе
  Введение. Зачем программам быть свободными?   На сегодня в школе, как и в некоторых других сегментах рынка, преобладают «альтернативные», нес

Право и экономика ПО
  Поскольку существует изрядная путаница с терминологией, имеет смысл привести определения далее используемых терминов. Это особенно уместно, когда мы говорим о программах в школе, ве

Логика и последовательность освоения СПО
  Логика и последовательность изложения материала в этом курсе существенно отличается от логики, в которой написано большинство книг, посвященных СПО. Чаще всего авторы исход

Операционные системы
  Существуют две группы определений операционных систем: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют с

Краткая история открытых ОС
К концу шестидесятых годов XX в. операционным системам как классу программного обеспечения шел уже второй десяток. Были разработаны больше сотни различных ОС для разных компьютеров, из них полтора

Роль свободных операционных систем
В последние 5‑7 лет рост пользовательской базы открытых ОС в основном происходит за счет распространения их свободных вариантов – «БСД» и «ГНУ/Линукс» – причем темп задает сейчас «ГНУ/Линукс»

Альтернативные операционные системы
Большинство альтернативных (нестандартных) операционных систем вытеснены сегодня в ниши и не претендуют на универсальность. Ниже рассмотрены исключения. «Майкрософт Уиндоуз НТ» («М

Практическая интеграция
  Сильными техническими сторонами открытых ОС, выгодно отличающими их от любых альтернатив в плане практической интеграции (разворачивания, поддержания в работоспособном состоянии, не

Критерии для выбора дистрибутива.
Общая пользовательская аудитория и срок существования дистрибутива. Общее правило: чем более широка аудитория, тем быстрее исправляются ошибки и тем проще найти помощь в решении той или иной

Технические параметры дистрибутивов.
Бинарная установка или установка из исходников? В сообществе «БСД» в качестве штатной процедуры установки принято «портирование», т.е. автоматизированная компиляция и сборка пакетов для целе

Обзор самых популярных дистрибутивов.
Скорее всего, реальный выбор будет идти между дистрибутивами, либо входящими в «высшую лигу» по популярности в мире (Debian, RedHat, Mandrake и SuSE), либо разрабатывающимися в России (ALT Linux и

Сеанс работы и команды
  Интерфейс оператора ОС представляет собой интерпретирующий язык, конструкции которого могут выполняться непосредственно при их вводе оператором (интерактивный режим) или из файлов (

Загрузка и разгрузка системы
Изначальный запуск программ, составляющих операционную систему, называется загрузкой ОС, их завершение – ее разгрузкой , а загрузка сразу вслед за разгрузкой – перезагрузкой .

Вход в систему и выход из системы
Для того, чтобы взаимодействовать с компьютером, нужно зарегистрироваться в ОС. Регистрируясь («входя» в систему) , вы сообщаете системе, что на определенном терминале (реальном или виртуаль

Простая команда
Простая команда – это строка, состоящая из: (необязательных) присвоений значений переменным окружения команды; (необязательного) имени команды; (необязательных и допустим

Страницы руководства по простым командам
Текущая версия стандарта на ОС описывает 176 команд. В различных системах их доступно от нескольких десятков до нескольких тысяч, и выучить детали синтаксиса и семантики каждой практически невозмож

Создание и удаление файлов
Именем файла в открытой ОС может быть любая строка поддерживаемых символов, не содержащая нулевого символа[21]и символа косой черты («/»), но рекомендуется ограничиться символами, входящими в пе

Каталоги
Если команда «ls» подается без операндов (т.е. если она подана без аргументов вообще или только с аргументами‑ключами), результатом станет вывод списка имен всех файлов в текущем каталоге

Копирование, перемещение, переименование файлов
Командой «cp» можно скопировать файлы, командой «mv» – переименовать (переместить) их. Обе эти команды имеют два отличающихся по семантике варианта. 1) Если последним операндом является им

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

Оболочка как команда
Пожалуй, наиболее убедительной демонстрацией единства принципов открытых систем является следующий пример. Запишем в файл «сценарий» строки, соответствующие каким‑либо уже известным нам коман

Маска прав по умолчанию
Когда пользователь создает файл (командой «touch» или перенаправлением вывода другой команды), права доступа к нему устанавливаются равными маске прав по умолчанию , за исключением того, что

Особенности прав на каталоги
Следующий пример может показаться контринтуитивным.  

Вся правда о файлах
Дело в том, что понятие о файлах и их «нахождении» в каталоге выше давалось нами в несколько упрощенной форме. Если быть точными, каталог содержит не «файлы», а записи о файлах , вполне подо

Процессы
  Наряду с файлом, понятие процесса является важнейшим в концепции открытых операционных систем. Процесс – это обладающая уникальным идентификатором единица исполняемо

Переменные
  До сих пор мы имели дело с параметрами, передававшимися команде в виде аргументов, следующих за именем команды. Команда интерпретирует аргументы исходя их их значений (так, большинс

Конвейер
  Помимо использования символов завершения («&», «;», «&&» и «||») и скобок «(» и «)», в открытых ОС имеется еще один механизм объединения простых команд в группу – конвей

Элементы обработки текста
  Обработка «плоских» (неразмеченных) текстов – одно из первых (после собственно вычислительных задач и управления приборами), очень важное и хорошо исследованное приложение компьютер

Редакторы
Когда компьютеры были большими и дорогими, задача редактирования программ и других текстов решалась гораздо более простыми устройствами, обычно состоявшими из телетайпа (или клавиатуры) и перфорато

Дидактика редакторов
Реальное очень значимое отличие заключается в том, что по своей архитектуре «vi» – более или менее монолитная программа (с вытекающей отсюда компактностью), а «Emacs» – на самом деле, расширяема

Автоматизированная обработка текстов
ОС «Юникс» была во многом «рождена для обработки текстов» (прежде всего, это была система для программистов, а программы – это тексты). Набор служебных программ (утилит) современных стандартных ОС

Базовые регулярные выражения
Многими стандартными утилитами (такими как «sed», «grep», «vi») для поиска, замены, выбора текста, используются базовые регулярные выражения. Регулярное выражение – это последовательность

Элементы программирования оболочки
  В предыдущих главах мы рассматривали язык оболочки с точки зрения, в основном, непосредственного исполнения вводимых команд. Теперь взглянем на него под другим углом: как на

Комментарии и указание оболочки
Часть любой строки, начинающаяся со знака «#» вплоть до символа новой строки является комментарием и не исполняется оболочкой. Как и в других языках программирования, комментарии предназначены для

Переменные и присваивание значений
Конструкция, состоящая из имени переменной и ее значения , разделенных знаком равенства («=») без промежутков, за которой не следует никакой команды, является определением переменной

Генерация кодов возврата
Обычно директивные языки для определения условий в операторах условного и циклического исполнения применяют механизм выражений . Язык оболочки в этом плане достаточно эксцентричен, и

Циклическое исполнение с предусловием
Оболочка поддерживает два оператора цикла с предусловием : «while – do – od» (Рис. 1‑82) и «until – do – od» (Рис. 1‑83).

Циклическое исполнение со списком значений
Оболочка предоставляет также возможность организации циклического исполнения с переменной, пробегающей список значений (Рис. 1‑84).

Передача аргументов сценарию
Как и любая команда, сценарий, написанный на языке оболочки, может вызываться с позиционными параметрами (ключами и операндами). Сценарию эти параметры доступны посредством ряда специальны

Функции и вызов других сценариев
В сценарии на языке оболочки можно определить подпрограммы‑функции. В функции определенными являются переменные, определенные сценарием (или его окружением) на момент вызова функции. Однако с

Раскрытие команды
Крайне занимательной является возможность раскрыть целую команду, то есть включить в командную строку ее стандартный вывод. Для этого команда заключается в обратные апострофы «`» и «`», кото

Включенный документ
В некотором смысле обратной по отношению к раскрытию команды с помощью обратных апострофов является конструкция включенного документа (или, конструкция «документ здесь»). На Рис. пр

Справочник по наиболее употребительным стандартным командам ОС
  exit ‑ завершить исполнение оболочки Синтаксис: exit [код_зав] Семантика: exit завершает исполнение оболочки с кодом возврата

Цветной сэндвич
  То, что пользователю, сидящему за монитором, представляется сплошной графической операционной средой, реализовано как многослойный сэндвич технологий. Непосредственно с обо

Окноводы
  Как же менеджер окон преодолевает указанное ограничение X‑протокола? Никак – просто выделенным ему окном является весь экран. (На самом деле, менеджер окон – не единственная п

Столоначальники
  ...Что демонстрирует отсутствие резкой границы между ними. Существует два подхода к тому, чтобы достроить оконную систему до полнофункциональной среды. Первый – добавить в «графичес

Базовая функциональность оконного менеджера
  Как уже говорилось, ключевой компонент графической платформы – Икс‑сервер: захватывает оборудование, создает по запросу других программ (которые в этой терми

Расширенная функциональность оконного менеджера
  Собственно, перечисленными функциями оконный менеджер, предназначенный для работы в составе интегрированной операционной среды, может и ограничиться. При использовании же в качестве

Интегрированные графические среды
  Запуск графической среды (точнее, «бутерброда» из оконной среды «Икс», оконного менеджера и графической среды) в открытой операционной системе можно сравнить с запуском «Майкрософт

Плюсы и минусы интегрированных сред
  Однородность опыта и связанная с нею привычность (иногда ошибочно называемая «интуитивностью», хотя она не имеет отношения к философскому и психологическому понятиям интуиции) позво

Общие черты интегрированных сред
  Сколько‑нибудь последовательной теории интегрированных графических сред не существует. Изучая отдельные среды в динамике их развития, можно, тем не менее, выделить несколько о

Стандарты разметки текста
Существуют и доказали свою устойчивость два основных типа языков разметки. Первый из них, это семейство, называемое *ML‑языками: на эти две буквы заканчиваются аббревиатуры их назван

Программирование особого рода
Мы придерживаемся отнюдь не общепризнанной точки зрения, согласно которой популярность электронных таблиц как делового приложения компьютера, обусловлена именно простотой решения задач, требующих п

Свободные редакторы электронных таблиц
Пробежавшись по каталогам свободных программ (таким, как «кузница кода» Sourceforge, содержащая тысячи проектов), можно обнаружить более двух десятков программ в категории «электронные таблицы». Бо

Векторизация растровых изображений
  Рис. 4‑9   Выше уже

Источники и параметры растровой графики
  Обычным источником растровых изображений является сканер – устройство, «проходящее» (сканирующее) лист бумаги или кадр фотопленки точка за точкой и передающее компьютеру значения, с

Источники и параметры и форматы представления растровой графики
  За тридцатилетнюю историю компьютерной графики разработано великое множество (сотни) форматов хранения изображений. Большинство из них является плодом несогласованности «техническог

Интерактивная функциональность и эргономика
Тем не менее, базовой интерактивной функциональности «ГИМП» (включая доступные модули) вполне достаточно, чтобы покрыть обычно изучаемые в школе вопросы обработки графики.

Фильтрация и синтез изображений
  Основной прием автоматизированной обработки изображений – фильтрация их целиком, либо выделенных в них областей. Большая часть упомянутых внешних модулей реализует именно функцию фи

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги