Вы находитесь на странице: 1из 19

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

Linux
Использование потоков и перенаправлений

• Стандартный поток ввода


• Стандартный поток вывода
• Стандартный поток ошибок
• Символы перенаправления
• tee
• xargs
• Стандартным потоком ввода (stdin) является
клавиатура. В большинстве случаев, поток входных
данных вводится именно через клавиатуру.
• Стандартный вывод (stdout) – это поток, в который
программы выводят результаты работы. Обычно эти
данные отображаются на экране монитора.
• Стандартный поток ошибок (stderror) – поток,
используемый для вывода сообщений об ошибках и
диагностики. Этот поток независим от стандартного
потока вывода и может перенаправляться отдельно.
Символы перенаправления данных
> Создает новый файл, содержащий данные стандартного
потока вывода. Если указанный файл существует, то он
перезаписывается.
>> Создает новый файл, содержащий данные стандартного
потока вывода. Если указанный файл существует, то он
дописывается.
2> Создает новый файл, содержащий данные стандартного
потока ошибок. Если указанный файл существует, то он
перезаписывается.
2>> Добавляет информацию со стандартного потока вывода в
существующий файл. Если указанный файл не
существует, то он создается.

&> Создает новый файл, содержащий данные стандартного


потока вывода и потока ошибок. Если указанный файл
существует, то он перезаписывается.
Символы перенаправления данных
2>&1 Выводит стандартные потоки вывода и ошибок в один
файл.

< Перенаправляет содержимое файла как стандартный


поток ввода.

<< “Heredoc-синтаксис” — специальная форма ввода для


формирования входного потока программ

| Перенаправляет стандартный поток вывода одной


команды в стандартный поток ввода другой команды.
Опции команды xargs
[команда_генератор_списка] | xargs [опции_xargs] [команда]
-0 (ноль) Заменяет стандартный разделитель (перенос строки
на нуль-символ (\x0), который и означает конец
хранимой строки. Используется для решения
проблемы наличия пробелов в имени передаваемого
параметра.
-n число Указывает максимальное количество аргументов
которые можно передать команде за одну
подстановку.
-p Запрашивает подтверждение перед каждым вызовом
команды
-t Перед выполнением вывести команда с
построенным список аргументов в стандартный
поток ошибок.
Опции команды xargs
-P число Указывает максимальное количество процессов,
которые будут выполняться одновременно т. е.
количество запущеных экземпляров команды.
-I зам_цеп Режим вставки: Каждая строка стандартного ввода
рассматривается как один аргумент и подставляется
в качестве аргументы вместо каждого вхождения
цепочки символов зам_цеп.
Если цепочка зам_цеп не задана, она полагается
равной {} (текущий аргумент) .
Например, переместить все файлы из каталога $1 в
$2 : ls $1 | xargs -I {} mv $1/{} $2/{}.
Данная опция также может использоваться для
решения проблемы наличия пробелов в имени
передаваемого параметра.
Регулярные
выражения
Регулярные выражения
• Регулярные выражения (также называемые как
"regex" или "regexp") представляют способ описания
текстовой строки или шаблона таким образом, что
программа может осуществлять соответствие шаблона
в произвольных текстовых строках, обеспечивая
мощные инструменты поиска информации.
• Утилита grep (от generalized regular expression
processor) является стандартной частью
инструментария программиста или администратора
Linux или UNIX, позволяя использовать регулярные
выражения для поиска текстовых строк в файлах или
выводе команды.
Использование регулярных выражений
• regex
• grep
• egrep
• fgrep
• sed
Регулярные выражения
' Переменные и команды внутри одинарных кавычки не
обрабатываются

" Переменные внутри двойных кавычек обрабатываются,


а команды — нет

` Внутри обратных кавычек обрабатываются и


переменные, и команды

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

~ Символ тильды соответствует домашнему каталога


пользователя
Регулярные выражения
. Любой символ
[] Соответствует любому символу находящемуся внутри
скобок
[^] Соответствует любому символу, кроме находящегося
внутри скобок
* Любое количество символов
{} Определение допустимого количества повторений
выражения
^ Символ ^ обозначает начало строки
$ Символ $ соответствует концу строки
() Группировка выражений
Опции команды grep
-E Расширенный синтаксис (Extended)
-F Сопоставление с фиксированными строками (Fixed)
-i Отключение чувствительности к регистру
-l Список файлов, содержимое которых совпадает с
выражением
-n Выводить номера строк, в которых найдено совпадение

-R Рекурсивный поиск
-v Инверсия результатов поиска
Регулярные выражения
• Регулярные выражения — формальный язык поиска и
осуществления манипуляций с подстроками в тексте.
• grep — стандартная для Unix систем утилита
командной строки, которая находит строки,
отвечающие заданному регулярному выражению, и
выводит их.
• egrep и fgrep — частные случаи утилиты grep
предназначенные для работы с расширенным
синтаксисом регулярных выражений и для поиска
фиксированных строк, соответственно.
• Важно сказать, что sed тоже “умеет” работать с
регулярными выражениями.
Редактирование
файлов
Редактирование файлов
• Редактор vi входит в стандартную комплектацию
почти каждой Linux системы.
• vi использует два различных режима: командный
режим и режим вставки.
• Для входа в режим вставки нужно нажать клавиши
i, o или а.
• Для выхода из режима вставки нажмите клавишу
Esc.
• Для сохранения файла введите :x или :qw, а для
отмены изменений и выхода :q!
• Для копирования строк или слов используйте y или
yy, для вставки p .

Вам также может понравиться