
Перенаправление потоков
В ОС LINUX существует три стандартных потока: поток ввода, поток вывода и поток стандартного протокола (поток ошибок).
Стандартный ввод (STDIN) — это то место, откуда система (команда) ожидает получение данных. Обычно — это клавиатура, хотя это может быть командный сценарий, программа, файл. Когда вы изменяете стандартное значение, вы вызываете перенаправление ввода.
Аналогично, стандартный вывод (STDOUT) — то место, которое подразумевается операционной системой для вывода информации, обычно — экран монитора. Можно так же перенаправить вывод по усмотрению любой команды или командного сценария.
Есть также стандартное устройство вывода ошибок (STDERR), которому система сообщает о любых ошибках в выполнении программ или командного сценария. Стандартно — это также терминал.
Существуют всего четыре символа перенаправления стандартного ввода/вывода:
• Символ > используется для перенаправления стандартного вывода команды.
Например, команда cat myfile > newfile перенаправляет выводимые данные (содержимое файла myfile) с монитора в файл newfile. Если этот файл существует, то его прежнее содержимое будет утеряно.
• Символ < используется для переназначения стандартного ввода команды.
Например, при выполнении команды cat < myfile в качестве стандартного ввода используется не клавиатура, а файл myfile. Содержимое файла появится на экране.
• Символ >> используется для дописывания выводимых данных команды в конец существующего файла.
Например, cat >> myfile допишет выводимую командой cat информацию в конец файла myfile. Поскольку для этой команды не указан входной файл, из которого будут считываться данные, то оболочка будет ожидать ввода данных с клавиатуры.
• Символ | является символом потока данных. Он используется, когда надо передать выводимые данные одной команды на ввод другой.
Например, команда ls | wc -l выводит на экран количество строк (опция -l) в списке файлов и подкаталогов текущей директории, который создает команда ls (фактически подсчитывается количество файлов и папок в текущей директории).
2. Задание к лабораторной работе
Запустить ВМ с установленной ОС Linux в VirualBox.
Запустить эмулятор консоли (Приложения → Системные → XTerm)
Просмотреть пользователей работающих в системе.
В домашнем каталоге создать папку (в качестве имени указать свою фамилию). Убедиться, что она создана.
Создать в своей папке файл, содержащий текущую дату и время.
Найти в файле текущий месяц.
Создать в своей папке еще один текстовый файл, в который ввести с клавиатуры свои имя, фамилию, группу в отдельных строках.
Посчитать количество слов, символов и строк в этом файле.
Упорядочить строки в файле по алфавиту.
Объединить созданные текстовые файлы в стандартный выходной поток.
Показать права на использование любого из своих файлов.
Скопировать свой файл в домашнюю папку.
Выведите на экран первые три объекта (файлы и (или) папки) Рабочего стола.
Выполнить поиск файлов в домашнем каталоге, размер которых не превышает 100 Кб.
Удалить созданные файлы и папку.
Оформить отчет.