Вход/Регистрация
Внутреннее устройство Linux
вернуться

Уорд Брайан

Шрифт:

Вы можете добавить выводимые данные к файлу вместо его перезаписи с помощью такого синтаксиса перенаправления >>:

$ command >> file

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

Чтобы отправить стандартный вывод какой-либо команды на стандартный вход другой команды, используйте символ вертикальной черты (|). Чтобы понять, как он работает, попробуйте набрать следующие команды:

$ head /proc/cpuinfo

$ head /proc/cpuinfo | tr a-z A-Z

Можно пропустить выходные данные через любое количество команд. Для этого добавляйте вертикальную черту перед каждой дополнительной командой.

2.14.1. Стандартная ошибка

Иногда при перенаправлении стандартного вывода вы можете обнаружить, что команда выводит в терминал что-то еще. Это называется стандартной ошибкой (stderr). Она является дополнительным выходным потоком для диагностики и отладки.

Например, такая команда вызовет ошибку:

$ ls /fffffffff > f

После ее выполнения файл f должен быть пустым, однако вы увидите в терминале следующее сообщение стандартной ошибки:

ls: cannot access /fffffffff: No such file or directory

Если желаете, можете перенаправить стандартную ошибку. Чтобы, например, отправить стандартный вывод в файл f, а стандартную ошибку в файл e, используйте синтаксис 2> следующим образом:

$ ls /fffffffff > f 2> e

Число 2 определяет идентификатор потока, который изменяет оболочка. Значение 1 соответствует стандартному выводу (по умолчанию), а значение 2 — стандартной ошибке.

Вы можете также направить стандартную ошибку туда же, куда осуществляется стандартный вывод, с помощью нотации >&.

Например, чтобы отправить стандартный вывод и стандартную ошибку в файл f, попробуйте такую команду:

$ ls /fffffffff > f 2>&1

2.14.2. Перенаправление стандартного ввода

Чтобы отправить файл на стандартный ввод команды, используйте оператор <:

$ head < /proc/cpuinfo

Вам может встретиться команда, которой потребуется указанный выше тип перенаправления, но поскольку большинство команд системы Unix принимает имена файлов в качестве аргументов, такое происходит нечасто. Эту команду можно было бы переписать в виде head /proc/cpuinfo.

2.15. Объяснение сообщений об ошибках

Когда у вас возникают проблемы при работе в системе, похожей на Unix (например, в Linux), вы должны читать сообщения об ошибках. В отличие от сообщений в других операционных системах, в системе Unix ошибки, как правило, точно указывают вам на то, что именно вышло из строя.

2.15.1. Структура сообщений об ошибке в Unix

Большинство команд системы Unix выдает одинаковые основные сообщения об ошибках, однако окончательный вид может немного различаться для разных команд. Вот пример сообщения, которое в том или ином виде обязательно вам встретится:

$ ls /dsafsda

ls: cannot access /dsafsda: No such file or directory

Это сообщение состоит из трех частей.

• Название команды: ls. Некоторые команды опускают такую идентифициру­ющую информацию, и это может раздражать при написании сценариев оболочки, хотя, по сути, это не так уж и важно.

• Имя файла, /dsafsda, которое является более конкретной информацией. Указанный путь содержит ошибку.

• Сообщение об ошибке No such file or directory указывает на ошибку в имени файла.

Если собрать эти части воедино, получится нечто вроде «команда ls пыталась открыть файл /dsafsda, но не смогла, поскольку такого файла нет». Это может казаться очевидным, однако подобные сообщения сбивают с толку, если вы запустите сценарий оболочки, который содержит ошибку в другой команде.

При устранении ошибок всегда начинайте разбираться с первой ошибки. Некоторые команды сообщают о том, что они ничего не смогут сделать до выяснения причин других ошибок. Представьте, например, что вы запускаете выдуманную команду под названием scumd, которая выдает такое сообщение об ошибке:

  • Читать дальше
  • 1
  • ...
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: