Как использовать 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.
Получение информации о процессе с помощью procfs
В файловой системе proc все запущенные процессы имеют свой собственный каталог, который является их идентификационным номером процесса или PID. Например, процесс 1, процесс init, который запускает все другие процессы в системе Linux во время загрузки, имеет свой собственный каталог с тем же номером, / proc / 1 .
При нахождении процесса, который вы хотите исследовать, вы будете использовать команду ps , top, htop или другие команды Linux, чтобы вывести PID этого конкретного процесса. Когда вы найдете идентификатор процесса, перейдите в этот каталог в / proc .
Внутри каталога процесса вы найдете несколько файлов, содержащих информацию о различных аспектах процесса. Например, EXE является символической ссылкой на исполняемый файл , который начал процесс, переменные списки ENVIRON среды и командная_строка показывает любые аргументы командной строки , процесс был запущен с. В файле состояния содержится большая часть этой информации в более "удобочитаемом" формате.
Получение системной информации с помощью procfs
Файловая система proc показывает, что в Linux почти все является файлом, даже то, чего вы не ожидали. Даже внутри корневой папки вы найдете множество файлов, каждый из которых содержит информацию о различных компонентах системы.
Linux с его уникальными командами и бесчисленным множеством дистрибутивов поначалу может показаться новичкам загадочной операционной системой, но все находится на своих местах.