Найти тему
🐍 Путь Питониста

📁 Гениальная черта Linux. Каждая вещь в системе - файл. Что это значит?

Оглавление

Месяц назад я мигрировал с Windows на GNU/Linux и был поражён гениальностью файловой системы этой ОС. Одной из важнейших особенностей юниксовой файловой системы является концепция "Everything is a File", что дословно означает "Всё - файлы" или "Всё является файлом". Давайте разбираться!

А что, так можно было?

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

Во-первых, это предоставляет нам возможность не использовать специальные утилиты (типа AIDA), чтобы посмотреть некоторые параметры. Ведь такие файлы можно просто открыть в блокноте.

Во-вторых, это очень удобно при написании скриптов, т.к. не нужно учить какие-нибудь API. Я не программист и не системный администратор. Но писать скрипты для Linux - легко. Я уже написал несколько небольших скриптов, которые облегчают мне жизнь и автоматизируют некоторые процессы, которые на Windows мне приходилось каждый раз делать в ручную, если не было подходящей софтины в свободном доступе.

/proc

Допустим, я хочу найти подробную информацию о центральном процессоре. В папке /proc есть файл с вполне понятным именем - cpuinfo.

/proc/cpuinfo открыт в Leafpad (аналог Блокнот из Windows)
/proc/cpuinfo открыт в Leafpad (аналог Блокнот из Windows)

Открыть этот файл можно в обычном блокноте. И тут перед нами предстаёт вся нужная информация о процессоре: название, текущая частота, количество ядер и уязвимости, которым подвержен процессор.

Если вы хотите вывести эту информацию в терминале или, например, взять только нужную строчку, то делается это просто.

-3

В папке /proc также можно найти другую информацию. Например:

  • /proc/uptime - время работы системы без перезагрузок
  • /proc/version - версия о текущем ядре

/dev

В папке /dev содержатся файлы, представляющие устройства и не только. Например, /dev/cdrom - это наш оптический диск. Если хотите смонтировать его в систему, запустите команду mount и укажите /dev/cdrom в качестве желаемого устройства.

-4

Также, здесь можно найти все жесткие и твердотельные накопители, вставленные флешки и так далее. Все они имеют вид /dev/sbX. Конкретные разделы диска выглядят как sda1, sda2 и т.д.

Теперь понятно, откуда GParted берёт названия разделов (первая колонка) и названия дисков (в верхнем правом углу)
Теперь понятно, откуда GParted берёт названия разделов (первая колонка) и названия дисков (в верхнем правом углу)

/dev/random и /dev/null

В /dev также есть спец. устройства, или точнее сказать инструменты. Например, очень часто используемый из них - /dev/null. Это некая бездна, где пропадает всё, что туда посылается. Обычно используется, чтобы заглушить вывод программы, который, например, может состоять из ошибок, которые мы не хотим видеть.

команда > /dev/null 2>&1

-6

Заключение

Не совсем корректно говорить, что в Linux всё является файлом. Скорее, всё представлено в виде файлов и ведёт себя, как файлы. Благодаря чему, мы можем получать доступ к информации и устройствам без использования разных специализированных утилит, а также создавать скрипты. Например, сделать скрипт, который выводил бы нам информацию о загрузке процессора или уровень зарядки батареи в статусбар или на какую-нибудь панель не составит труда даже новичку.