|
В ОС LINUX существует три стандартных потока: поток ввода, поток вывода и поток стандартного протокола (поток ошибок).
Стандартный ввод (STDIN) — это просто то место, откуда система ожидает получение данных. Обычно — это клавиатура, хотя это может быть командный сценарий или программа. Когда вы изменяете стандартное значение, вы вызываете перенаправление ввода.
Аналогично, стандартный вывод (STDOUT) — то место, которое подразумевается операционной системой для вывода информации, обычно — экран монитора. Можно так же перенаправить вывод, STDOUT, по усмотрению любой команды или командного сценария. Цепочка событий от STDIN до STDOUT выглядит примерно так:
стандартный ввод STDIN ð команда Linux ð стандартный вывод STDOUT
STDIN часто упоминается как fd0, или дескриптор 0, STDOUT упоминается как fdl. Есть также стандартное устройство вывода ошибок (STDERR), которому система сообщает о любых ошибках в выполнении программ или командного сценария. Стандартно — это также терминал.
Существуют всего четыре символа перенаправления стандартного ввода/вывода:
• Символ > используется для перенаправления стандартного вывода команды в файл. Например, cat > file запишет выводимую командой cat информацию в файл file.
• Символ < используется для переназначения стандартного ввода команды. Например, при выполнении команды cat < file в качестве стандартного ввода cat используется не клавиатура, а файл file.
• Символ >> используется для дописывания стандартного вывода команды в конец существующего файла. Например, cat >> file допишет выводимую командой cat информацию в конец файла file.
• Символ | является символом потока. Он используется, когда вы хотите передать стандартный вывод одной команды на стандартный ввод другой.
Примеры:
cat > filename – перенаправление вывода в файл filename (если этот файл существует, то его прежнее содержимое будет утеряно);
cat >> filename – добавить содержимое вывода к содержимому файла filename;
cat < filename – сформировать стандартный ввод из содержимого файла filename.
cat /home/qqq/Desktop/file_1 | wc –w > /home/qqq/Desktop/num_names – содержимое файла file_1 передается в распоряжение команды wc –w (счетчик слов), которая выводит количество слов в файл num_names, находящийся на рабочем столе (/home/qqq/Desktop/).
ls | wc -l
Те же действия можно организовать так:
ls > buffer
wc -l < buffer
rm –f buffer
Команда ls выводит в файл buffer список файлов текущего каталога, а команда wc -l считает количество строк в этом файле, команда rm –f buffer удаляет файл с именем buffer.
Таким образом, первые две команды позволяют посчитать количество файлов в текущем каталоге.
|