учебная логика. учебник СПО. Практикум по программному обеспечению содержит большое количество примеров и заданий
Скачать 5.66 Mb.
|
/cmdВвод и вывод. Перенаправление ввода и выводаКаждый процесс в 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 |