Месяц назад я мигрировал с Windows на GNU/Linux и был поражён гениальностью файловой системы этой ОС. Одной из важнейших особенностей юниксовой файловой системы является концепция "Everything is a File", что дословно означает "Всё - файлы" или "Всё является файлом". Давайте разбираться!
А что, так можно было?
В Linux вы можете найти много вещей, которые представлены в виде файлов. Эти файлы могут содержать информацию об устройствах, технические характеристики вашего ПК и другие полезные вещи, например, генератор случайных чисел.
Во-первых, это предоставляет нам возможность не использовать специальные утилиты (типа AIDA), чтобы посмотреть некоторые параметры. Ведь такие файлы можно просто открыть в блокноте.
Во-вторых, это очень удобно при написании скриптов, т.к. не нужно учить какие-нибудь API. Я не программист и не системный администратор. Но писать скрипты для Linux - легко. Я уже написал несколько небольших скриптов, которые облегчают мне жизнь и автоматизируют некоторые процессы, которые на Windows мне приходилось каждый раз делать в ручную, если не было подходящей софтины в свободном доступе.
/proc
Допустим, я хочу найти подробную информацию о центральном процессоре. В папке /proc есть файл с вполне понятным именем - cpuinfo.
Открыть этот файл можно в обычном блокноте. И тут перед нами предстаёт вся нужная информация о процессоре: название, текущая частота, количество ядер и уязвимости, которым подвержен процессор.
Если вы хотите вывести эту информацию в терминале или, например, взять только нужную строчку, то делается это просто.
В папке /proc также можно найти другую информацию. Например:
- /proc/uptime - время работы системы без перезагрузок
- /proc/version - версия о текущем ядре
/dev
В папке /dev содержатся файлы, представляющие устройства и не только. Например, /dev/cdrom - это наш оптический диск. Если хотите смонтировать его в систему, запустите команду mount и укажите /dev/cdrom в качестве желаемого устройства.
Также, здесь можно найти все жесткие и твердотельные накопители, вставленные флешки и так далее. Все они имеют вид /dev/sbX. Конкретные разделы диска выглядят как sda1, sda2 и т.д.
/dev/random и /dev/null
В /dev также есть спец. устройства, или точнее сказать инструменты. Например, очень часто используемый из них - /dev/null. Это некая бездна, где пропадает всё, что туда посылается. Обычно используется, чтобы заглушить вывод программы, который, например, может состоять из ошибок, которые мы не хотим видеть.
команда > /dev/null 2>&1
Заключение
Не совсем корректно говорить, что в Linux всё является файлом. Скорее, всё представлено в виде файлов и ведёт себя, как файлы. Благодаря чему, мы можем получать доступ к информации и устройствам без использования разных специализированных утилит, а также создавать скрипты. Например, сделать скрипт, который выводил бы нам информацию о загрузке процессора или уровень зарядки батареи в статусбар или на какую-нибудь панель не составит труда даже новичку.