Я имел эту проблему с домашним молоком и кешью Спасибо, это работает! до этого я пробовал `/бин/*Ш" - не работает. Я забыл немного, но регэкспы.. забыл добавить точку (любой символ) `.*` (один раз, ни один или много). Странно. Я использую терминал.приложение на Льва все время, и я не припоминаю этого. Когда я должен использовать "правильное усилие" ? Есть сыворотка, я могу вернуть свое внимание на "дыхание" или это не обязательно ? Если вы не получите хороший ответ, Давайте откроем ветку на [мета] чтобы обсудить, как улучшить многотомного вопросы на сайте. Я думаю, со всеми вопросами в конце этого примут как слишком широкие и/или просто игнорируют людей, которые имеют хороший ответ на один из ваших вопросов, но не могу решить остальные 4 (или 5) Примечание: Я иду из Водное поло фон, который 'слишком' фокусируется на короткие дистанции спринт. Поэтому, ваш пробег может варьироваться с оптимальным размером интервалов. Я предлагаю задавать другой вопрос, когда вы хотите более конкретных рекомендаций по программе обучения

Я подозреваю, почему имеет много общего с видением/дизайн, которые сформировали Unix (а следовательно и Linux), и преимущества, вытекающие из него.

Не сомневаюсь, что есть немаловажным бенефис чтобы не крутился лишний процесс, но я думаю, что больше к ней: раньше были в Unix "все является файлом" метафора, которая имеет неочевидные, но элегантный преимущество, если вы посмотрите на это с зрения системы, а не оболочки сценариев зрения.

Скажем, у вас есть свой нуль командной строки программы, и /dev/нуль устройства узла. Из shell-скриптов точки зрения, фу | нуль, программа на самом деле действительно полезный и удобный, и фу >/dev/нуль занимает немного больше времени и может показаться странным.

Но два упражнения здесь:

  1. Давайте внедрять программу нулевого использованием существующих средств Unix и /dev/нуль - легко: кошка >/dev/нуль. Сделано.

  2. Вы можете реализовать /dev/нуль с точки зрения нуль?

Вы совершенно правы, что код на C, чтобы просто отменить ввод тривиально, так что это может не быть очевидно, почему это полезно иметь виртуальный файл доступен для задания.

Подумайте: почти каждый язык программирования уже должен работать с файлами, дескрипторы файлов и пути к файлам, потому что они входили в Unix "все является файлом" парадигма с самого начала.

Если все у вас есть программы, которые пишут в stdout, ну, программа не заботится, если вы перенаправить их в виртуальный файл, который глотает все, что пишет, или труба в программу, которая проглатывает все пишет.

Теперь если у вас есть программы, которые занимают пути к файлу для чтения или записи данных (в большинстве программ это сделать) - и вы хотите добавить "пробел" или "отменить этот выходной" функциональность этих программ - ну, а с /dev/нуль , который поставляется бесплатно.

Обратите внимание, что элегантность его в том, что это уменьшает сложность кода всех участников программы - для каждого Общ-но-специальных usecase, что ваша система может предоставить в качестве "файла" с "именем", код можете избежать добавления пользовательских параметров командной строки и пользовательский код для обработки.

Хорошее программное обеспечение часто зависит от нахождения хороших или "природные" метафоры для реферирования какой-то элемент проблемы таким образом, что становится легче думать о том, но остается гибким, так что вы можете решить в основном тот же ассортимент из более важных проблем, без необходимости тратить время и умственную энергию на переопределении решения одной и той же низкоуровневые проблемы постоянно.

"Все является файлом", похоже, одна такая метафора для доступа средств: вы называете открытие данного пути в heirarchical имен, получать ссылку (файловый дескриптор) объекта, и вы можете читать и писатьи т. д. на файловых дескрипторов. Вашему стандартного ввода/вывода в stdout/stderr, в также дескрипторы файлов, что только что произошло, чтобы быть предварительно открыты для вас. Ваши трубы просто файлов и дескрипторы файлов, и перенаправление файл позволяет склеить все эти куски вместе.

В Unix это удалось так же, как и в части из-за того, насколько хорошо эти абстракции работали вместе, и /dev/нуль лучше всего понимается как часть этого целого.


П. С. стоит взглянуть на версию Unix "все является файлом", и такие вещи, как /dev/нуль как первые шаги в направлении более гибкого и мощного обобщения метафоры, которая была реализована во многих системах, которые последовали.

Например, в Unix файл-как объекты, такие как /dev/нуль должен быть реализован в ядре сама, но оказывается, что это полезно, достаточно предоставить функцию в файл/папку форме, которая с тех пор несколько систем, которые позволяют программы для этого.

Одним из первых был план 9 операционной системы, сделанные некоторыми из тех же людей, которые сделали для Unix. Позже, ГНУ Херд сделал что-то подобное со своими "переводчиками". Между тем, в Linux закончилось тем, что предохранитель (который распространился на другие системы сейчас также).