Как использовать procfs для получения информации о системе в Linux

Если вы посмотрите на файловую систему Linux, вы, возможно, заметили каталог / proc с множеством странных номеров и других файлов внутри. Что делает этот каталог? На самом деле он содержит много полезной информации, связанной с вашей системой Linux и запущенными процессами.

В этой статье подробно обсуждается файловая система proc, а также дается краткое руководство о том, как получить системную информацию с помощью procfs.

Что такое файловая система proc?

Файловая система proc (procfs) – это идея, заимствованная из исследовательской системы Plan 9 от Bell Labs , исследовательского преемника исходной системы Unix, разработанной там.

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

Самый полезный файл в иерархии процессов для системной информации – это файл cpuinfo . Для просмотра наберите:

 cat /proc/cpuinfo

В зависимости от того, сколько ядер ЦП у вашей машины, этот файл может содержать много информации. Следовательно, вы можете заменить cat на Most, то есть на пейджер Linux .

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

Связанный: Лучшие утилиты командной строки для просмотра содержимого файлов в Linux

В файловой системе proc все запущенные процессы имеют свой собственный каталог, который является их идентификационным номером процесса или PID. Например, процесс 1, процесс init, который запускает все другие процессы в системе Linux во время загрузки, имеет свой собственный каталог с тем же номером, / proc / 1 .

При нахождении процесса, который вы хотите исследовать, вы будете использовать команду ps , top, htop или другие команды Linux, чтобы вывести PID этого конкретного процесса. Когда вы найдете идентификатор процесса, перейдите в этот каталог в / proc .

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

Связанный: Что такое процесс в Linux?

Получение системной информации с помощью procfs

Файловая система proc показывает, что в Linux почти все является файлом, даже то, чего вы не ожидали. Даже внутри корневой папки вы найдете множество файлов, каждый из которых содержит информацию о различных компонентах системы.

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