Главная страница
Навигация по странице:

  • Поиск строк в файле, соответствующих регулярному выражению

  • 2.4. Сервисные программы Сервисная программа, или утилита

  • 2.4.1. Обслуживание дисков

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


    Скачать 5.66 Mb.
    НазваниеПрактикум по программному обеспечению содержит большое количество примеров и заданий
    Анкоручебная логика
    Дата12.09.2022
    Размер5.66 Mb.
    Формат файлаdocx
    Имя файлаучебник СПО.docx
    ТипПрактикум
    #672419
    страница14 из 50
    1   ...   10   11   12   13   14   15   16   17   ...   50

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


    Каждый процесс в Linux получает при старте три потока данных (специальные файлы). Первый открыт на чтение и является стандартным вводом процесса stdin (процесс из него берет данные, читает), по умолчанию это клавиатура. Второй поток открыт на запись и называется стандартным выводом процесса stdout (процесс в него записывает данные), по умолчанию это экран. Третий поток данных предназначен для вывода сообщений об ошибках и называется стандартный вывод ошибок.

    Рассмотрим команду cat, которая берет данные с потока ввода и передает их на поток вывода, то есть c stdin на stdout.

    Введите команду cat. Поскольку не указаны потоки ввода и вывода, то они считаются стандартными, то есть ввод с клавиатуры, вывод на экран. Поэтому система будет ожидать ввода текста, а после сразу же выводить его на экран.

    В команде: cat имя_файла – поток ввода указан из файла, поэтому данные будут читаться из файла и передаваться на стандартный поток вывода – экран.

    Оболочка shell дает возможность перенаправлять стандартные потоки, например, вывод делать не на экран, а в файл, чтобы данные были записаны и сохранены. Для этого используются символы « >» и « <».

    > – перенаправление стандартного вывода < – перенаправление стандартного ввода

    cat > textfile – поток ввода не указан, следовательно ввод с клавиатуры, а поток вывода перенаправлен в файл. Таким образом, данные с клавиатуры записываются в файл.

    Просмотрите созданный файл.

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

    Добавьте в созданный файл textfile еще данные: cat >> textfile

    Снова просмотрите его.

    cat < textfile > textfile2 – эта команда читает данные из

    файла textfile и записывает их в файл textfile2.

    Поиск строк в файле, соответствующих регулярному выражению:

    grep –ключи шаблон файлы

    Работа с текстом – одна из сильных сторон Linux, так как система содержит большое количество команд, выполняющих различные преобразования с текстом. Рассмотрим наиболее популярные из них.

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

    Ключи:

    –v – выводить только те строки, которые не соответствуют регулярному выражению (шаблону поиска);

    –o – выводить только ту часть строки, которая совпала с регулярным выражением;

    l – выводить только имена файлов, содержащих шаблон поиска, без вывода самих строк;

    –с – выводить только количество найденных строк, соответствующих регулярному выражению;

    –n – указывать номера найденных строк; –i – поиск, нечувствительный к регистру;

    –r – рекурсивный поиск во всех файлах и подкаталогах.

    Примеры:

    grep –l “rm –r” cmd create delcreate

    В перечисленных файлах (cmd, create, delcreate) ищет подстроку «rm –r», то есть мы хотим определить, в каком из сценариев (командных файлов) содержится эта команда. grep –c “rm –r” cmd create delcreate

    Конвейеры


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

    С помощью конвейера можно объединять в цепочку много команд:

    Команда1 | команда2 | … | командаN

    Например, нужно отсортировать оглавление каталога в алфавитном порядке, то есть результат команды ls передать команде sort. ls | sort

    Чтобы просматривать постранично длинный список файлов, выдаваемой командой ls, нужно использовать конвейер и обратиться к команде less, которая постранично выводит текст. ls /usr/bin | sort | less

    Создание командных файлов (скриптов)


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

    Как файл его можно создать командой cat или использовать текстовый редактор, например, vi.

    Если вы работаете в графической оболочке, то воспользуйтесь, например, текстовым редактором Leafpad или KWrite.

    Cоздадим файл с именем cmd (в домашнем каталоге), и запишем в него следующие команды:

    #! /bin/sh (выполнение файла – в shell)

    echo “How do you do!” (вывод строки на экран, приветствие)

    date (вывод текущей даты)

    pwd (вывод текущего каталога)

    ls (вывод оглавления текущего каталога)

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

    Сделайте этот файл исполняемым командой: chmod +x /cmd.

    То есть в правах доступа к файлу для всех пользователей разрешите выполнение этого файла (+х).

    Теперь чтобы запустить этот файл используйте команду:

    /cmd

    Итак, для создания командного файла:

    1. Запустите текстовый редактор, создайте текстовый файл.

    2. Последовательно запишите команды в этом файле, располагая каждую команду на отдельной строке.

    3. Сохраните созданный файл, сделайте его исполняемым, применив команду: сhmod +x имя_файла.

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

    Задания.

    А) Создайте в домашнем каталоге командный файл creatе, который выполняет следующие операции:

    1. В домашнем каталоге создает каталоги katalog1 и katalog2.

    2. В каталоге katalog2 создает katalog3 и katalog4.

    3. В каталог katalog1 копирует все файлы, длина имени которых 5 символов из каталога /bin.

    4. Копирует файлы, содержащие в имени одну из букв a-c, из каталога /bin в каталог katalog4.

    5. В каталоге katalog2 создает текстовый файл user.txt, в котором будет храниться имя пользователя (свое имя пользователь введет с клавиатуры после запуска командного файла).

    6. В каталоге katalog1 создает файл filelist, в который записывается список файлов, находящихся в домашнем каталоге пользователя и его подкаталогах, отсортированный по алфавиту.

    7. В каталоге katalog1 создается жесткая ссылка на файл user.txt.

    8. В каталоге katalog2 создается ссылка на каталог

    /usr/bin.

    1. Организует поиск файла, результат поиска помещает в файл file_find.

    2. Перемещает user.txt в katalog3.

    Б) Создайте в домашнем каталоге командный файл delcreatе, который удаляет все файлы и каталоги, созданные файлом creatе.

    2.4. Сервисные программы

    Сервисная программа, или утилита (utility или tool) – программный продукт, предназначенный для расширения возможностей операционных систем и предоставления набора дополнительных услуг.

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

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

    В Windows основной набор утилит находится в папке Программы – Стандартные – Служебные.

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

    2.4.1. Обслуживание дисков
    1   ...   10   11   12   13   14   15   16   17   ...   50


    написать администратору сайта