Работа с электронной подписью (ЭЦП) — СКБ Контур
В предыдущей статье мы разобрались, где и как получить электронную подпись, и выяснили, что самой незащищенной является простая электронная подпись. Поскольку простая ЭП не содержит криптографические механизмы, алгоритмы и представляет собой, например, пару логин-пароль или SMS-код, то пользоваться ею довольно просто.
Гораздо больше вопросов вызывает использование усиленной ЭП, так как оно сопряжено с различными технологическими нюансами. Поскольку в основе усиленной ЭП лежат криптографические механизмы, то для того, чтобы все они работали, необходимы соответствующие инструменты: ПО, правильная реализация в информационной системе и др.
Все технологические вопросы, касающиеся использования ЭП, можно разделить на несколько базовых блоков:
- Как начать работать с ЭП. Что нужно сделать, чтобы на рабочем месте можно было пользоваться усиленной ЭП?
- Как работать с ЭП в электронных документах. Как создать ЭП для документа? С помощью каких инструментов это сделать? Как потом обработать результат?
- Как работать с ЭП внутри различных информационных систем (информационных систем с веб-доступом, информационных систем в виде настольных приложений, которые устанавливаются на рабочее место пользователя)?
Рассмотрим подробнее каждый блок задач.
Как начать работать с электронной подписью
Для начала нужно разобраться, какие инструменты потребуются владельцу усиленной ЭП (будем рассматривать усиленную ЭП, основанную на российских криптоалгоритмах по ГОСТу, как наиболее актуальную с точки зрения массового использования).
Инструмент №1 — криптопровайдер
Это специальное ПО, реализующее все криптографические алгоритмы. Оно дает инструментарий для их использования: чтобы создавать ЭП, проверять ее, зашифровывать и расшифровывать информацию. Одни из самых известных криптопровайдеров — КриптоПро CSP и ViPNet CSP.
Инструмент №2 — сертификат ЭП и закрытый ключ к нему
Эти элементы можно получить в удостоверяющем центре (УЦ). Они хранятся на защищенном носителе, который внешне выглядит как флеш-накопитель, но на самом деле является специализированным электронным устройством, обеспечивающим безопасное хранение закрытого ключа пользователя и сертификата ЭП. Этот носитель называется токеном. При осуществлении криптографических операций криптопровайдер обращается к защищенному носителю для получения доступа к закрытому ключу ЭП.
Токены на российском рынке выпускают различные производители. Флагманами считаются Рутокен (компания «Актив»), JaСarta (компания «Аладдин Р.Д.»).
Инструмент №3 — настроенное рабочее место
Основной вопрос касается установки корневых сертификатов УЦ, выдавшего сертификат ЭП. При работе с квалифицированными сертификатами ЭП настройка корневых сертификатов часто связана с дополнительной задачей — установкой кросс-сертификатов Минкомсвязи. Такие сертификаты позволяют удостовериться в том, что УЦ действительно аккредитован, так как в требованиях к квалифицированной ЭП указано, что она обязательно должна быть выдана аккредитованным УЦ.
Следующий блок задач касается правильной настройки браузера. При работе с площадками и системами с веб-доступом необходимо настроить браузер таким образом, чтобы он позволял осуществлять все необходимые операции. Если мы попробуем начать работу с браузером, настроенным по умолчанию, то работа с ЭП будет недоступна из-за политик безопасности операционной системы.
Также часто требуется установка дополнительных надстроек или плагинов для браузера.
Наличие трех основных инструментов — криптопровайдера, закрытого ключа и сертификата ЭП и правильно настроенного рабочего места — обеспечивает корректную работу в 99% случаев. Компания СКБ Контур создала специальный сервис для автоматической настройки рабочего места клиента. Чтобы осуществить настройку, достаточно зайти по адресу sertum.ru, выбрать нужный тип информационной системы, с которой планируется работать, и дождаться окончания работы веб-диска.
Как работать с ЭП в электронных документах
Порядок подписания будет отличаться в зависимости от типа электронного документа, с которым мы работаем. В целом можно выделить два вида документов:
1. Электронные документы специализированного формата, которые позволяют встроить ЭП внутрь самого документа (документы Microsoft Word, PDF).
Чтобы встроить ЭП внутрь файла, иногда нужны дополнительные настройки, но часто достаточно обычной версии программы. В случае с Microsoft Word многое зависит от версии продукта: в версии до 2007 года включительно ЭП в документе можно создавать без дополнительных надстроек, для более поздних версий понадобится специальный плагин — КриптоПро Office Signature. Руководство по настройке ЭП для Microsoft Word/Excel можно найти на сайте УЦ СКБ Контур.
Для подписания PDF-файлов можно использовать программу Adobe Acrobat. При помощи данного функционала можно встраивать ЭП внутрь документа. Проверка созданной таким образом ЭП осуществляется также при помощи программ Adobe Reader и Adobe Acrobat.
2. Неформализованные электронные документы, не обладающие дополнительным инструментарием для встраивания ЭП.
Для электронного документа можно создать ЭП без встраивания в сам документ. Такая подпись будет называться отсоединенной и представлять собой отдельный электронный документ. Таким способом можно подписывать любые электронные документы, в том числе и в форматах Word и PDF.
Набор инструментов для реализации таких возможностей в целом не ограничивается каким-то одним решением. Существуют отдельные программы, которые устанавливаются на рабочее место и позволяют создавать и проверять ЭП, например, КриптоАРМ. Есть веб-решения, с помощью которых можно прямо в браузере создать ЭП, загрузив документ в форму на сайте, присоединив свой токен с закрытым ключом. На выходе вы получите отсоединенную ЭП. Такие возможности предоставляет сервис Контур.Крипто.
Каким требованиям должно соответствовать рабочее место, чтобы с него можно было работать с ЭП? С критериями можно ознакомиться по ссылке.
Проверка электронной подписи
Чтобы проверить ЭП в документах Microsoft Word и PDF, можно воспользоваться штатной программой, открыть в ней документ и посмотреть, корректна ЭП или нет.
Второй способ более универсальный — воспользоваться отдельным инструментарием для работы с ЭП — КриптоАРМ или Контур.Крипто. Нужно загрузить в программу электронный документ с ЭП, сертификат, при помощи которого создавалась ЭП, и осуществить проверку. Данные утилиты в соответствии с алгоритмом проверки ЭП осуществят все необходимые действия. Во-первых, инструментарий позволяет убедиться в том, что сертификат, при помощи которого создавалась ЭП, действующий. Во-вторых, можно удостовериться в том, что сертификат выпущен УЦ, которому мы доверяем. В-третьих, можно получить подтверждение, что ЭП действительно соответствует тому электронному документу, который загрузили.
Как работать с ЭП внутри различных информационных систем
Информационные системы могут представлять собой веб-сервис или настольное приложение. Поскольку каждое настольное решение имеет свои особенности реализации и правила настройки для работы с ЭП, разбирать общие сценарии не имеет смысла. Остановимся на более унифицированных веб-решениях.
Чтобы получить возможность работать с ЭП в электронной облачной системе, нужно правильно настроить браузер. В данном случае потребуется установка плагинов, дополнительных настроек, которые помогают работать с ЭП. Например, на электронной торговой площадке «Сбербанк-АСТ» используется штатный плагин от Microsoft — Capicom. На портале госуслуг устанавливается свой плагин, работающий во всех браузерах и осуществляющий работу с ЭП.
Работа с ЭП на определенном веб-портале осуществляется при помощи интерфейса этого портала. Интерфейсы могут быть разные, но базовые сценарии сходны — это загрузка или создание документа и последующее его подписание ЭП. Веб-портал использует плагин, который совершает необходимые операции по созданию или проверке ЭП, и результат работы попадает на серверы информационной системы.
Чтобы начать работать на электронной торговой площадке, пользователю необходимо пройти аккредитацию и приложить копии требуемых документов, подписанных ЭП. В дальнейшем, участвуя в электронных торгах, все действия подтверждаются при помощи ЭП, и эта информация в юридически значимом виде сохраняется на серверах электронной торговой площадки.
Часто в процессе работы c веб-ориентированными информационными системами у пользователей возникают вопросы: почему мой сертификат не принимается системой? как проверить подлинность сертификата? Ответы на первый вопрос могут быть разными, но основных, как правило, три:
- Сертификат не подходит для работы в данной информационной системе.
- Недействительность сертификата (сертификат выпущен недоверенным УЦ, сертификат отозван, срок действия сертификата истек).
- Различные технические проблемы, которые могут зависеть как от площадки, так и от пользователя (например, неправильно настроено рабочее место).
Почему иногда сертификат не проходит проверку подлинности на портале госуслуг?
Обратите внимание на то, что Постановление Правительства РФ от 27.08.2018 № 996 расширило действие простой ЭП на портале госуслуг. Ранее ее использование ограничивалось выполнением лишь элементарных действий, например, просмотром личного кабинета. Более серьезные операции требовали применения усиленной ЭП. Но, чтобы ее получить, нужно оплатить стоимость флеш-носителя, на котором она выдается в УЦ. Предполагается, что это нововведение позволит сократить расходы заявителей, связанные с выпуском физического носителя сертификата ключа ЭП.
Если резюмировать все описанное выше, можно отметить, что работа с усиленной ЭП имеет некоторый технологический порог вхождения. Для преодоления этого порога можно пользоваться готовыми программными решениями по автоматической настройке рабочего места и началу работы с усиленной ЭП, что существенно облегчает процесс.
Электронная подпись — где и как получить и поставить ЭЦП? — СКБ Контур
Чтобы поставить электронную подпись (ЭП), нужно владеть ключом ЭП. Ключ ЭП называется закрытым ключом, а ключ проверки ЭП — открытым. Для создания ЭП используется специальный инструмент — средство ЭП.
Виды электронной подписи
Различают два вида ЭП:
- Простая электронная подпись (позволяет лишь установить авторство документа, требует наличия ключа ЭП).
- Усиленная электронная подпись (формируется с помощью специальных криптографических алгоритмов). Может быть неквалифицированной и квалифицированной.
Простая ЭП используется в случаях, когда на аналогичном бумажном документе не требуется наличие печати. Такая подпись может только подтвердить личность подписанта.
Для усиленной неквалифицированной ЭП характерен ряд принципиальных качеств:
1) получается в результате криптографического преобразования информации с использованием ключа ЭП;
2) благодаря средству ЭП и ключу проверки помогает определить авторство электронного документа и установить изменения в документе после его подписания;
3) создается с использованием средств ЭП.
Если к этим качествам добавить еще два, то получится усиленная квалифицированная ЭП. При этом будет ошибкой считать, что усиленная квалифицированная ЭП является в то же время усиленной неквалифицированной ЭП.
О каких двух дополнительных признаках идет речь?
1) ключ проверки ЭП должен содержаться в квалифицированном сертификате ключа проверки ЭП;
2) средство ЭП, которое используется для создания и проверки, должно получить подтверждение соответствия требованиям, предусмотренным законом и ФСБ для средств ЭП.
Усиленная квалифицированная ЭП предоставляет ее владельцу максимум возможностей с правовой точки зрения. В то же время к ней предъявляются высокие требования.
Сертификат ключа проверки электронной подписи
В Федеральном законе от 06.04.2011 № 63-ФЗ говорится о том, что для подтверждения принадлежности ключа проверки ЭП автору документа сертификат может не использоваться. Сейчас он требуется только для квалифицированной ЭП.
Квалифицированный сертификат включает следующую информацию:
1) уникальный номер квалифицированного сертификата, даты начала и окончания его действия;
2) для физлица: ФИО и СНИЛС владельца сертификата;
для юрлица: наименование, место нахождения, ИНН и ОГРН владельца сертификата;
3) ключ проверки ЭП;
4) наименования средств ЭП и средств удостоверяющего центра (УЦ), с помощью которых созданы ключ ЭП, ключ проверки ЭП УЦ, квалифицированный сертификат;
6) наименование и место нахождения аккредитованного УЦ, который выдал квалифицированный сертификат, номер квалифицированного сертификата УЦ;
7) ограничения использования квалифицированного сертификата.
Нужна электронная подпись? Подберите сертификат под вашу задачу
Требования к форме квалифицированного сертификата установлены Приказом ФСБ РФ от 27.12.2011 № 795. Для ограничения использования сертификата есть, например, дополнение keyUsage, содержащее серию флагов, с помощью которых устанавливается, где ключ проверки электронной подписи не может применяться. Флаг keyCertSign в дополнении keyUsage означает, что область использования ключа включает проверку подписей под квалифицированными сертификатами. Этот флаг не поднимается в квалифицированных сертификатах клиентов УЦ. А вот в квалифицированном сертификате, который выдан УЦ Минкомсвязи, этот флаг поднимается, что позволяет УЦ создавать свою квалифицированную ЭП в сертификатах своих клиентов.
Аккредитованный удостоверяющий центр
Как уже было сказано выше, сертификат ключа проверки ЭП выдает УЦ в электронном или бумажном виде. УЦ, подтвердивший соответствие требованиям закона в Минкомсвязи, становится аккредитованным УЦ и получает право выдавать квалифицированные сертификаты (список аккредитованных УЦ).
При выдаче квалифицированного сертификата аккредитованный УЦ должен не только установить личность обратившегося лица, но и внести в специальную базу данных (реестр сертификатов) серию, номер и дату выдачи документа, использовавшегося для установления личности.
Аккредитованный УЦ должен регулярно публиковать специальную выписку из реестра сертификатов (список отозванных сертификатов), содержащую номера квалифицированных сертификатов, которые прекратили действие по решению суда или по обращению владельца сертификата.
Подробно об обязанностях и функционале аккредитованного УЦ написано в ст. 15 Федерального закона от 06.04.2011 № 63-ФЗ.
Чтобы получить электронную подпись, для начала нужно определить, какой сертификат ЭП вам нужен для работы, с какой целью вы будете его использовать. Если вы планируете получить сертификат в Удостоверяющем центре СКБ Контур, то воспользуйтесь мастером подбора сертификата и заполните заявку на сайте.
Подготовить необходимые документы перед визитом в центр выдачи можно с помощью мастера подбора документов.
Для получения сертификата придется лично прийти в центр выдачи с оригиналами документов или их заверенными копиями, оплаченным счетом или копией платежного поручения, заверенной банком.
Как подписать документ электронной подписью
Допустим, вы получили квалифицированный сертификат электронной подписи и хотите начать им пользоваться. Что для этого нужно?
- Прежде чем подписать документ ЭП, убедитесь в его окончательной версии. После того, как будет создана ЭП, внести в него изменения не получится.
- Позаботьтесь о наличии средств ЭП (в УЦ СКБ Контур настройка компьютера для работы с ЭП проходит автоматически) и программ для создания ЭП.
Для подписания ЭП документов формата Word и Excel есть несколько возможностей. Первая предполагает установку и использование платного программного модуля КриптоПро Office Signature (бесплатно он доступен только в рамках тестового периода). Однако у этого варианта есть несколько особенностей. Во-первых, алгоритм подписания в разных версиях Word отличается. Во-вторых, если создать подпись в одной версии программы, а проверять в другой, то результат может оказаться некорректным.
Модуль КриптоПро PDF используется для создания и проверки ЭП в Adobe Acrobat, Adobe Reader и Adobe LiveCycle ES.
Установка специальной программы (например, КриптоАРМ) позволит подписывать документы любого формата: rar,.jpeg,.png,.ppt, видео, базы данных и т.д. Но бесплатно доступна только базовая версия КриптоАРМ Старт, в которой заложен минимум возможностей. Остальные версии — платные, и цена зависит от функциональности.
Наконец, с помощью бесплатного веб-сервиса Контур.Крипто можно подписать документ любого формата без необходимости установки специальных программ. Сервис работает с подписью, выпущенной любым УЦ. С помощью Контур.Крипто вы можете создать и проверить ЭП, зашифровать и расшифровать электронный файл, а также подписать пакет файлов или архивов, создать подпись документа двумя и более лицами. При этом в сервисе есть ограничение на вес документа — до 100 Мб, и он работает только в Microsoft Windows. Кроме того, сервис позволяет создать только отсоединенную подпись. Проверить подпись, созданную в Контур.Крипто, можно в любой программе, которая работает с отсоединенными ЭП.
с чем ее есть, и как не подавиться. Часть 1 / Хабр
Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.Данный цикл статей предназначен для того, чтобы раскрыть «тайное знание» о том, что это такое, когда и как это можно и нужно использовать, какие есть плюсы и минусы.
Естественно, статьи пишутся не для специалистов по криптографии, а для тех, кто эту самую криптографию будет использовать, или же только начинает ее изучение, желая стать специалистом, поэтому я старался максимально упростить понимание всего процесса, приводя аналогии и рассматривая примеры.
Зачем нам вообще что-то подписывать? Естественно, чтобы удостоверить, что мы ознакомились с содержимым, согласны (а иногда наоборот, не согласны) с ним. А электронная подпись еще и защищает наше содержимое от подмены.
Итак, начать, естественно, стоит с того, что такое электронная цифровая подпись.
В самом примитивном случае это — результат хэш-функции. Что это такое лучше меня разъяснит википедиа, в нашем же случае главное, что с высокой степенью вероятности ее результат не повторяется для разных исходных данных, а также что результат этой функции мало того, что короче исходных данных, так еще по нему исходную информацию восстановить нельзя. Результат функции называют хэшем, а применение этой функции к данным называют хешированием. Грубо, можно назвать хэш функцию архивированием, в результате чего мы получаем очень маленькую последовательность байт, но восстановить исходные данные из такого «архива» нельзя.
Итак, мы читаем файлик в память, хэшируем прочитанное. И что, уже получаем ЭЦП? Почти. Наш результат с большой натяжкой можно назвать подписью, но, все же, полноценной подписью он не является, потому что:
1. Мы не знаем, кто сделал данную подпись
2. Мы не знаем, когда была сделана подпись
3. Сама подпись не защищена от подмены никак.
4. Ну и да, хэш функций много, какая из них использовалась для создания этого конкретного хэша?
Поэтому применять к хэшу слово «подпись» еще нехорошо, будем называть его дальше просто хэш.
Вы посылаете ваш файл другому человеку, допустим, по почте, будучи уверенными, что он точно получит и прочитает именно то, что вы послали. Он же, в свою очередь, тоже должен хэшировать ваши данные и сравнить свой результат с вашим. Если они совпали — все хорошо. Это значит что данные защищены? Нет.
Ведь хэшировать может кто угодно и когда угодно, и вы никогда не докажете, что он хэшировал не то, что вы послали. То есть, если данные будут перехвачены по дороге злоумышленником, или же тот, кому вы посылаете данные — не очень хороший человек, то данные могут быть спокойно подменены и прохэшированы. А ваш получатель (ну или вы, если получатель — тот самый нехороший человек) никогда не узнает, что он получил не то, что вы отправляли, или сам подменил информацию от вас для дальнейшего использования в своих нехороших целях.
Посему, место для использование чистой хэш функции — транспорт данных в пределах программы или программ, если они умеют общаться между собой. Собственно, с помощью хэш функций вычисляются контрольные суммы. И эти механизмы защищают от случайной подмены данных, но не защищают от специальной.
Но, пойдем дальше. Нам хочется защитить наш результат хеширования от подмены, чтобы каждый встречный не мог утверждать, что это у него правильный результат. Для этого самое очевидное что (помимо мер административного характера)? Правильно, зашифровать. А ведь с помощью шифрования же можно и удостоверить личность того, кто хэшировал данные! И сделать это сравнительно просто, ведь есть ассиметричное шифрование. Да, оно медленное и тяжелое, но ведь нам всего-то и надо — зашифровать маленькую последовательность байт. Плюсы такого действия очевидны — для того, чтобы проверить нашу подпись, надо будет иметь наш открытый ключ, по которому личность зашифровавшего (а значит, и создавшего хэш) можно легко установить.
Суть этого шифрования в следующем: у вас есть закрытый ключ, который вы храните у себя. И есть открытый ключ. Открытый ключ вы можете всем показывать и раздавать, а закрытый — нет. Шифрование происходит с помощью закрытого ключа, а расшифровывание — с помощью открытого.
Приводя аналогию, у вас есть отличный замок и два ключа к нему. Один ключ замок открывает (открытый), второй — закрывает (закрытый). Вы берете коробочку, кладете в нее какую-то вещь и закрываете ее своим замком. Так, как вы хотите, чтобы закрытую вашим замком коробочку открыл ее получатель, то вы открытый, открывающий замок, ключик спокойно отдаете ему. Но вы не хотите, чтобы вашим замком кто-то закрывал коробочку заново, ведь это ваш личный замок, и все знают, что он именно ваш. Поэтому закрывающий ключик вы всегда держите при себе, чтобы кто-нибудь не положил в вашу коробочку мерзкую гадость и не говорил потом, что это вы ее положили и закрыли своим замком.
И все бы хорошо, но тут сразу же возникает проблема, а, на самом деле, даже не одна.
1. Надо как-то передать наш открытый ключ, при этом его должна понять принимающая сторона.
2. Надо как-то связать этот открытый ключ с нами, чтобы нельзя было его присвоить.
3. Мало того, что ключ надо связать с нами, надо еще и понять, какой зашифрованный хэш каким ключом расшифровывать. А если хэш не один, а их, скажем, сто? Хранить отдельный реестр — очень тяжелая задача.
Все это приводит нас к тому, что и закрытый ключ, и наш хэш надо хранить в каких-то форматах, которые нужно стандартизировать, распространить как можно шире и уже тогда использовать, чтобы у отправителя и получателя не возникало «трудностей перевода».
Как водится у людей, к чему-то единому прийти так и не смогли, и образовалось два больших лагеря — формат OpenPGP и формат S/MIME + X.509. Но об этом уже в следующей статье.
Часть 2
Расширение файлаEDS — Как открыть файл в формате EDS?
Вероятно, причина, по которой вы находитесь на этом веб-сайте, — проблема с открытием файла .eds. Полное имя файла — Ensoniq SQ-80 Disk Image. Если при двойном щелчке по значку файла отображается сообщение о том, что для открытия файла необходимы дополнительные программы, вы найдете список полезных программ внизу страницы.Расширение файла .eds (образ диска Ensoniq SQ-80)
Категория | Разработчик / Продюсер | Описание файла | Популярность |
---|---|---|---|
Файлы образов дисков | НЕТ | Ensoniq SQ-80 Образ диска |
Программы, использующие это расширение файла:.eds
ADS | OS | Программное обеспечение |
---|---|---|
Окна |
|
Расширение файла .eds может использоваться другими программами. Если у вас есть полезная информация о типе файлов .eds, которая может помочь другим пользователям HowOpen.org, пришлите их нам, и мы обновим нашу базу данных.
Посещая наш сайт, вы наверняка спрашиваете себя:
- Какое приложение может открыть .eds файл?
- Как открыть .eds файл?
- Что такое файл .eds?
- Как преобразовать файл .eds?
- Где я могу найти информацию о расширении файлов .eds? (например, на сайте расширения файлов)
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
|
Руководство GNU ‘ed’
Руководство GNU ‘ed’Линейный редактор GNU
Это руководство предназначено для GNU ed (версия 1.17, 6 января 2021 г.).
Авторские права © 1993, 1994, 2006-2021 Free Software Foundation, Inc.
Разрешено копировать, распространять и / или изменять этот документ. в соответствии с условиями лицензии GNU Free Documentation License, версия 1.3 или любая более поздняя версия, опубликованная Free Software Foundation; без Неизменные разделы, отсутствие текстов на передней обложке и без текстов на задней обложке.
1 Обзор
GNU ed это строчно-ориентированный текстовый редактор. Он используется для создания, отображения, изменения и иным образом управлять текстовыми файлами как в интерактивном режиме, так и через оболочку скрипты. Ограниченная версия ed, красная, может редактировать файлы только в текущем каталог и не может выполнять команды оболочки. Эд — «стандартный» текст редактор в том смысле, что это оригинальный редактор для Unix, и, следовательно, широко имеется в наличии.Однако в большинстве случаев он заменяется полноэкранным редакторы, такие как GNU Emacs или GNU Moe.
GNU ed основан на алгоритме редактора, описанном у Брайана В. Кернигана и Книга П. Дж. Плауджера «Программные средства на Паскале», Аддисон-Уэсли, 1981.
Если вызывается с аргументом файл , то читается копия файла в буфер редактора. В эту копию вносятся изменения, а не напрямую в файл сам . После выхода из ed никаких изменений не явно сохраненные с помощью команды ‘ w ‘, теряются.
Редактирование выполняется в двух различных режимах: команда и ввод . При первом вызове ed находится в командном режиме. В этом режиме команды считываются из стандартного ввода и выполняются для управления содержимое буфера редактора. Типичная команда может выглядеть так:
, s / старый / новый / g
, который заменяет все вхождения строки старый на новый .
Когда вводится команда, например « a » (добавить), « i » (вставить) или Дано ‘ c ‘ (изменение), ed переходит в режим ввода.Это основные средства добавления текста в файл. В этом режиме нет команд. имеется в наличии; вместо этого стандартный ввод записывается непосредственно в редактор буфер. Строка состоит из текста до <новая строка> символ. Режим ввода завершается вводом единственного точка (‘. ‘) в строке.
Все команды ed работают с целыми строками или диапазонами строк; например, команда ‘ d ‘ удаляет строки; команда « м » перемещается линии и так далее.Можно изменить только часть строки с помощью средства замены, как в примере выше. Однако даже здесь Команда « s » применяется ко всем строкам одновременно.
Обычно команды ed состоят из нуля или более строк адресов, за которыми следует односимвольная команда и, возможно, дополнительные параметры; т.е. команды имеют структуру:
[ адрес [, адрес ]] команда [ параметры ]
Адрес es указывает строку или диапазон строк, которые будут затронуты по команде.Если указано меньше адресов, чем принимает команда, затем предоставляются адреса по умолчанию.
2 Введение в редактирование строк
ed был создан вместе с операционной системой Unix Кеном Томпсон и Деннис Ричи. Это уточнение его более сложного, программируемый предшественник, QED , к которому Томпсон и Ричи использовали уже добавлены возможности сопоставления с образцом (см. Регулярные выражения).
Для целей этого руководства, практическое знание оболочки Unix sh и файловая система Unix рекомендуется, так как ed предназначен для тесного взаимодействия с ними.(См. руководство по bash для подробностей о bash).
Основное различие между линейными редакторами и редакторами дисплея редакторы дисплея обеспечивают мгновенную обратную связь с командами пользователя, тогда как линейным редакторам иногда требуется длительный ввод, прежде чем любые эффекты видел. Преимущество мгновенной обратной связи, конечно, в том, что в случае ошибки сделано, его можно исправить немедленно, прежде чем будет нанесен новый ущерб. Редактирование в ed. требует большей стратегии и предусмотрительности; но если вы справитесь с задачей, это может быть довольно эффективно.
Большая часть синтаксиса команд ed используется совместно с другими утилитами Unix.
Как и в случае с оболочкой,
При первом открытии ed ожидается, что ему скажут, что делать, но не подсказывает нам, как оболочка. Итак, давайте начнем с рассказа ed для этого используйте команду
( подсказка ):
$ ed п *
По умолчанию ed использует звездочку (‘ * ‘) в качестве командной строки для избегайте путаницы с командной строкой оболочки (‘ $ ‘).
Мы можем запускать команды оболочки Unix ( sh ) изнутри ed поставив перед ними префикс (восклицательный знак, он же «бах»).За пример:
*! Дата Пн, 26 июня, 10:08:41 PDT 2006 г. ! *! for s в hello world; делать echo $ s; сделанный Здравствуйте Мир ! *
Пока это ничем не отличается от выполнения команд в оболочке Unix.
Но допустим, мы хотим отредактировать вывод команды или сохранить его в
файл. Сначала мы должны захватить вывод команды во временное место
называется буфером , где ed может получить к нему доступ. Закончено
с помощью команды
* р! Кал -м 137 *
Здесь ed сообщает нам, что он только что прочитал 137 символов в буфер редактора — i.е., вывод команды cal , который печатает простой календарь ASCII. Для отображения содержимого буфера мы введите команду
( print ) (не путать с командной строки, которая должна быть в верхнем регистре!). Чтобы указать диапазон строк в буфер, который должен быть напечатан, мы ставим перед командой префикс <,> (запятая), что означает «весь буфер»:
*, п. Июнь 2006 г. Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 *
Теперь давайте запишем содержимое буфера в файл с именем ‘ junk ‘ с
* ш утиль 137 *
Надо ли говорить? Хорошая практика — часто записывать содержимое буфера, так как незаписанные изменения в буфере будут потеряны при выходе изд .
Примеры сеансов ниже иллюстрируют некоторые основные концепции редактирования строк. с изд. . Начнем с создания файла « sonnet » с некоторыми помощь от Шекспира. Как и в случае с оболочкой, все входные данные для ed должны за ним следует символ <новая строка>. Команды, начинающиеся с « # » воспринимаются как комментарии и игнорируются. Строки режима ввода, которые начинаются с ‘ # ‘ — это просто дополнительный ввод.
$ ed # Команда 'a' предназначена для добавления текста в буфер редактора.а Не печалься больше о том, что ты сделал. У роз есть шипы, а у роз - грязь. Облака и затмения окрашивают луну и солнце, И отвратительная язва живет в сладчайшем бутоне. . # Ввод одной точки в строке возвращает ed в командный режим. # Теперь записываем буфер в файл ' sonnet ' и выходим: w сонет 183 # ed сообщает количество написанных символов. q $ ls -l всего 2 -rw-rw-r-- 1 alm 183 10 ноя 01:16 сонет $
В следующем примере исправлены некоторые опечатки в файле « sonnet ».
$ ed сонет 183 # Начните с вывода буфера на терминал с помощью команды ' p '. # ',' Означает «все строки». ,п Не печалься больше о том, что ты сделал. У роз есть шипы, а у роз - грязь. Облака и затмения окрашивают луну и солнце, И отвратительная язва живет в сладчайшем бутоне. # Выберите строку 2 для редактирования. 2 У роз есть шипы, а у роз - грязь. # Используйте заменяющую команду, ' s ', чтобы заменить 'filvers' на 'silver', # и распечатайте результат.s / filvers / silver / p Розы имеют шипы, а серебряные - грязь. # И исправьте написание слова «фонтаны». s / utia / untai / p У роз есть шипы, а у серебряных фонтанов - грязь. w сонет 183 q $
Поскольку ed ориентирован на линии, мы должны указать ему, какая строка или диапазон строк, которые мы хотим отредактировать. В приведенном выше примере мы делаем это с помощью указание номера строки или последовательности в буфере. В качестве альтернативы, мы могли бы указать уникальную строку в строке, например.г., ‘ / filvers / ‘, где ‘/‘ ограничивают рассматриваемую строку. Последующие команды влияют только на выбранную строку, также известную как текущая строка. Затем части этой строки заменяются заменяющая команда, синтаксис которой: « s / старый / новый /«.
Хотя ed принимает только одну команду в строке, команда печати « p » является исключением и может добавляться в конец большинства команд.
В следующем примере к нашему сонету добавляется заголовок.
$ ed сонет 183 а Сонет # 50 . ,п Не печалься больше о том, что ты сделал. У роз есть шипы, а у серебряных фонтанов - грязь. Облака и затмения окрашивают луну и солнце, И отвратительная язва живет в сладчайшем бутоне. Сонет # 50 # Заголовок добавлен в конец; мы должны были использовать '0a' # добавить "перед первой строкой". # Переместите заголовок в нужное место.5 мин. Сонет # 50 # Заголовок теперь является первой строкой, а текущий адрес был # также установить на адрес этой строки. ,п Сонет # 50 Не печалься больше о том, что ты сделал. У роз есть шипы, а у серебряных фонтанов - грязь. Облака и затмения окрашивают луну и солнце, И отвратительная язва живет в сладчайшем бутоне. wq сонет 195 $
Когда ed открывает файл, текущий адрес изначально устанавливается на адрес последней строки этого файла.Аналогично команда перемещения « m » устанавливает текущий адрес на адрес последней перемещенной строки.
Связанные программы или подпрограммы: vi (1) , sed (1) , регулярное выражение (3) , sh (1) . Соответствующие документы:
Дополнительные документы к руководству пользователя Unix: 12 — 13
Б. В. Керниган и П. Дж. Плаугер: «Программные средства на языке Паскаль», Аддисон-Уэсли, 1981.
3 Вызов ed
Формат для запуска ed :
изд. [ опций ] [ файл ] красный [ параметры ] [ файл ]
файл указывает имя файла для чтения.Если файл с префиксом bang (!), тогда он интерпретируется как команда оболочки. В в этом случае то, что читается, является стандартным выводом файла , выполняемого по ш (1) . Чтобы прочитать файл, имя которого начинается с ура, перед именем поставьте обратную косую черту ( \ ). Имя файла по умолчанию установлено в файл только если он не имеет префикса на ура.
ed поддерживает следующие параметры:
-
-h
--help
- Распечатать информационное справочное сообщение с описанием параметров и выйти.
-
-V
--version
- Распечатать номер версии ed на стандартном выходе и выходе.
Этот номер версии должен быть включен во все отчеты об ошибках.
-
-E
--extended-regexp
- Использовать расширенные регулярные выражения вместо основных регулярных выражений
утверждено POSIX.
-
-G
- традиционный
- Обеспечивает обратную совместимость.Это влияет на поведение ed команды ‘ G ‘, ‘ V ‘, ‘ f ‘, ‘ l ‘, ‘ m ‘,
« t » и « !! ‘. Если поведение этих команд по умолчанию
не кажется знакомым, тогда попробуйте вызвать ed с этим переключателем.
-
-l
--loose-exit-status
- Не выходить с плохим статусом, если команда завершилась неудачно (например,
если команда замены не находит ничего для замены).Это может быть полезно
когда ed вызывается как редактор для crontab.
-
-p
строка--prompt =
строка - Задает строку командной строки и включает подсказки. Отображение подсказки
Строку можно включать и выключать с помощью команды « P ».
-
-r
- ограничено
- Работа в ограниченном режиме. Этот режим отключает редактирование файлов вне
текущий каталог и выполнение команд оболочки.
-
-s
- тихо
- тихо
- Подавляет диагностику, печать счетчиков байтов с помощью ‘ e ‘,
Команды « E », « r » и « w », а также «! ‘после ! ‘команда. Эта опция может быть полезна, если стандарт ed ввод из сценария.
-
-v
--verbose
- Подробный режим; печатает объяснения ошибок.Это может быть включено и выключено командой « H «.
Статус выхода: 0, если ошибок не было; в противном случае> 0.
Адресация 4 линий
Адрес представляет собой номер строки в буфере. изд поддерживает текущий адрес , который обычно предоставляется команды в качестве адреса по умолчанию, если ничего не указано. Когда файл первое чтение, текущий адрес устанавливается на адрес последней строки файла. Как правило, текущий адрес устанавливается на адрес последняя строка, на которую воздействует команда.
Единственным исключением из правила, согласно которому адреса представляют номера строк, является адрес ‘ 0 ‘ (ноль). Это означает «в начале буфера», и действует везде, где это имеет смысл.
Диапазон адресов — это два адреса, разделенных запятой (‘, ‘) или точка с запятой (‘; ‘). В диапазоне, разделенном точкой с запятой, текущий адрес (‘. ‘) устанавливается на первый адрес до того, как второй адрес будет рассчитано. Эту функцию можно использовать для установки начальной линии поиска. если второй адрес содержит регулярное выражение.Ценность первого адрес в диапазоне не может превышать значение секунды.
Адреса можно опускать с обеих сторон запятой или точки с запятой разделитель. Если в диапазоне указан только первый адрес, то второй адрес устанавливается на указанный адрес. Если бы только второй адрес задано, результирующие пары адресов будут ‘ 1, адрес ‘ и ‘.; Адрес ‘ соответственно. Если задан набор адресов n где n > 2, то соответствующий диапазон определяется последние два адреса в кортеже n .Если только один адрес ожидается, то используется последний адрес. Ошибочно давать количество адресов в команде, для которой требуются нулевые адреса.
Линейный адрес строится следующим образом:
-
.
- Текущая строка (адрес) в буфере.
-
$
- Последняя строка в буфере.
- n
- n -я строка в буфере, где n — число в диапазоне
« 0, долларов».
-
+
n - Следующая строка n , где n — неотрицательное число.
-
-
n - n -я предыдущая строка, где n — неотрицательное число.
-
+
- Следующая строка. Это эквивалентно « +1 » и может быть повторено с
кумулятивный эффект.
-
-
- Предыдущая строка.Это эквивалентно « -1 » и может повторяться.
с накопительным эффектом.
-
,
- Строки с первой по последнюю в буфере. Это эквивалентно
диапазон адресов ‘ 1, $ ‘.
-
;
- Текущая до последних строк в буфере. Это эквивалентно
диапазон адресов ‘.; $ ‘.
-
/
re/
- Следующая строка содержит регулярное выражение re .Поиск
переносится в начало буфера и продолжается до текущего
линия, если необходимо.
-
?
re?
- Предыдущая строка, содержащая регулярное выражение re . Поиск
переносится до конца буфера и продолжается до текущей строки, если
необходимо.
-
'x
- Пара символов апостроф-x обращается к строке, ранее отмеченной команда ‘ k ‘ (отметка), где ‘ x ‘ — строчная буква из переносимый набор символов « [a-z] «.
Адреса могут сопровождаться одним или несколькими адресными смещениями, необязательно разделенные пробелом. Смещения строятся следующим образом:
- ‘ + ‘ или ‘ — ‘, за которым следует число, добавляет или вычитает указанное количество строк до или от адреса.
- ‘ + ‘ или ‘ — ‘ без числа, добавляет или вычитает 1 к или с адреса.
- Число добавляет указанное количество строк к адресу.
Если значение промежуточного адреса отрицательное или отрицательное, это не ошибка. больше, чем адрес последней строки в буфере. Это ошибка если конечное значение адреса отрицательное или больше адреса последняя строка в буфере. Это ошибка, если поиск re не может найти подходящую строку.
5 Регулярные выражения
Регулярные выражения — это шаблоны, используемые при выборе текста. Например, команда ed
г / струна /
печатает все строки, содержащие строку .Регулярные выражения также используется командой ‘ s ‘ для выбора старого текста, который нужно заменить на новый текст.
Помимо указания строковых литералов, регулярные выражения могут представляют классы строк. Строки, представленные таким образом, называются соответствует соответствующему регулярному выражению. Если это возможно регулярное выражение для соответствия нескольким строкам в строке, затем крайнее левое совпадение выбрано. Если регулярное выражение позволяет переменное количество совпадающих символов, самая длинная последовательность, начиная с эта точка совпадает.
Нулевое значение re эквивалентно последнему встреченному re .
Следующие символы используются при построении регулярных выражений используя базовый синтаксис регулярных выражений POSIX:
- c
- Любой символ c , не указанный ниже, включая « {», «} »,
« (», «) », « <» и «> » соответствует самому себе.
-
\
c - Любой экранированный обратной косой чертой символ c , кроме ‘ {‘,
‘} ‘, ‘ (‘, ‘) ‘, ‘ <‘, ‘> ‘, ‘ b ‘, ‘ B ‘,
« w », « W », « + » и «? ‘, соответствует самому себе.
-
.
- Соответствует любому одиночному символу.
-
[
char-class]
- Соответствует любому одиночному символу в char-class . Чтобы включить «] »
в char-class это должен быть первый символ. Диапазон
символы могут быть указаны путем разделения конечных символов
диапазон с ‘ — ‘, например, ‘ a-z ‘ указывает нижний регистр
символы.Следующие буквальные выражения также могут использоваться в char-class для указания наборов символов:
[: alnum:] [: cntrl:] [: lower:] [: space:] [: alpha:] [: digit:] [: print:] [: upper:] [: blank:] [: graph:] [: punct:] [: xdigit:]
Если ‘ — ‘ появляется как первый или последний символ char-class , тогда он совпадает с самим собой. Все остальные символы в char-class соответствуют самих себя.
Выкройки в char-class вида:
[. '- это первый символ регулярного выражения, затем привязывает регулярное выражение к началу строки. Иначе, он соответствует самому себе.
-
$
- Если « $ » является последним символом регулярного выражения, он привязывает
регулярное выражение до конца строки. В противном случае он соответствует самому себе.
-
\ (
re\)
- Определяет (возможно, нулевое) подвыражение re .Подвыражения могут быть
вложенные. Последующая обратная ссылка на форму ' \ n ', где
n - число в диапазоне [1,9], расширяется до текста, соответствующего
n -е подвыражение. Например, регулярное выражение
' \ (a.c \) \ 1 ' соответствует строке ' abcabc ', но не ' abcadc '.
Подвыражения упорядочиваются относительно их левого разделителя.
-
*
- Немедленное соответствие нулю или более повторений регулярного выражения
предшествующий этому.Регулярное выражение может состоять из одного символа
регулярное выражение или часть выражения. Если " * " - первое
символ регулярного выражения или части выражения, то он соответствует
сам. Оператор « * » иногда дает неожиданные результаты. За
Например, регулярное выражение " b * " соответствует началу
строка ' abbb ', в отличие от подстроки ' bbb ', поскольку нуль
match - единственный крайний левый совпадение.
-
\ {
n,
m\}
\ {
n, \}
\ {
n
Следующие расширения основных операторов регулярных выражений предшествуют обратной косой чертой ' \ ', чтобы отличить их от традиционных ed синтаксис.Они могут быть недоступны в зависимости от конкретного регулярного выражения реализация в вашей системе.
-
\ <
\>
- Закрепляет односимвольное регулярное выражение или часть выражения
сразу после него до начала (в случае « \ <») или
окончание (в случае ' \> ') слова , то есть в ASCII
максимальная строка буквенно-цифровых символов, включая символ подчеркивания (_).
-
\ `
\ '
- Безоговорочно соответствует началу' \` 'или окончанию' \ '' строки.
-
\?
- Опционально соответствует односимвольному регулярному выражению или
подвыражение, непосредственно предшествующее ему. Например, обычный
выражение ' a [bd] \? c ' соответствует строкам ' abc ', ' adc '
и « ac ». Если ' \? 'встречается в начале регулярного
выражения или подвыражение, тогда оно соответствует литералу '? '.
-
\ +
- Соответствует односимвольному регулярному выражению или части выражения
непосредственно перед ним один или несколько раз.Итак, регулярное выражение
« a \ + » - это сокращение от « aa * ». Если ' \ + ' встречается в
начало регулярного выражения или части выражения, тогда оно соответствует
буквальный ' + '.
-
\ b
- Соответствует началу или концу (нулевая строка) слова. Таким образом
регулярное выражение " \ bhello \ b " эквивалентно " \
-
\ B
- Соответствует (нулевой строке) внутри слова.
-
\ w
- Соответствует любому символу в слове.
-
\ W
- Соответствует любому символу не в слове.
6 команд
Все команды ed - одиночные символы, хотя для некоторых требуется дополнительные параметры. Если параметры команды распространяются на несколько строк, то каждая строка, кроме последней, должна заканчиваться обратная косая черта (' \ ').
Как правило, в каждой строке допускается не более одной команды. Однако большинство команды принимают суффикс печати, который может быть любым из ' p ' (печать), ' l ' (список) или ' n ' (перечислить), чтобы напечатать последнюю строку затронутые командой. Нельзя переносить более одного отпечатка суффикс, но ed допускает любую комбинацию неповторяющейся печати суффиксов и сочетает их эффекты. Если указана любая буква суффикса, она должен немедленно следовать команде.
Команды « e », « E », « f », « r » и « w » принимают необязательный параметр файла , отделенный от буквы команды одним или больше пробелов.
Прерывание (обычно
ed распознает следующие команды. Команды показаны вместе с адресом по умолчанию или диапазоном адресов, если они не указаны указан (в скобках).
-
(.) A
- Добавляет текст в буфер после адресуемой строки. Адрес
« 0 » (ноль) допустимо для этой команды; он помещает введенный текст в
начало буфера.Текст вводится в режиме ввода. Электрический ток
адрес устанавливается на адрес последней введенной строки или, если были
нет, в адресную строку.
-
(.,.) C
- Изменяет строки в буфере. Адресованные строки удаляются из
буфер, и на их место вставляется текст. Текст вводится в режиме ввода.
Текущий адрес устанавливается на адрес последней введенной строки или, если
их не было, на новый адрес строки после удаления последней строки;
если удаленные строки изначально находились в конце буфера, текущая
address устанавливается на адрес новой последней строки; если в
буфер, текущий адрес обнуляется.Удаленные строки копируются
в буфер обрезки.
-
(.,.) D
- Удаляет адресованные строки из буфера. Текущий адрес установлен на
новый адрес строки после удаления последней строки; если линии
удаленные изначально находились в конце буфера, установлен текущий адрес
по адресу новой последней строки; если в буфере не осталось строк,
текущий адрес обнулен. Удаленные строки копируются в разрез
буфер.
-
e
файл - Редактирует файл и устанавливает имя файла по умолчанию.Если файл нет
указано, то используется имя файла по умолчанию. Любые строки в буфере
удаляются до чтения нового файла. Текущий адрес установлен на
адрес последней строки в буфере.
Если файл имеет префикс "взрыва" (!), То он интерпретируется как команда оболочки, вывод которой должен быть прочитан (см. команду выхода оболочки '! 'ниже). В этом случае имя файла по умолчанию не изменяется.
Предупреждение выводится, если какие-либо изменения были внесены в буфер с последняя команда ' w ', которая записала весь буфер в файл.
-
E
файл - Безоговорочно редактирует файл . Это похоже на e
команда, за исключением того, что незаписанные изменения отменяются без предупреждения.
-
f
файл - Устанавливает имя файла по умолчанию файл . Если файл не указан,
тогда печатается имя файла без экранирования по умолчанию.
-
(1, $) g /
re/
список команд - Глобальная команда.Глобальная команда выполняет два прохода по файлу. На
первый проход, все адресованные строки соответствуют регулярному выражению re
отмечены. Затем, последовательно переходя от начала файла к
конец файла, данный список команд выполняется для каждого отмеченного
строка, с текущим адресом, установленным на адрес этой строки. Любая линия
изменен списком команд не помечен. Окончательное значение
текущий адрес - это значение, присвоенное последней командой в последнем
список команд выполнено.Если совпадающих строк не было, текущая
адрес не изменился. Выполнение списка команд останавливается на первом
ошибка.
Первая команда command-list должна появиться в той же строке, что и Команда ' g '. Остальные команды command-list должны появиться на отдельные строки. Все строки многострочного списка команд , кроме последней строка должна заканчиваться обратной косой чертой (' \ '). Любые команды разрешено, за исключением " g ", " G ", " v " и " V ".Модель '. ' завершение режима ввода команд « a », « c » и « i » может быть опущено, если это будет последняя строка command-list . По умолчанию Только новая строка в списке команд эквивалентна команде ' p '. Если ed вызывается с параметром командной строки ' -G ', затем новая строка в списке команд эквивалентна команде '. + 1p '.
-
(1, $) G /
re/
- Интерактивная глобальная команда.Интерактивно редактирует адресованные строки
соответствие регулярному выражению re . Для каждой совпадающей строки строка
печатается, устанавливается текущий адрес, и пользователю предлагается
введите список команд . Конечное значение текущего адреса
значение, присвоенное последней выполненной командой. Если бы не было
совпадающие строки, текущий адрес не изменяется.
Формат списка команд такой же, как у ' g ' команда. Сама новая строка действует как пустой список команд.Сингл ' & ' повторяет последний ненулевой список команд.
-
h
- Справка. Печатает объяснение последней ошибки.
-
H
- Включает печать объяснений ошибок. По умолчанию объяснения
не печатается. Рекомендуется, чтобы сценарии ed начинались с этой команды
для помощи в отладке.
-
(.) I
- Вставляет текст в буфер перед адресуемой строкой.Адрес
« 0 » (ноль) допустимо для этой команды; он помещает введенный текст в
начало буфера. Текст вводится в режиме ввода. Электрический ток
адрес устанавливается на адрес последней введенной строки или, если были
нет, в адресную строку.
-
(.,. + 1) j
- Присоединяет адресные строки, заменяя их одной строкой, содержащей их
присоединенный текст. Если указан только один адрес, эта команда ничего не делает. Если
линии соединяются, замененные строки копируются в буфер вырезки, а
текущий адрес устанавливается на адрес присоединенной линии.В противном случае текущий
адрес не изменился.
-
(.) Kx
- Отмечает строку строчной буквой « x ». Затем линия может быть
адресуется как "" x "(то есть одинарная кавычка, за которой следует" x ") в
последующие команды. Отметка не снимается, пока строка не будет удалена
или иным образом модифицированные. Текущий адрес не изменился.
-
(.,.) L
- Список команд. Однозначно печатает адресные строки.Конец каждого
строка помечена " $ ", а каждый символ " $ " внутри
текст печатается с предыдущей обратной косой чертой. Специальные символы
печатается как escape-последовательности. Текущий адрес устанавливается на адрес
последней напечатанной строки.
-
(.,.) M (.)
- Перемещает строки в буфере. Адресованные строки перемещаются после
правый адрес назначения. Адрес назначения ' 0 ' (ноль)
действительно для этой команды; перемещает адресованные строки в начало
буфера.Если адрес назначения находится в пределах
диапазон перемещаемых строк. Текущий адрес устанавливается на новый
адрес последней перемещенной строки.
-
(.,.) N
- Номер команды. Печатает адресованные строки, предшествующие каждой строке ее
номер строки и
. Текущий адрес устанавливается на адрес последней напечатанной строки.
-
(.,.) P
- Печатает адресные строки. Текущий адрес устанавливается на адрес
последняя напечатанная строка.
-
P
- Включает и выключает командную строку. Если не указана строка приглашения
с параметром командной строки ' -p ' командная строка по умолчанию
выключено. Строкой приглашения по умолчанию является звездочка (' * ').
-
q
- Выходит из ed . Предупреждение печатается, если были внесены какие-либо изменения
в буфере с момента последней команды ' w ', которая записала все
буфер в файл.
-
Q
- Безоговорочный выход из ed . Это похоже на " q "
команда, за исключением того, что незаписанные изменения отменяются без предупреждения.
-
($) r
файл - Читает файл и добавляет его после адресуемой строки. Если файл
не указан, то используется имя файла по умолчанию. Если нет
имя файла по умолчанию перед командой, тогда имя файла по умолчанию устанавливается
в файл .В противном случае имя файла по умолчанию не изменяется. Адрес
« 0 » (ноль) допустимо для этой команды; он читает файл в
начало буфера. Текущий адрес устанавливается на адрес
прочитана последняя строка или, если ее не было, до адресуемой строки.
Если файл имеет префикс "взрыва" (!), То он интерпретируется как команда оболочки, вывод которой должен быть прочитан (см. команду выхода оболочки '! 'ниже). В этом случае имя файла по умолчанию не изменяется.
-
(.,.) S /
re/
замена/
- Замена команды. Заменяет текст в адресных строках, совпадающий с обычным
выражение re с заменой . По умолчанию только первое совпадение
в каждой строке заменяется. Команда ' s ' принимает любую комбинацию
суффиксы ' g ', ' count ', ' l ', ' n ' и ' p '.Если указан суффикс « g » (глобальный), то каждое совпадение заменяется. В
Суффикс ' count ', где count - положительное число, вызывает
только считает -е совпадение, которое необходимо заменить. ' г ' и ' граф '
нельзя указать в одной команде. « l », « n » и « p » являются
обычные суффиксы печати. Если никакие замены не выполняются, это ошибка.
на любой из адресованных линий.Текущий адрес устанавливается на адрес
последняя строка, в которой произошла замена. Если линия разделена,
замена считается произведенной на каждой из новых строк. Если нет
подстановка выполняется, текущий адрес не меняется. Последняя строка
модифицированный копируется в буфер вырезки.
относительно и Замена может быть разделена любым другим символом чем <пробел>, <новая строка> и символы, используемые формой команда " s ", показанная ниже.Если последний разделитель опущен, то последняя затронутая строка печатается так, как если бы суффикс печати ' p ' был указано. Последний разделитель не может быть пропущен, если команда ' s ' является частью " g " или " v " command-list и не является последним в списке, потому что значение следующего ускользнуло новая строка станет неоднозначной.
Неэкранированный ' & ' в замене заменяется текущим совпавший текст.Последовательность символов ' \ m ', где m - это номер в диапазоне [1,9], заменяется на м -я обратная ссылка выражение совпадающего текста. Если соответствующая обратная ссылка выражение не совпадает, то последовательность символов ' \ m ' будет заменяется пустой строкой. Если замена состоит из одного «% », тогда используется замена из последней замены.
Строку можно разделить, добавив новую строку с обратной косой чертой (' \ ') в замене .Каждая обратная косая черта в замена удаляет особое значение (если оно есть) следующего символа.
-
(.,.) S
- Повторяет последнюю замену. Эта форма команды ' s ' принимает
суффиксы « g » и « » учитывают описанные выше суффиксы и любые
сочетание суффиксов « p » и « r ». Суффикс ' г '
переключает глобальный суффикс последней замены и сбрасывает
считать до 1.Суффикс ' p ' переключает суффиксы печати
последняя замена. Суффикс ' r ' вызывает re последнего
поиск, который будет использоваться вместо re последней замены (если
поиск происходил после подмены).
-
(.,.) T (.)
- Копирует (т. Е. Передает) адресные строки после правого
адрес назначения. Если адрес назначения - « 0 » (ноль),
строки копируются в начало буфера.Текущий адрес
установить на адрес последней скопированной строки.
-
u
- Отменяет действие последней команды, которая изменила что-либо в буфере
и восстанавливает текущий адрес до того, каким он был до команды. В
глобальные команды ' g ', ' G ', ' v ' и ' V ' рассматриваются как
одиночная команда по отмене. « u » - это собственный инверсный код; это может отменить только
последняя команда.
-
(1, $) v /
re/
список команд - Это похоже на команду ' g ' за исключением того, что она применяется
command-list для каждой из адресованных строк, не соответствующих
регулярное выражение re .
-
(1, $) V /
re/
- Это похоже на команду ' G ' за исключением того, что она интерактивна
редактирует адресованные строки, не соответствующие регулярному выражению re .
-
(1, $) w
файл - Записывает адресные строки в файл . Любое предыдущее содержание
файл потеряны без предупреждения. Если имя файла по умолчанию отсутствует,
тогда имя файла по умолчанию - , файл , в противном случае
без изменений.Если имя файла не указано, то имя файла по умолчанию -
используемый. Текущий адрес не изменился.
Если файл имеет префикс "взрыва" (!), То он интерпретируется как команда оболочки и адресные строки записываются на ее стандартный ввод, (см. команду выхода оболочки '! ' ниже). В этом случае по умолчанию имя файла не изменилось. Запись буфера в команду оболочки не предотвратить предупреждение пользователю при попытке перезаписать или сбросить буфер с помощью команд « e » или « q ».
-
(1, $) wq
файл - Записывает адресные строки в файл , а затем выполняет ' q '
команда.
-
(1, $) W
файл - Добавляет адресные строки в конец файла . Это похоже на
' w ', за исключением того, что предыдущее содержимое файла не
затертый. Текущий адрес не изменился.
-
(.) x
- Копирует (помещает) содержимое вырезанного буфера в после адресуемой
линия. Текущий адрес устанавливается на адрес последней скопированной строки.
-
(.,.) Y
- Копирует (восстанавливает) адресованные строки в буфер вырезания. Вырезанный буфер
перезаписывается последующими ' c ', ' d ', ' j ', ' s ' или
Команды ' y '. Текущий адрес не изменился.
-
(. + 1) z
n - Прокрутка.Печатает n строк за раз, начиная с адресуемой строки, и устанавливает размер окна до n . Если n не указан, то текущее окно размер используется. Размер окна по умолчанию равен размеру экрана минус две строки или 22 если невозможно определить размер экрана. Текущий адрес установлен на адрес последней напечатанной строки.
-
!
команда - Команда выхода из оболочки. Выполняет команду через sh (1) . Если
первый символ команды - «! ', то заменяется на
текст предыдущей '! команда '.Таким образом, « !! 'повторений
предыдущий ! команда '. ed не обрабатывает
Команда для обратной косой черты (' \ ') экранирует. Однако неэкранированный
«% » заменяется именем файла по умолчанию. Когда оболочка возвращается
от казни, а '! 'выводится на стандартный вывод. В
текущий адрес не изменился.
-
(.,.) #
- Начинает комментарий; остальная часть строки до новой строки игнорируется.Если
дается адрес строки, за которым следует точка с запятой, тогда текущий адрес
установить на этот адрес. В противном случае текущий адрес не изменится.
-
($) =
- Печатает номер адресуемой строки. Текущий адрес
без изменений.
-
(. + 1) <новая строка>
- Пустая команда. Только адрес печатает адресную строку. А
Само по себе
эквивалентно ' + 1p '. Текущий адрес установить на адрес печатаемой строки.
7 Ограничения
Если терминал зависает, ed пытается записать буфер в файл ed.hup или, если это не удается, на $ HOME / ed.hup .
ed обрабатывает файл аргументов для экранирования обратной косой черты, т.е. имя файла, любой символ, которому предшествует обратная косая черта (' \ '), интерпретируется буквально. Например, ' ed' hello \ tworld '' отредактирует файл " hellotworld ".
Если текстовый (не двоичный) файл не заканчивается символом новой строки, то ed добавляет один при чтении / записи. В случае двоичного файл, ed. не добавляет новую строку при чтении / записи. Двоичный Файл - это файл, содержащий хотя бы один символ ASCII NUL. Если последняя строка был изменен, читая пустой файл, например / dev / null, до запись предотвращает добавление новой строки в двоичный файл.
Чтобы отслеживать текстовые строки в буфере, ed использует двусвязный список структур, содержащий положение и размер каждой линия.Это приводит к накладным расходам на строку в размере 2 ' указателя ', длиной 1 ' int 'и 1' int '.
8 Диагностика
При возникновении ошибки, если ed вводит из обычного файла или вот документ, затем он выходит, иначе он печатает '? 'и возвращается в командный режим. Объяснение последней ошибки можно распечатать с помощью команда ' h ' (справка).
Если команда « u » (отменить) встречается в глобальном списке команд, то список команд выполняется только один раз.
Попытка выйти из ed или отредактировать другой файл перед записью измененный буфер приводит к ошибке. Если команда вводится второй время, это удается, но любые изменения в буфере теряются.
9 Сообщение об ошибках
Вероятно, в ed есть ошибки. Конечно есть ошибки и упущения в этом руководстве. Если вы сообщите о них, они будут исправлены. Если вы этого не сделаете, о них никто никогда не узнает, и они останутся незафиксированными на всю вечность, если не дольше.
Если вы обнаружите ошибку в ed , отправьте электронное письмо по адресу [email protected]. Включите номер версии, который вы можете найти, запустив ' ed --version '.
10 Лицензия свободной документации GNU
Версия 1.3, 3 ноября 2008 г.
Авторские права © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. http://fsf.org/ Всем разрешено копировать и распространять дословные копии. этого лицензионного документа, но его изменение не допускается.
- ПРЕАМБУЛА
Целью данной Лицензии является создание руководства, учебника или другого функционально-полезный документ бесплатно в смысле свободы: в гарантировать каждому реальную свободу копировать и распространять его, с модификацией или без нее, коммерчески или некоммерчески. Во-вторых, эта Лицензия предоставляет автору и издателю возможность получить признание за свою работу, не считаясь ответственным для модификаций, сделанных другими.
Эта Лицензия представляет собой своего рода «авторское лево», что означает, что производная сами произведения документа должны быть свободными в том же смысле. Это дополняет Стандартную общественную лицензию GNU, которая является авторским левом лицензия, предназначенная для бесплатного ПО.
Мы разработали эту Лицензию, чтобы бесплатно использовать ее для руководств. программного обеспечения, потому что свободному программному обеспечению нужна бесплатная документация: бесплатный программа должна поставляться с руководствами, предоставляющими те же свободы, что и программное обеспечение делает. Но эта Лицензия не ограничивается руководствами по программному обеспечению; его можно использовать для любой текстовой работы, независимо от тематики или опубликована ли она в виде печатной книги.Мы рекомендуем эту лицензию в основном для работ, целью которых является инструкция или справка.
- ПРИМЕНЕНИЕ И ОПРЕДЕЛЕНИЯ
Настоящая Лицензия применима к любому руководству или другой работе на любом носителе, содержит уведомление правообладателя о том, что он может быть распространяется в соответствии с условиями данной Лицензии. Такое уведомление дает всемирная бесплатная лицензия на неограниченный срок для использования работать на условиях, изложенных в данном документе. «Документ» ниже, относится к любому такому руководству или работе.Любой представитель общественности является лицензиат, и к нему обращаются «вы». Вы принимаете лицензию, если вы копировать, изменять или распространять работу способом, требующим разрешения в соответствии с законом об авторском праве.
«Измененная версия» документа означает любую работу, содержащую Документ или его часть, либо дословно скопированные, либо с модификации и / или переведены на другой язык.
«Дополнительный раздел» - это именованное приложение или вступительный раздел Документа, который касается исключительно отношений между издателей или авторов Документа в целом предмет (или связанные с ним вопросы) и не содержит ничего, что могло бы упасть непосредственно в рамках этой общей темы.(Таким образом, если Документ находится в часть учебника математики, второй раздел не может объяснить любая математика.) Отношения могут быть историческими связь с предметом или со смежными вопросами, или юридическими, коммерческая, философская, этическая или политическая позиция в отношении их.
«Неизменяемые разделы» - это определенные второстепенные разделы, названия которых обозначены в уведомлении как неизменяемые разделы. это говорит о том, что Документ выпущен под этой Лицензией.Если раздел не соответствует приведенному выше определению вторичного, то это не разрешено обозначать как инвариантный. Документ может содержать ноль Инвариантные сечения. Если в Документе не указан инвариант Разделов тут нету.
«Тексты на обложке» - это определенные короткие отрывки текста, которые перечислены, как тексты передней или задней обложки, в примечании, в котором говорится, что Документ выпущен под этой Лицензией. Текст на передней обложке может быть не более 5 слов, а текст на задней обложке может состоять не более чем из 25 слов.
«Прозрачная» копия Документа означает машиночитаемую копию, представлены в формате, спецификация которого доступна широкая общественность, которая подходит для редактирования документа напрямую с помощью обычных текстовых редакторов или (для изображений, состоящих из пикселей) общие программы рисования или (для рисунков) некоторые широко доступные редактор чертежей, который подходит для ввода в программы форматирования текста или для автоматического перевода в различные форматы, подходящие для ввода в средства форматирования текста.Копия, сделанная в другом прозрачном файле формат, разметка которого или отсутствие разметки были организованы так, чтобы препятствовать или препятствовать последующим изменениям читателями не является прозрачным. Формат изображения непрозрачен, если он используется для значительного количества текста. Копия, которая не является «прозрачной», называется «непрозрачной».
Примеры подходящих форматов для прозрачных копий включают простые ascii без разметки, формат ввода Texinfo, ввод LaTeX формат, SGML или XML с использованием общедоступных DTD и стандартный простой HTML, PostScript или PDF, предназначенные для редактирования человеком.Примеры форматов прозрачных изображений, включая PNG, XCF и JPG. Непрозрачные форматы включают собственные форматы, которые можно читаются и редактируются только собственными текстовыми редакторами, SGML или XML, для которого DTD и / или инструменты обработки являются не общедоступно, а HTML-код, сгенерированный машиной, PostScript или PDF, созданные некоторыми текстовыми редакторами для только для целей вывода.
«Титульный лист» означает для печатной книги сам титульный лист, плюс следующие страницы, необходимые для разборчивости материала эта Лицензия требует размещения на титульной странице.Для работ в форматы, которые не имеют титульного листа как такового, «Титульный лист» означает текст рядом с наиболее заметным появлением названия произведения, перед началом основного текста.
«Издатель» означает любое физическое или юридическое лицо, которое распространяет копии Документа для общественности.
Раздел «Под названием XYZ» означает именованный подраздел Документа, чей title либо в точности XYZ, либо содержит XYZ в скобках после текст, переводящий XYZ на другой язык.(Здесь XYZ означает конкретное название раздела, упомянутое ниже, например «Благодарности», «Посвящения», «Подтверждения» или «История».) Чтобы «сохранить титул» такого раздела при изменении документа означает, что он остается раздел «Право XYZ» в соответствии с этим определением.
Документ может включать отказ от гарантий рядом с уведомлением, которое заявляет, что эта Лицензия применяется к Документу. Настоящая гарантия Заявления об ограничении ответственности считаются включенными в настоящий документ посредством ссылки. Лицензия, но только в части отказа от гарантий: любые другие подразумевается, что данные Отказ от гарантий являются недействительными и имеют не влияет на смысл данной Лицензии.
- ВЕРБАТИМНОЕ КОПИРОВАНИЕ
Вы можете копировать и распространять Документ на любом носителе, либо коммерчески или некоммерчески, при условии, что данная Лицензия, уведомления об авторских правах и уведомление о лицензии, в котором говорится, что эта Лицензия применяется к Документу воспроизводятся во всех копиях, и вы не добавляете никаких других любых условий по сравнению с условиями настоящей Лицензии. Вы не можете использовать технические меры по воспрепятствованию или контролю чтения или дальнейшее копирование копий, которые вы делаете или распространяете.Однако вы можете принять компенсация в обмен на копии. Если вы раздаете достаточно большой количество копий вы также должны соблюдать условия в разделе 3.
Вы также можете предоставлять копии на условиях, указанных выше, и вы можете публично демонстрировать копии.
- КОЛИЧЕСТВЕННОЕ КОПИРОВАНИЕ
Если вы публикуете печатные копии (или копии на носителях, которые обычно печатные обложки) Документа, количество которых превышает 100, и В уведомлении о лицензии документа требуются тексты на обложке, вы должны приложить копии в обложках, которые ясно и разборчиво содержат все эти обложки Тексты: тексты передней обложки на передней обложке и тексты задней обложки на задняя крышка.Обе обложки также должны четко и разборчиво идентифицировать вы как издатель этих копий. Передняя обложка должна присутствовать полное название со всеми словами названия, одинаково заметными и видимый. Вы можете дополнительно добавить другие материалы на обложки. Копирование с изменениями, ограниченными обложками, при условии, что они сохраняют название документа и удовлетворяют этим условиям, можно рассматривать как дословное копирование в остальном.
Если требуемые тексты для любой обложки слишком объемны, чтобы поместиться разборчиво, вы должны указать первые из перечисленных (столько, сколько подходит разумно) на фактическом покрытии, а остальные продолжайте на соседнем страниц.
Если вы публикуете или распространяете Непрозрачные копии нумерации документов более 100, вы должны либо включить машиночитаемый прозрачный копировать вместе с каждой непрозрачной копией или состояние внутри или с каждой непрозрачной копией расположение в компьютерной сети, из которого общее использование сети общедоступный имеет доступ к загрузке с использованием стандартных сетевых протоколов полная прозрачная копия документа без дополнительных материалов. Если вы используете последний вариант, вы должны предпринять разумные шаги. когда вы начнете распространение непрозрачных копий в большом количестве, чтобы гарантировать что эта Прозрачная копия останется доступной по указанным место, по крайней мере, через год после последнего распространения Непрозрачная копия (напрямую или через ваших агентов или розничных продавцов) этого издание для публики.
Просим, но не обязательно, связываться с авторами Задокументируйте, прежде чем распространять большое количество копий, чтобы у них есть шанс предоставить вам обновленную версию Документа.
- МОДИФИКАЦИИ
Вы можете копировать и распространять Измененную версию документа по условия разделов 2 и 3 выше, при условии, что вы освобождаете Модифицированная версия именно под этой Лицензией, с Модифицированной Версия, выполняющая роль Документа, тем самым лицензируя распространение и модификация Модифицированной версии для всех, у кого есть копия этого.Кроме того, в Модифицированной версии вы должны сделать следующее:
- Используйте на титульном листе (и на обложках, если таковые имеются) отдельный заголовок из документа и из предыдущих версий (которые, если таковые имеются, должны быть перечислены в разделе истории Документа). Вы можете использовать то же название, что и предыдущая версия если исходный издатель этой версии дает разрешение.
- Укажите на титульном листе одно или несколько физических или юридических лиц в качестве авторов несет ответственность за авторство изменений в Модифицированном Версия, вместе с как минимум пятью из основных авторов Документ (все его основные авторы, если их меньше пяти), если они не освободят вас от этого требования.
- Укажите на титульном листе имя издателя Модифицированная версия, как издатель.
- Сохраните все уведомления об авторских правах в документе.
- Добавьте соответствующее уведомление об авторских правах для ваших изменений рядом с другими уведомлениями об авторских правах.
- Включить сразу после уведомления об авторских правах уведомление о лицензии предоставление публичного разрешения на использование Модифицированной версии под условия данной Лицензии в форме, показанной в Приложении ниже.
- Сохранить в уведомлении о лицензии полные списки неизменяемых разделов и необходимые тексты обложки, указанные в уведомлении о лицензии.
- Включите неизмененную копию данной Лицензии.
- Сохранить раздел под названием «История», сохранить его заголовок и добавить к нему элемент с указанием как минимум названия, года, новых авторов и издатель Модифицированной версии, как указано на Титульной странице. Если в документе нет раздела под названием «История», создайте его с указанием названия, года, авторов и издателя Документа как на титульном листе, затем добавьте элемент, описывающий измененный Версия, как указано в предыдущем предложении.
- Сохранить местоположение в сети, если оно есть, указанное в Документе для публичный доступ к Прозрачной копии Документа, а также сетевые расположения, указанные в Документе для предыдущих версий это было основано на. Их можно разместить в разделе «История». Вы можете не указывать сетевое расположение для работы, опубликованной на не менее чем за четыре года до самого документа, или если оригинал издатель версии, на которую он ссылается, дает разрешение.
- Для любого раздела, озаглавленного «Благодарности» или «Посвящения», сохранить заголовок раздела и сохранить в разделе все суть и тон признательности и / или посвящения, данные в нем.
- Сохранить все неизменяемые разделы документа, без изменений в тексте и заголовках. Номера разделов или их эквиваленты не считаются частью заголовков разделов.
- Удалить любой раздел, озаглавленный «Подтверждения». Такой раздел не могут быть включены в Модифицированную версию.
- Не переименовывайте существующие разделы, которые будут озаглавлены «Подтверждения» или вступать в конфликт в названии с любым неизменяемым разделом.
- Сохраните любые заявления об отказе от гарантии.
Если Модифицированная версия включает новые главные разделы или приложения, которые квалифицируются как дополнительные разделы и не содержат материалов скопировано из Документа, вы можете по своему усмотрению указать некоторые или все этих секций как инвариантные. Для этого добавьте их заголовки в список неизменяемых разделов в уведомлении о лицензии Модифицированной версии. Эти заголовки должны отличаться от любых других заголовков разделов.
Вы можете добавить раздел «Подтверждения», если он содержит ничего, кроме одобрения вашей Модифицированной версии различными стороны - например, утверждения экспертной оценки или что текст одобрено организацией как авторитетное определение стандарт.
Вы можете добавить отрывок длиной до пяти слов в качестве текста на лицевой стороне обложки и переход до 25 слов в виде текста задней обложки в конец списка текстов обложек в доработанной версии. Только один отрывок из Текст передней обложки и один из текста задней обложки могут быть добавлены с помощью (или посредством договоренностей, заключенных) любым одним лицом. Если документ уже включает текст обложки для той же обложки, ранее добавленной вами или по договоренности, заключенной той же организацией, от имени которой вы действуете, вы не можете добавить еще один; но вы можете заменить старый на явном разрешение от предыдущего издателя, который добавил старый.
Автор (ы) и издатель (ы) Документа не имеют данной Лицензии дать разрешение использовать их имена для рекламы или для утверждения или подразумевают одобрение любой Модифицированной версии.
- ОБЪЕДИНЕНИЕ ДОКУМЕНТОВ
Вы можете объединить Документ с другими документами, выпущенными в соответствии с этим Лицензия на условиях, определенных в разделе 4 выше для измененных версий при условии, что вы включите в комбинацию все Неизменяемые разделы всех исходных документов, без изменений и перечислите их все как неизменные разделы вашей совместной работы в своем уведомление о лицензии, и что вы сохраняете все их Отказ от гарантий.
Совместная работа должна содержать только одну копию данной Лицензии, и несколько идентичных неизменяемых разделов могут быть заменены одним копия. Если существует несколько неизменяемых разделов с одинаковым именем, но различного содержания, сделайте заголовок каждого такого раздела уникальным, добавив в конце в круглых скобках название оригинала автор или издатель этого раздела, если он известен, либо уникальный номер. Сделайте такую же настройку заголовков разделов в списке Неизменяемые разделы в уведомлении о лицензии на совместное произведение.
В комбинации необходимо объединить любые разделы с названием «История» в различных оригинальных документах, образующих один раздел под названием «История»; аналогичным образом объедините любые разделы, озаглавленные «Благодарности», и любые разделы, озаглавленные «Посвящения». Вы должны удалить все разделы, озаглавленные «Подтверждения».
- КОЛЛЕКЦИИ ДОКУМЕНТОВ
Вы можете составить коллекцию, состоящую из Документа и других документов. выпущен под этой Лицензией, и заменяет отдельные копии этого Лицензия в различных документах с единственной копией, которая включена в сбор, при условии, что вы соблюдаете правила данной Лицензии на дословное копирование каждого из документов во всех остальных отношениях.
Вы можете извлечь один документ из такой коллекции и распространить это индивидуально в соответствии с данной Лицензией, при условии, что вы вставите копию этого Лицензию в извлеченный документ и следуйте этой Лицензии во всех другие аспекты, касающиеся дословного копирования этого документа.
- АГРЕГАЦИЯ С НЕЗАВИСИМЫМИ РАБОТАМИ
Компиляция Документа или его производных с другими отдельными и независимые документы или работы, в или на томе хранилища или средство распространения, называется «совокупным», если авторское право полученный в результате компиляции не используется для ограничения юридических прав пользователей компиляции за пределами того, что позволяют отдельные работы.Когда Документ включен в совокупность, эта Лицензия не применяются к другим произведениям в совокупности, которые сами не являются производные работы от Документа.
Если требование раздела 3 к тексту обложки применимо к этим копии Документа, то, если Документ меньше половины всю совокупность, Тексты Обложки Документа могут быть размещены на охватывает эту скобку Документа в совокупности, или электронный эквивалент обложек, если Документ находится в электронном виде.В противном случае они должны появиться на печатных обложках, которые ограничивают весь совокупный.
- ПЕРЕВОД
Перевод считается разновидностью модификации, поэтому вы можете распространять переводы Документа в соответствии с условиями раздела 4. Замена неизменяемых разделов переводами требует специальных разрешение от их правообладателей, но вы можете включить переводы некоторых или всех инвариантных сечений в дополнение к оригинальные версии этих неизменяемых сечений.Вы можете включить перевод этой Лицензии и всех лицензионных примечаний в Документ и любые заявления об отказе от гарантий при условии, что вы также включите оригинальная английская версия данной Лицензии и оригинальные версии этих уведомлений и заявлений об отказе от ответственности. В случае разногласий между перевод и оригинальная версия данной Лицензии или уведомления или отказ от ответственности, исходная версия имеет преимущественную силу.
Если раздел в документе озаглавлен «Благодарности», «Посвящения» или «История» - требование (раздел 4) о сохранении его Заголовок (раздел 1) обычно требует изменения фактического заглавие.
- ПРЕКРАЩЕНИЕ
Вы не можете копировать, изменять, сублицензировать или распространять Документ. за исключением случаев, прямо предусмотренных настоящей Лицензией. Любая попытка в противном случае копирование, изменение, сублицензирование или распространение его является недействительным, и автоматически прекращает ваши права по данной Лицензии.
Однако, если вы прекратите все нарушения этой Лицензии, ваша лицензия от конкретного правообладателя восстанавливается (а) временно, до тех пор, пока правообладатель явно и окончательно не прекращает действие вашей лицензии и (б) навсегда, если правообладатель не уведомляет вас о нарушении разумными способами до 60 дней после прекращения.
Более того, ваша лицензия от конкретного правообладателя будет восстановлен навсегда, если правообладатель уведомит вас о нарушение каким-либо разумным способом, это первый раз, когда вы получил уведомление о нарушении данной Лицензии (на любую работу) от этого правообладателя, и вы устраните нарушение до 30 дней после получение уведомления.
Прекращение ваших прав в соответствии с этим разделом не прекращает лицензии сторон, получивших от вас копии или права по эта Лицензия.Если ваши права были прекращены и не окончательно восстановлен, получение копии некоторых или всех тех же материалов не не дает вам никаких прав на его использование.
- БУДУЩИЕ ИЗМЕНЕНИЯ ДАННОЙ ЛИЦЕНЗИИ
Фонд свободного программного обеспечения может публиковать новые исправленные версии лицензии GNU Free Documentation License, время от времени. Такой новый версии будут похожи по духу на настоящую, но могут отличаться в деталях для решения новых проблем или опасений. Видеть http: // www.gnu.org/copyleft/.
Каждой версии Лицензии присваивается отличительный номер версии. Если в Документе указано, что конкретная пронумерованная версия этого К нему применяется лицензия «или любая более поздняя версия», у вас есть возможность в соответствии с условиями либо указанной версии, либо любой более поздней версии, которая была опубликована (не как черновик) Фонд свободного программного обеспечения. Если в Документе не указана версия номер этой Лицензии, вы можете выбрать любую из когда-либо опубликованных версий (не как проект) Free Software Foundation.Если документ указывает, что прокси может решить, какие будущие версии этого Лицензия может быть использована, публичное заявление этого доверенного лица о принятии версия навсегда разрешает вам выбрать эту версию для Документ.
- РЕЛИЦЕНЗИЯ
«Большой сайт для совместной работы с несколькими авторами» (или «Сайт MMC») означает любой Сервер World Wide Web, на котором публикуются произведения, охраняемые авторским правом, а также предоставляет удобные возможности для редактирования этих произведений. А публичная вики, которую может редактировать кто угодно, является примером такого сервера.А «Массовое сотрудничество с несколькими авторами» (или «MMC»), содержащееся в сайт означает любой набор охраняемых авторским правом произведений, опубликованных таким образом на MMC сайт.
«CC-BY-SA» означает лицензию Creative Commons Attribution-Share Alike 3.0 лицензия, опубликованная Creative Commons Corporation, некоммерческой корпорация с головным офисом в Сан-Франциско, Калифорния, а также будущие версии этой лицензии с авторским левом опубликовано той же организацией.
«Включить» означает опубликовать или переиздать Документ полностью или частично, как часть другого документа.
MMC «имеет право на перелицензирование», если она лицензирована в соответствии с этим Лицензия, и если все работы, которые были впервые опубликованы под этой Лицензией где-то кроме этой MMC, и впоследствии полностью или частично в MMC, (1) не было обложек или инвариантных разделов, и (2), таким образом, были включены до 1 ноября 2008 г.
Оператор сайта MMC может переиздать MMC, содержащуюся на сайте под CC-BY-SA на том же сайте в любое время до 1 августа 2009 г., при условии, что MMC имеет право на перелицензирование.
ПРИЛОЖЕНИЕ: Как использовать эту Лицензию для ваших документов
Чтобы использовать эту Лицензию в документе, который вы написали, включите копию Лицензию в документе и поставить следующие авторские права и уведомления о лицензии сразу после титульной страницы:
Copyright (C) год ваше имя . Разрешается копировать, распространять и / или изменять этот документ. в соответствии с условиями лицензии GNU Free Documentation License, версия 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без неизменяемых разделов, без текста на лицевой обложке и без задней обложки Тексты. Копия лицензии включена в раздел под названием `` GNU Бесплатная лицензия на документацию ''.
Если у вас есть неизменные разделы, тексты передней и задней обложек, заменить «на ... текстов». строка с этим:
с неизменяемыми разделами, равными , перечисляют их заголовки , с текст передней обложки - - список , а тексты задней обложки - список .
Если у вас есть неизменяемые разделы без текста на обложке или другие сочетание трех, объедините эти две альтернативы, чтобы они соответствовали ситуация.
Если в вашем документе есть нетривиальные примеры программного кода, мы рекомендую выпустить эти примеры параллельно под ваш выбор лицензия свободных программ, например Стандартная общественная лицензия GNU, чтобы разрешить их использование в свободных программах.
Локальные переменные: кодировка: iso-8859-15 Конец: ->
Примеры открытых и закрытых вопросов
Во время беседы, при заполнении исследовательского опроса, собеседовании при приеме на работу или выполнении домашнего задания вы можете столкнуться с серией закрытых или открытых вопросов. -законченные вопросы.Закрытые вопросы - это те, на которые можно ответить простым «да» или «нет», а открытые вопросы - это те, на которые требуется больше размышлений и больше, чем простой ответ из одного слова.
Закрытые вопросы
Если вы можете ответить на вопрос только "да" или "нет", то вы отвечаете на закрытый вопрос.
Примеры закрытых вопросов:
- Вы чувствуете себя лучше сегодня?
- Могу я воспользоваться ванной?
- Первое ребро сегодня особенное?
- Стоит ли мне встречаться с ним?
- Не могли бы вы сделать мне одолжение?
- Вы уже выполнили домашнее задание?
- Это ваш окончательный ответ?
- Вы планировали стать пожарным?
- Мне позвонить ей и разобраться во всем?
- Разве в таком возрасте хотеть жить самостоятельно - это неправильно?
- Давай вместе приготовим ужин?
- Могу ли я быть более грязным гостем?
- Могу я вам помочь, дамы, сегодня вечером?
- Этот человек раньше ходил мимо дома?
- Я могу вам помочь?
- Можно мне откусить кусок пирога?
- Хочешь пойти в кино сегодня вечером?
- Математика - ваш любимый предмет?
- Четыре плюс четыре равны восьми?
- Этот дом с привидениями действительно страшен?
- Собираетесь ли вы к бабушке на Рождество?
- Папа испек сегодня торт?
- Проводится ли месса в полдень?
- Вы беременны?
- Он мертв?
Закрытые вопросы не всегда следует рассматривать как простые вопросы, на которые любой может быстро ответить просто потому, что они требуют ответа «да» или «нет».Закрытые вопросы также могут быть очень сложными. Например, «1 в двоичном формате равна 1 при подсчете чисел?» это закрытый вопрос, на который не каждый сможет быстро ответить.
Открытые вопросы
Открытые вопросы - это те, которые требуют ответов, состоящих из нескольких слов. Ответы могут быть в форме списка, нескольких предложений или чего-то более длинного, например речи, абзаца или эссе.
Вот несколько примеров открытых вопросов:
- Какие войны были наиболее важными в истории Соединенных Штатов?
- Что вы планируете сегодня купить в супермаркете?
- Как именно началась драка между вами двумя?
- Какое ваше любимое воспоминание из детства?
- Чем вы поможете компании, если вас наняли к нам?
- Чем вы планируете заниматься сразу после окончания колледжа?
- Какие украшения вы собираетесь использовать на день рождения друга?
- Каким был ваш школьный опыт?
- Как вы познакомились со своим лучшим другом?
- Какие достопримечательности вы ожидаете увидеть в отпуске?
- Как вы относитесь к бронированию билетов на рейс?
- Каковы были основные последствия Второй мировой войны для Соединенных Штатов?
- Как вы собираетесь покупать дом?
- Каково жить в Марокко?
- Как самый быстрый способ добраться до зоомагазина в городе?
- Почему каждый раз, когда я разговариваю с вами, вы кажетесь раздраженным?
- Как я могу лучше себя представить?
- Как вам удается вырастить этих детей в одиночку?
- Что случилось с людьми в этом классе?
- Где ты найдешь время, чтобы написать все эти письма?
- Почему я не могу пойти с тобой?
- Что заставляет листья менять цвет?
- Как именно заменить экран в сотовом телефоне?
Хотя открытые вопросы требуют более длинных ответов, чем закрытые вопросы, открытые вопросы не всегда сложнее.Например, на вопрос «Что вы собираетесь купить сегодня в супермаркете?» может просто потребовать от респондента прочитать список.
Когда используются эти вопросы
Вопросы любого типа можно использовать в самых разных сценариях. Однако, если вы ищете руководство для сравнения этих типов вопросов, вы можете думать о закрытых вопросах как о вопросах с несколькими вариантами ответов на школьном экзамене, а открытые вопросы как о коротких ответах и вопросах для сочинения на экзамене.
Открытые вопросы
Открытые вопросы требуют более подробного и развернутого ответа.Открытые вопросы также помогают узнать больше о человеке или ситуации, будь то во время интервью, на вечеринке или при знакомстве с новым другом.
Закрытые вопросы
Закрытые вопросы можно ответить одним словом или короткой конкретной информацией. В вышеупомянутых ситуациях также можно использовать закрытые вопросы, хотя они могут положить конец беседе.
Вот примеры закрытых вопросов в таких ситуациях:
- Хотите ванильное мороженое?
- Вы когда-нибудь встречали Джо раньше?
- Где вы учились в колледже?
- Какое у вас лучшее качество?
- Вы счастливы?
- Нравится ли вам машина?
- У вашего брата такие же интересы, как и у вас?
- У вас есть домашнее животное?
- Любите животных?
- Когда у тебя день рождения?
- Любишь дождь?
Вот несколько примеров из этих закрытых вопросов, превращенных в открытые - для продолжения разговора:
- Какой ваш любимый вкус мороженого и почему?
- Как вы познакомились с Джо?
- Что, по вашему мнению, было самым полезным в вашем колледже?
- Как ваши лучшие качества могут помочь нашей компании процветать и расти?
- Какие вещи приносят вам больше всего радости?
- Почему вы решили купить Volvo?
- Какие интересы у вас и вашего брата общие, а какие нет?
- У вас есть домашнее животное и что он собой представляет?
- Любите животных и почему?
- Когда у тебя день рождения и как ты любишь отмечать?
- Вам нравится дождь и чем вы обычно занимаетесь во время ливня?
Из этих примеров ясно, что закрытые вопросы используются для получения короткого и быстрого ответа, в то время как открытые вопросы служат воротами в разговор.