Операционные системы. Замятин А.В - 15 стр.

UptoLike

Составители: 

15
операция «>>». В следующем примере текущие дата и время будут до-
писаны в конец файла с именем «dates.txt»:
$ date >> dates.txt
Сообщения об ошибках выводятся в стандартный поток ошибок.
Например, пусть выполняется попытка получить список файлов в ката-
логе без соответствующих прав доступа:
$ ls -l /home/ftp/bin/
ls: /home/ftp/bin/: Access denied
В данном случае команда ls вывела сообщение в поток стандартной
ошибки. Чтобы перенаправить его в указанный файл, можно использо-
вать операции «2>» и «2>>» (по аналогии с «>» и «>>», только цифра 2
говорит о том, что нужно перенаправить поток ошибок), например:
$ ls -l /home/ftp/bin/ 2> last-error.txt
Операции перенаправления ввода-вывода можно комбинировать,
например:
$ wc < /etc/passwd 2>> errors.txt > result.txt
Существует другой полезный способ перенаправления ввода-
вывода конвейеры команд. Операция «|» (знак вертикальной черты)
позволяет перенаправить стандартный поток вывода одной команды на
стандартный входной поток другой команды:
$ ls -l /etc | less
В этом примере команда ls выводит длинный список файлов в ка-
талоге /etc, эти данные попадают на вход программы less, которая по-
зволяет пролистывать текст с помощью клавиш управления курсором.
Так осуществляется «объединение» двух независимых команд в один
«конвейер».
Рассмотрим более сложный пример формирования конвейера ко-
манд. Пусть нам требуется получить в файле «bash-users.txt» отсортиро-
ванный список пользователей в системе, пользующихся командной обо-
лочкой bash. Этого можно было бы добиться использованием несколь-
ких команд, сохраняя промежуточные данные во временных файлах
(комментарии к командам оболочки приведенные после знака #)
$ grep 'bash' /etc/passwd > list1.tmp
# Поиск по заданному шаблону «bash» в файле /etc/passwd
$ sort < list1.tmp > list2.tmp
# Сортировка по алфавиту данных из файла list1.tmp и запись в list2.tmp