Кто-то упомянул

echo "" > /dev/null 

как команда для меня, что я должен бежать. Однако я слишком нервничаю, чтобы попытаться, потому что кто-то еще в Интернете упомянул, что это кажется «относительно безобидным ...»

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

Что оно делает?

1 ответ1

5

Это не опасно.

  • Команда echo используется для отправки вывода на стандартный stdout . Обычно это ваш терминал, но его можно перенаправить на другие вещи.
  • Оператор перенаправления > перенаправит вывод из stdout в файл по вашему выбору.
  • Файлы в /dev обычно представляют собой файлы особого типа, которые отправляют вывод в драйвер устройства вместо хранилища.

В современных системах Unix эти "специальные" файлы создаются и динамически поддерживаются процессом обнаружения оборудования - например, udev или systemd под Linux. Но возможно иметь полностью статичную систему, в которой они делаются вручную (через mknod - это один из способов), если аппаратное обеспечение в системе не изменяется - до преобладания интерфейсов Plug-and-Play (например, различные Unices в 70-х, 80-х и начале 90-х) это было обычным делом.

/dev/null - это стандартный драйвер устройства Unix, который просто отбрасывает то, что получает. Это часто используется, чтобы выбросить нежелательный вывод или для тестирования.

Если вы используете это в Windows Подсистема Linux для Windows, я не уверен, как он создает эти файлы, но LXSS, вероятно, представляет виртуальную версию их программам, которые работают в подсистеме для совместимости. (В Windows есть драйвер устройства "Null", если вы посмотрите devmgmt.msc разделе «Устройства, отличные от Plug-and-Play» - LXSS, вероятно, работает за кулисами, чтобы /dev/null действительно использовал этот драйвер Windows) Cygwin, другое программное обеспечение, которое представляет подсистему Linux, тоже делает это.

"" является пустой строкой, ничего не значащей, но echo добавляет новую строку, если не указан ключ -n , поэтому echo "" выводит новую строку в stdout (перенаправленный в /dev/null в примере).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .