Инсталляция Linux и первые шаги

         

Стандартный вход и стандартный выход


Многие команды UNIX получают информацию с так называемого

стандартного входа и посылают информацию на (опять же) так

называемый стандартный выход. (Для них часто используются

сокращения ``stdin'' и ``stdout'' соответственно). Ваш shell

организует дело так, что стандартным входом служит клавиатура, а

стандартным выходом - экран.

Вот пример использования команды cat. Нормально cat читает

данные из файлов, чьи имена даны в командной строке и посылает

эти данные прямехонько на stdout. Поэтому при выполнении команды

/home/larry/papers# cat history-final masters-thesis

на экран пойдет файл history-final, а за ним следом

masters-thesis.

Но если команде cat не даны имена файлов в качестве



параметров, она читает данные с stdin и опять же посылает на

stdout. Вот пример.

/home/larry/papers# cat

Hello there.

Hello there.

Bye.

Bye.

[ctrl-D]

/home/larry/papers#

Как видите, каждая строка, которую напечатал

пользователь, немедленно выдается командой cat на экран. При

вводе со стандартного входа команда знает, что ввод закончен

тогда, когда она получит в каком-то виде сигнал EOT

(End-Of-Text). Обычно он обеспечивается нажатием ctrl-D.

Вот другой пример. Команда сортировки sort читает построчно

текст (здесь опять с stdin, поскольку имена файлов в параметрах

не указаны, и посылает отсортированный результат на stdout.

Попробуйте так.

/home/larry/papers# sort

bananas

carrots

apples

[ctrl-D]

apples

bananas

carrots

/home/larry/papers#

Теперь мы можем упорядочить наш список продуктов, подлежащих

закупке, в лексикографическом порядке... ну разве UNIX не

полезная вещь?



Содержание раздела