Справочник по командам CentOS

//

Admin

Справочник по основным командам CentOS для администратора

1. Системная информация и мониторинг

uname — информация о системе

bash

uname -a                    # Все сведения о системе
uname -r                    # Только версия ядра
uname -m                    # Архитектура процессора

hostnamectl — управление hostname

bash

hostnamectl                 # Полная информация о системе
hostnamectl set-hostname server1.example.com  # Изменить hostname

uptime — время работы и нагрузка

bash

uptime                      # Время работы + средняя нагрузка

date — дата и время

bash

date                        # Текущая дата и время
date --set="2023-12-01 10:00:00"  # Установить дату/время
timedatectl set-timezone Europe/Moscow  # Установить часовой пояс

df — свободное место на дисках

bash

df -h                       # Человеко-читаемый формат
df -i                       # Использование inodes
df -T                       # С типами файловых систем

du — использование диска

bash

du -sh /home                # Размер директории в читаемом формате
du -sh /*                   # Размер всех корневых директорий
du -h --max-depth=1 /var    # Размер с глубиной просмотра

free — оперативная память

bash

free -h                     # Память в удобном формате
free -m                     # В мегабайтах
free -h -s 5                # Обновлять каждые 5 секунд

top / htop — мониторинг процессов

bash

top                         # Динамический просмотр процессов
htop                        # Улучшенный top (установить: yum install htop)
# Клавиши в top: M - по памяти, P - по CPU, 1 - все CPU, k - kill процесс

lscpu — информация о CPU

bash

lscpu                       # Все параметры процессора
lscpu -p                    # В формате для парсинга

lsblk — блочные устройства

bash

lsblk                       # Все блочные устройства
lsblk -f                    # С файловыми системами
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT  # Выборочные поля

2. Управление пакетами (yum/dnf)

yum — менеджер пакетов (CentOS 7)

bash

yum update                  # Обновить все пакеты
yum install nginx           # Установить пакет
yum remove httpd            # Удалить пакет
yum search php              # Поиск пакета
yum info httpd              # Информация о пакете
yum list installed          # Все установленные пакеты
yum provides /etc/passwd    # Какой пакет предоставляет файл
yum check-update            # Проверить обновления
yum history                 # История операций
yum clean all               # Очистить кэш

dnf — менеджер пакетов (CentOS 8+)

bash

dnf update                  # Обновить пакеты
dnf install package         # Установить пакет
dnf remove package          # Удалить пакет
dnf search pattern          # Поиск
dnf repo list               # Список репозиториев

rpm — низкоуровневые операции

bash

rpm -qa                     # Все установленные пакеты
rpm -qi package             # Информация о пакете
rpm -ql httpd               # Файлы в пакете
rpm -qf /etc/passwd         # Кому принадлежит файл
rpm -V httpd                # Проверить целостность пакета
rpm -ivh package.rpm        # Установить rpm файл
rpm -e package              # Удалить пакет

3. Управление службами

systemctl — управление службами

bash

systemctl start httpd       # Запустить службу
systemctl stop firewalld    # Остановить службу
systemctl restart nginx     # Перезапустить
systemctl reload sshd       # Перечитать конфигурацию
systemctl enable nginx      # Добавить в автозагрузку
systemctl disable httpd     # Убрать из автозагрузки
systemctl status sshd       # Статус службы
systemctl is-active docker  # Проверить активна ли служба
systemctl list-units --type=service  # Все службы
systemctl daemon-reload     # Перечитать конфигурации systemd

service — альтернатива (старый стиль)

bash

service httpd start         # Запустить службу
service network restart     # Перезапустить
service --status-all        # Статус всех служб

4. Управление процессами

ps — процессы

bash

ps aux                      # Все процессы
ps -ef                      # Полный список
ps aux --sort=-%mem         # Сортировка по памяти
ps aux --sort=-%cpu         # Сортировка по CPU
ps aux | grep nginx         # Поиск процесса
ps -p PID -o pid,ppid,cmd   # Конкретный процесс

pstree — дерево процессов

bash

pstree                      # Дерево процессов
pstree -p                   # С PID
pstree -a                   # С аргументами

kill — управление процессами

bash

kill PID                    # Отправить SIGTERM
kill -9 PID                 # SIGKILL (принудительно)
kill -15 PID                # SIGTERM (корректное завершение)
kill -HUP PID               # Перечитать конфигурацию
killall nginx               # Завершить все процессы по имени
pkill nginx                 # Завершить по имени

nice / renice — приоритеты

bash

nice -n 10 command          # Запустить с низким приоритетом
renice 15 -p PID            # Изменить приоритет процесса

5. Сетевые команды

ip — сетевые интерфейсы (современная)

bash

ip addr show                # Все интерфейсы
ip link show                # Состояние интерфейсов
ip route show               # Таблица маршрутизации
ip -s link                  # Статистика
ip neigh show               # ARP таблица
ip addr add 192.168.1.10/24 dev eth0  # Добавить IP

ifconfig — сетевые интерфейсы (устаревшая)

bash

ifconfig                    # Все интерфейсы
ifconfig eth0 up            # Включить интерфейс
ifconfig eth0 192.168.1.10  # Назначить IP

ss — сокеты (замена netstat)

bash

ss -tulpn                   # Все открытые порты
ss -tln                     # TCP порты
ss -uln                     # UDP порты
ss -s                       # Статистика
ss dst 192.168.1.1          # Соединения к адресу

netstat — сокеты (устаревший)

bash

netstat -tulpn              # Все порты
netstat -rn                 # Таблица маршрутизации
netstat -i                  # Статистика интерфейсов

ping — проверка связи

bash

ping 8.8.8.8                # Проверка связи
ping -c 5 google.com        # 5 пакетов
ping -I eth1 10.0.0.1       # С указанием интерфейса

traceroute / tracepath — маршрут

bash

traceroute google.com       # Определить маршрут
tracepath google.com        # Альтернатива

dig / nslookup — DNS

bash

dig example.com             # DNS запрос
dig example.com MX          # Запрос MX записей
dig @8.8.8.8 google.com     # Через конкретный DNS
nslookup google.com         # Классический DNS запрос

wget / curl — HTTP

bash

wget http://example.com/file.tar.gz  # Скачать файл
wget -O filename url        # Сохранить с именем
curl -I http://example.com  # Только заголовки
curl -o file.txt url        # Скачать в файл

firewall-cmd — firewalld

bash

firewall-cmd --list-all     # Все правила
firewall-cmd --zone=public --add-port=80/tcp --permanent  # Открыть порт
firewall-cmd --reload       # Применить правила
firewall-cmd --get-zones    # Список зон

6. Работа с файлами и дисками

ls — список файлов

bash

ls -la                      # Все файлы с деталями
ls -lh                      # Человеко-читаемые размеры
ls -ltr                     # Сортировка по времени
ls -R                       # Рекурсивно

find — поиск файлов

bash

find / -name "*.log"        # Поиск по имени
find /var -type f -size +100M  # Файлы больше 100М
find /home -user username   # По владельцу
find /tmp -mtime +7         # Измененные более 7 дней назад
find . -perm 777            # По правам
find / -executable -type f  # Исполняемые файлы

grep — поиск текста

bash

grep "error" /var/log/messages  # Поиск в файле
grep -r "pattern" /etc/         # Рекурсивно
grep -i "ERROR" file.log        # Без учета регистра
grep -v "exclude" file.txt      # Исключить строки
grep -A 3 -B 2 "error" log.txt  # С контекстом
egrep "(error|warning)" log.txt # Регулярные выражения

chmod / chown — права доступа

bash

chmod 755 file.sh           # Установить права (rwxr-xr-x)
chmod +x script.sh          # Добавить выполнение
chmod -R 755 /dir           # Рекурсивно
chown user:group file       # Изменить владельца и группу
chown -R www:www /var/www   # Рекурсивно

ln — ссылки

bash

ln -s /original /link       # Создать символическую ссылку
ln file1 file2              # Жесткая ссылка

tar — архивация

bash

tar -czvf archive.tar.gz /dir  # Создать gzip архив
tar -xzvf archive.tar.gz    # Распаковать gzip архив
tar -cjvf archive.tar.bz2 /dir # bzip2 архив
tar -xvf archive.tar        # Распаковать любой tar

rsync — синхронизация

bash

rsync -avz source/ user@host:/dest/  # Синхронизация
rsync -avz --delete src/ dest/       # С удалением лишнего
rsync -avz -e ssh src/ remote:/dest/ # Через SSH

mount / umount — монтирование

bash

mount /dev/sdb1 /mnt        # Монтировать
mount -a                    # Монтировать все из /etc/fstab
umount /mnt                 # Отмонтировать
mount -t nfs server:/share /mnt  # Монтировать NFS

fdisk / lsblk — разделы

bash

fdisk -l                    # Список разделов
fdisk /dev/sdb              # Редактировать таблицу разделов
lsblk                       # Блочные устройства в дереве

blkid — UUID файловых систем

bash

blkid                       # UUID всех файловых систем
blkid /dev/sda1             # Конкретный раздел

7. Пользователи и группы

useradd / userdel — пользователи

bash

useradd username            # Создать пользователя
useradd -m -s /bin/bash user # С домашней директорией и shell
userdel -r username         # Удалить с домашней директорией
usermod -aG wheel username  # Добавить в группу
usermod -L username         # Заблокировать пользователя

passwd — пароли

bash

passwd username             # Сменить пароль пользователя
passwd -l username          # Заблокировать аккаунт
passwd -S username          # Статус пароля

groupadd / groupdel — группы

bash

groupadd groupname          # Создать группу
groupdel groupname          # Удалить группу
gpasswd -a user group       # Добавить пользователя в группу
gpasswd -d user group       # Удалить из группы

id / who / w — информация

bash

id username                 # Информация о пользователе
who                         # Кто в системе
w                           # Подробная информация
last                        # История входов

8. Логи и журналы

journalctl — systemd журналы

bash

journalctl -xe              # Последние ошибки с деталями
journalctl -f               # Следить за логами
journalctl -u nginx         # Логи конкретной службы
journalctl --since today    # С сегодняшнего дня
journalctl --since "2023-01-01" --until "2023-01-02"
journalctl -p err           # Только ошибки
journalctl -o json          # В формате JSON
journalctl --disk-usage     # Размер логов
journalctl --vacuum-size=500M  # Очистить до 500М

/var/log — основные логи

bash

tail -f /var/log/messages   # Основной системный лог
tail -f /var/log/secure     # Логи безопасности/авторизации
tail -f /var/log/httpd/access_log  # Apache access log
tail -f /var/log/nginx/error.log   # Nginx error log
dmesg                       # Лог ядра
dmesg | tail -20            # Последние 20 строк

9. SELinux

sestatus / getenforce — статус

bash

sestatus                    # Полный статус SELinux
getenforce                  # Текущий режим
setenforce 0                # Отключить (Permissive)
setenforce 1                # Включить (Enforcing)

ls -Z / ps -Z — контексты

bash

ls -Z /var/www              # Контексты файлов
ps -Zaux                    # Контексты процессов

chcon / restorecon — управление контекстами

bash

chcon -t httpd_sys_content_t /var/www/html  # Изменить тип
restorecon -Rv /var/www/html  # Восстановить контексты

semanage / audit2allow — управление политиками

bash

semanage fcontext -l        # Список правил контекстов
audit2allow -a              # Создать правила из логов

10. Резервное копирование и восстановление

dd — работа с дисками

bash

dd if=/dev/sda of=/dev/sdb bs=4M  # Клонировать диск
dd if=/dev/zero of=/swapfile bs=1M count=1024  # Создать swap
dd if=/dev/cdrom of=image.iso     # Создать ISO

scp — копирование по SSH

bash

scp file.txt user@remote:/path/  # Копировать на удаленный
scp user@remote:/path/file.txt .  # Скачать с удаленного
scp -r dir/ user@remote:/path/   # Рекурсивно

11. Полезные комбинации и примеры

Мониторинг

bash

# Мониторинг сетевых соединений в реальном времени
watch -n 1 "netstat -tulpn | grep ESTABLISHED"

# Мониторинг дискового ввода-вывода
iostat -x 2

# Мониторинг использования CPU в реальном времени
mpstat -P ALL 2

# Найти 10 самых больших файлов
find / -type f -exec du -sh {} + 2>/dev/null | sort -rh | head -10

# Найти файлы измененные за последние 24 часа
find / -mtime -1 -type f 2>/dev/null

Безопасность

bash

# Просмотр активных SSH сессий
who | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'

# Проверка неудачных попыток входа
grep "Failed password" /var/log/secure

# Список пользователей с bash оболочкой
cat /etc/passwd | grep /bin/bash

# Проверка SUID файлов
find / -perm -4000 -type f 2>/dev/null

Устранение неполадок

bash

# Поиск причины высокой загрузки
ps auxf | sort -nr -k 3 | head -10  # По CPU
ps auxf | sort -nr -k 4 | head -10  # По памяти

# Проверка свободного места на inodes
df -i /home

# Проверка чтения/записи диска
iotop

# Проверка использования сети
iftop -n

Быстрые шпаргалки

Проверка системы

bash

# Однострочник для проверки состояния
echo "CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}')% | Memory: $(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2}') | Disk: $(df -h / | awk 'NR==2{print $5}')"

Портфолио команд для ежедневного использования

text

1. Мониторинг: top, htop, df -h, free -m
2. Сети: ip addr, ss -tulpn, ping
3. Процессы: ps aux, kill, systemctl
4. Файлы: find, grep, tail -f
5. Пользователи: id, who, last
6. Логи: journalctl -xe, tail -f /var/log/messages
Рубрики Unix

Оставьте комментарий