4. Системная информация macOS
Диагностика системы через терминал
Заголовок раздела «Диагностика системы через терминал»macOS предоставляет мощные инструменты командной строки для получения информации о системе: процессоре, памяти, дисках, аккумуляторе. Это незаменимо для диагностики проблем и мониторинга.
sw_vers — версия macOS
Заголовок раздела «sw_vers — версия macOS»sw_vers # все данныеsw_vers -productName # macOSsw_vers -productVersion # 14.3.1sw_vers -buildVersion # 23D60
# Альтернативаuname -a # версия ядра Darwinuname -r # только версия ядраsystem_profiler — полная информация о системе
Заголовок раздела «system_profiler — полная информация о системе»system_profiler — детальный отчёт о каждом аспекте системы. Аналог «Об этом Mac» в GUI.
system_profiler # ВСЁ (очень много!)system_profiler SPHardwareDataType # железо: CPU, RAM, серийный номерsystem_profiler SPSoftwareDataType # ПО: macOS версия, uptimesystem_profiler SPMemoryDataType # оперативная памятьsystem_profiler SPStorageDataType # хранилищеsystem_profiler SPDisplaysDataType # дисплеи и GPUsystem_profiler SPNetworkDataType # сетевые интерфейсыsystem_profiler SPUSBDataType # USB устройстваsystem_profiler SPBluetoothDataType # Bluetooth
# Вывод в JSONsystem_profiler SPHardwareDataType -jsonsystem_profiler SPHardwareDataType -json | python3 -m json.tool
# Сохранить отчётsystem_profiler SPHardwareDataType > hardware_report.txtПолезные типы данных:
SPHardwareDataType— модель, CPU, RAM, серийный номерSPSoftwareDataType— версия macOS, время работыSPStorageDataType— диски и разделыSPNetworkDataType— сетевые интерфейсыSPPowerDataType— состояние батареи
diskutil — управление дисками
Заголовок раздела «diskutil — управление дисками»diskutil list # все диски и разделыdiskutil info / # информация о корневом дискеdiskutil info /Volumes/MyDisk # информация о дискеdiskutil listFilesystems # поддерживаемые файловые системы
# Статистика использования дискаdf -h # использование всех разделовdf -h / # только корневойdu -sh ~ # размер домашней директорииdu -sh ~/Downloads/* # что занимает место в Downloadsdu -sh * | sort -h | tail -20 # топ папок по размеру
# Управление томамиdiskutil eject /dev/disk2 # извлечь внешний дискdiskutil mountDisk /dev/disk2 # смонтироватьdiskutil unmountDisk /dev/disk2 # размонтировать
# Форматирование (ОСТОРОЖНО!)# diskutil eraseVolume APFS "NewName" /dev/disk3s1ioreg — дерево устройств
Заголовок раздела «ioreg — дерево устройств»ioreg -l # полный список (очень длинный)ioreg -p IOUSBHostDevice # USB устройстваioreg -p IODeviceTree -n AppleSmartBattery # батарея
# Информация о батарееioreg -l -n AppleSmartBattery | grep -i capacityioreg -l -n AppleSmartBattery | grep -E "CurrentCapacity|MaxCapacity|CycleCount|Temperature"pmset — управление питанием
Заголовок раздела «pmset — управление питанием»pmset -g # текущие настройки питанияpmset -g batt # статус батареиpmset -g ps # источник питанияpmset -g log # лог событий питанияpmset -g assertions # что мешает системе спать
# Статус батареи подробноioreg -l -n AppleSmartBattery | \ grep -E '"(CurrentCapacity|MaxCapacity|CycleCount|DesignCapacity|Temperature)"' | \ awk '{print $1, $3}'Мониторинг в реальном времени
Заголовок раздела «Мониторинг в реальном времени»# top — стандартный мониторингtoptop -u username # только процессы пользователяtop -n 1 -l 1 # один снимок без интерактива
# htop — улучшенный (установить через brew)brew install htophtop
# vm_stat — статистика виртуальной памятиvm_statvm_stat 2 # обновлять каждые 2 секунды
# Загрузка CPUsysctl -n hw.ncpu # количество CPU ядерsysctl -n machdep.cpu.brand_string # модель CPUsysctl hw.memsize # объём RAM в байтахecho "$(($(sysctl -n hw.memsize) / 1073741824)) GB" # в GB
# Сетьnetstat -an | grep LISTEN # прослушиваемые портыnetstat -i # статистика интерфейсовifconfig # конфигурация интерфейсовifconfig en0 # только Wi-FiСкрипт системного дашборда
Заголовок раздела «Скрипт системного дашборда»#!/bin/bash# system-info.sh — быстрый обзор системы
echo "=== macOS System Info ==="echo ""
# Версия ОСecho "OS: $(sw_vers -productName) $(sw_vers -productVersion)"echo "Kernel: $(uname -r)"echo ""
# ЖелезоCPU=$(sysctl -n machdep.cpu.brand_string)CORES=$(sysctl -n hw.ncpu)RAM=$(($(sysctl -n hw.memsize) / 1073741824))echo "CPU: $CPU ($CORES cores)"echo "RAM: ${RAM}GB"echo ""
# Дискecho "Disk Usage:"df -h / | tail -1 | awk '{print " Root: " $3 " used of " $2 " (" $5 " full)"}'echo ""
# Батарея (если MacBook)BATTERY=$(pmset -g batt 2>/dev/null | grep -Eo "[0-9]+%" | head -1)if [ -n "$BATTERY" ]; then echo "Battery: $BATTERY"fi
# Uptimeecho "Uptime: $(uptime | awk '{print $3, $4}' | sed 's/,//')"
echo ""echo "=== Top Processes by CPU ==="top -l 1 -n 5 -stats pid,command,cpu | tail -6Практика
Заголовок раздела «Практика»# 1. Узнай всё о своём Macsystem_profiler SPHardwareDataType
# 2. Проверь версию macOSsw_vers
# 3. Посмотри использование дискаdf -h
# 4. Узнай что занимает больше всего места в домашней директорииdu -sh ~/* 2>/dev/null | sort -h | tail -10
# 5. Статус батареи (если MacBook)pmset -g batt
# 6. Сколько оперативкиecho "RAM: $(($(sysctl -n hw.memsize) / 1073741824)) GB"
# 7. Сколько CPU ядерsysctl -n hw.ncpu
# 8. Сохрани полный отчёт о системеsystem_profiler > ~/Desktop/system_report.txtopen ~/Desktop/system_report.txtЗнание системных инструментов помогает быстро диагностировать проблемы с производительностью и состоянием оборудования!