LinuxКак сделать

Что означает «Все это файл» в Linux?

image

Одной из определяющих особенностей Linux и других UNIX-подобных операционных систем является то, что «все является файлом». Это упрощение, но понимание того, что это значит, поможет вам понять, как работает Linux.

Многие вещи в Linux появляются в вашей файловой системе, но на самом деле они не являются файлами. Это специальные файлы, которые представляют аппаратные устройства, системную информацию и другие вещи, включая генератор случайных чисел.

Эти специальные файлы могут находиться в псевдо или виртуальных файловых системах, таких как / dev, который содержит специальные файлы, которые представляют устройства, и / proc, который содержит специальные файлы, которые представляют информацию о системе и процессе.

/ Proc

Например, допустим, вы хотите найти информацию о вашем процессоре. Каталог / proc содержит специальный файл — / proc / cpuinfo -, который содержит эту информацию.

image

Вам не нужна специальная команда, которая сообщает вам информацию о вашем процессоре — вы можете просто прочитать содержимое этого файла, используя любую стандартную команду, которая работает с текстовыми файлами. Например, вы можете использовать команду cat / proc / cpuinfo, чтобы напечатать содержимое этого файла на терминал — вывести информацию о вашем процессоре на терминал. Вы даже можете открыть / proc / cpuinfo в текстовом редакторе, чтобы просмотреть его содержимое.

Помните, что / proc / cpuinfo на самом деле не является текстовым файлом, содержащим эту информацию — ядро ​​Linux и файловая система proc предоставляют эту информацию нам в виде файла. Это позволяет нам использовать знакомые инструменты для просмотра и работы с информацией.

image

Каталог / proc также содержит другие подобные файлы, например:

  • / proc / uptime — показывает время работы вашего ядра Linux — другими словами, как долго ваша система была включена без выключения.
  • / proc / version — показывает версию вашего ядра Linux.

/ DEV

В каталоге / dev вы найдете файлы, которые представляют устройства, а также файлы, которые представляют другие специальные вещи. Например, / dev / cdrom — это ваш привод CD-ROM. / dev / sda представляет ваш первый жесткий диск, а / dev / sda1 представляет первый раздел вашего первого жесткого диска.

Хотите смонтировать свой CD-ROM? Запустите команду mount и укажите / dev / cdrom как устройство, которое вы хотите смонтировать. Хотите разделить свой первый жесткий диск? Запустите утилиту разбиения диска и укажите / dev / sda в качестве жесткого диска, который вы хотите редактировать. Хотите отформатировать первый раздел на вашем первом жестком диске? Запустите команду форматирования и скажите ей форматировать / dev / sda1.

image

Как видите, показ этих устройств как части файловой системы имеет свои преимущества. Файловая система обеспечивает согласованное «пространство имен», которое все приложения могут использовать для адресации и доступа к устройствам.

/ dev / null, / dev / random и / dev / zero

Файловая система / dev не просто содержит файлы, которые представляют физические устройства. Вот три наиболее заметных специальных устройства, которые он содержит:

  • / dev / null — удаляет все записанные в него данные — думайте об этом как о мусорном ведре или черной дыре. Если вы когда-нибудь увидели комментарий, в котором говорилось, что вы должны отправлять жалобы в / dev / null, — это отвратительный способ сказать «выбросить их в мусорную корзину».
  • / dev / random — производит случайность с использованием окружающего шума. Это генератор случайных чисел, который вы можете использовать.
  • / dev / zero — Производит нули — постоянный поток нулей.

Если вы думаете об этих трех как о файлах, вы не увидите их использование. Вместо этого думайте о них как о инструментах.

Например, по умолчанию команды Linux выдают сообщения об ошибках и другой вывод, который они печатают на стандартный вывод, обычно на терминал. Если вы хотите запустить команду и не заботиться о ее выводе, вы можете перенаправить этот вывод в / dev / null. Перенаправление вывода команды в / dev / null немедленно отбрасывает ее. Вместо того, чтобы каждая команда реализовывала свой «тихий режим», вы можете использовать этот метод с любой командой.

команда> / dev / null

image

Если вам нужен источник случайности, скажем, для генерации ключа шифрования, вам не нужно писать собственный генератор случайных чисел — вы можете использовать / dev / random.

Чтобы стереть содержимое жесткого диска, записав на него нули, вам не нужна специальная утилита, предназначенная для обнуления диска — вы можете использовать стандартные утилиты и / dev / zero. Например, команда dd читает из местоположения и записывает в другое местоположение. Следующая команда считывает нули из / dev / zero и записывает их непосредственно в первый раздел жесткого диска в вашей системе, полностью стирая его содержимое.

( Предупреждение : эта команда удалит все данные в вашем первом разделе, если вы запустите его. Запускайте эту команду, только если вы хотите уничтожить данные.)

дд если = / dev / ноль = / dev / sda1

Здесь мы используем dd со специальными файлами (/ dev / zero и / dev / sda1), но мы также можем использовать dd для чтения и записи в реальные файлы. Эта же команда работает как для непосредственного управления устройствами, так и для работы с файлами.

осветление

На практике правильнее будет сказать, что «все является потоком байтов», чем «все является файлом». / Dev / random — это не файл, но это, безусловно, поток байтов. И хотя эти вещи технически не являются файлами, они доступны в файловой системе — файловая система представляет собой универсальное «пространство имен», где все доступно. Хотите получить доступ к генератору случайных чисел или читать прямо с устройства? Вы найдете оба в файловой системе; никакой другой формы адресации не требуется.

Конечно, некоторые вещи на самом деле не являются файлами — процессы, запущенные в вашей системе, не являются частью файловой системы. «Все — файл» неточно, но многие вещи ведут себя как файлы.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone