=====Что означает "> /dev/null 2>&1"?===== {{ https://habrastorage.org/r/w1560/getpro/habr/post_images/cdf/5a0/ce9/cdf5a0ce9d71b85e01c7b9236236d766.jpg}}Долгое время никто не мог объяснить мне, что за амперсанды, знаки < и > и цифры идут после юниксовых команд. При этом все примеры были показаны без объяснения — зачем все это? Гугл также не давал ответа. Особенно заметно использование таких команд во время работы компилятора. В этой статье постараюсь объяснить эти странные команды.\\ \\ К примеру, у нас есть такая строчка:\\ ''cron job command > /dev/null 2>&1''\\ \\ \\ \\ == Перенаправление вывода == \\ Оператор > («больше чем»), как в примере выше, переадресовывает вывод программы. В данном случае, что-то отправляется в /dev/null, а что-то переадресовывается в &1.\\ \\ == Стандартные ввод, вывод и ошибка == \\ Существует три стандартных значения ввода и вывода для программ. Ввод получают от клавиатуры (интерактивная, диалоговая программа), или из программы, обрабатывающей вывод другой программы.\\ Результат программы обычно печатается в стандартной вывод и иногда в файл «STDERR» (ошибка). Все это три дескриптора файла (вы можете представить их как «потоки данных», пришли из языка программирования C), которые часто называют STDIN, STDOUT и STDERR.\\ \\ Но часто к ним обращаются не по имени, а по номеру:\\ 0 — STDIN, 1 — STDOUT и 2 — STDERR\\ По умолчанию, если вы не укажете номер, то будет подразумеваться STDOUT.\\ \\ В нашем примере видно, что команда направляет свой стандартный вывод в /dev/null (псевдоустройство, которое может принять произвольный объём данных, не сохраняя их совершенно нигде, следовательно, подавив стандартный вывод). Затем все ошибки (то есть STDERR) перенаправить в стандартный вывод. Необходимо поставить амперсанд "&" перед номером назначения.\\ \\ Смысл вкратце — "**весь вывод указанной команды спихнуть в черную дыру!**".\\ Это один из способов сделать программу по-настоящему безмолвной. Добавлю, что команда в примере аналогична команде ''cron job command >/dev/null 2>/dev/null''\\ \\ [[http://www.freebsd.org/doc/ru/books/faq/funnies.html#DEV-NULL|Официальный FAQ]] FreeBSD предупреждает: отправка данных в /dev/null/ перегревает ваш процессор :)