Школа № 43 Нижнего Новгорода
Меню сайта
 
Главная страница

О школе

Учителя

Для учителей

Ученики

Общественная жизнь

Фотоальбом

Общение

Для учеников

Статьи

Единый экзамен

Валеология

Библиотека

Посетителям сайта

Страничка лаборанта

Web-мастерам

 

Предыдущая Следующая

определив для себя синоним (например, синонимом конструкции ls -al

--color=always | less, постранично выводящей список файлов со всеми

атрибутами и с выделением типов файлов цветами, может быть определена

команда lls).

 

Понять эту простую вещь означает понять весьма

серьезную часть компьютерной культуры. Универсальные системы

(например, ОС), в отличие от специализированных (например,

мультимедийных киосков или игровых приставок) создаются не для

удобства пользования ими "из коробки" абстрактным

"простым пользователем", а для удобства их настройки

(программирования) конкретным пользователем под его конкретные нужды.

Это не удобство, а метаудобство, не встроенная в стены комнаты

мебель, а модульный гарнитур с инструкцией по сборке, не "для

всех", а для каждого. А "простых" пользователей не

бывает, все мы сложные и разные.

 
$ cat
Петя
Петя
Яна
Яна
Вася
Вася
Маша
Маша
^D
$_
$ cat >names
Петя
Яна
Вася
Маша
^D
$ ls names
names
$ cat <names
Петя
Яна
Вася
Маша
$_

Рис. 3

Рис. 4

 



 

Утилиты могут не только выводить текст, но и

читать ввод. Простейший пример -- утилита конкатенации cat,

которая, будучи издана без аргументов, просто построчно копирует

текст (см. рис. 3). Утилита, читающая что-либо из стандартного ввода

и выводящая что-либо на стандартный вывод, называется фильтром,

фильтрами являются многие из стандартных POSIX-утилит.

 

 

Стандартный ввод-вывод -- это два файла, которые по умолчанию

связаны с текущим терминалом. Мощнейшим средством оболочки является

перенаправление ввода и вывода в произвольный файл, задающееся

соответственно знаками < и >, за которыми следуют имена файлов.

На рис. 4. показано перенаправление вывода команды cat в файл names и

перенаправление ввода этой команды из созданного предыдущей командой

файла. Важно заметить, что перенаправление стандартного ввода-вывода

производится именно оболочкой, "умения" распознавать

перенаправление как свои аргументы от самой утилиты (или, к примеру,

пользовательской программы) не требуется.

 

Еще одним мощным средством оболочки является так

называемый "конвейер" (или "канал") --

соединение вывода одной команды с вводом другой.

 
$ cat names names >names2
$ cat <names2
Вася
Маша
Петя
Яна
Вася
Маша
Петя
Яна
$ sort <names2
Вася
Вася
Маша
Маша
Петя
Петя
Яна
Яна
$ uniq <names2
Вася
Маша
Петя
Яна
Вася
Маша
Петя
Яна
$ sort <names2 | uniq
Вася
Маша
Петя
Яна

Рис. 5

 

На рис. 5 приведен развернутый пример. Командой

cat names names >names2 мы создаем файл names2, содержащий

удвоенное содержимое ранее созданного файла names. Утилитой sort его

можно отсортировать в алфавитном порядке, а про утилиту uniq

известно, что она удаляет повторяющиеся строки. Однако удаляет она

только подряд идущие строки, поэтому, чтобы уникализировать строки в

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

отсортировать.

 

Нам уже известно, что перенаправлением


Предыдущая Следующая
 
Хостинг от uCoz