Linux — это операционная система, на которой держится весь современный интернет. От небольших личных блогов до гигантских облачных платформ — всё работает на Linux. Однако сила этой системы заключается в её гибкости, а слабость (для новичков) — в отсутствии графического интерфейса «из коробки» на серверах.
Эта шпаргалка создана не просто как список команд, а как практическое руководство. Мы разберём, почему используются те или иные инструменты, как они упростят жизнь админа и зачем вам стоит их освоить прямо сейчас.
- Основы навигации и работа с файлами
- Как получать помощь в терминале
- Просмотр и редактирование конфигураций
- Анализ данных: grep и awk
- Структура файловой системы Linux
- Управление пакетами (APT)
- Мониторинг ресурсов и процессов
- Systemd: управление службами
- Сеть и безопасный удалённый доступ
- Фаервол и защита от перебора паролей
- Права доступа: chmod и chown
- Работа с логами и расследование инцидентов
- Автоматизация: Cron и Bash-скрипты
- Контейнеризация: Podman
1. Основы навигации и работа с файлами
Прежде чем настраивать сложные сервисы, нужно научиться уверенно перемещаться по файловой системе. В отличие от Windows, где вы кликаете по папкам мышкой, в Linux вы «ходите» по директориям с помощью команд. Понимание абсолютных и относительных путей — это база, без которой невозможна ни одна настройка сервера.
Ключевые команды
pwd— показать текущий путь (чтобы не потеряться).ls -lah— вывести список файлов с правами доступа и размерами в человекочитаемом виде.cd /var/www— перейти в каталог сайта.cd ..— вернуться на уровень вверх.touch file.txt— быстро создать пустой файл.mkdir -p project/src— создать структуру папок одной командой.cp config.ini config.bak— сделать резервную копию перед правками (золотое правило!).rm -rf folder/— удалить папку рекурсивно (использовать с осторожностью!).
2. Как получать помощь в терминале?
Многие боятся Linux, думая, что нужно помнить тысячи флагов. На самом деле вся документация уже установлена в вашей системе. Умение быстро найти справку экономит часы гугления. Вместо того чтобы искать ответ в интернете, часто быстрее спросить у самой системы.
Инструменты самопомощи
command --help # Быстрая справка по флагам команды
man command # Полное руководство (manual)
apropos keyword # Поиск команд по ключевому слову (если забыли название)
whatis ls # Краткое описание команды в одну строку
Совет: в режиме
manнажмите/, чтобы искать текст внутри страницы, иq, чтобы выйти.
3. Просмотр и редактирование конфигураций
На сервере нет текстового редактора с кнопками «Сохранить» и «Закрыть». Вам придётся работать с консольными редакторами. Кроме того, админу часто нужно не менять файл, а просто быстро глянуть его содержимое или проверить логи на наличие ошибок. Для разных задач существуют разные утилиты.
Чем смотреть и править
cat file.txt— вывести всё содержимое файла на экран (для маленьких файлов).less large.log— удобный просмотр больших файлов с прокруткой.tail -f /var/log/syslog— следить за логом в реальном времени (обновляется автоматически).- Nano — простой редактор для новичков (
Ctrl+Oсохранить,Ctrl+Xвыйти). - Vim — мощный редактор для профи. Требует изучения режимов, но невероятно эффективен.
4. Анализ данных: grep и awk
Серверные логи могут занимать гигабайты текста. Читать их глазами невозможно. Здесь на помощь приходят утилиты фильтрации. Они позволяют вычленить из огромного потока данных только то, что важно: ошибки, конкретные IP-адреса или статистику запросов. Это главный инструмент расследования инцидентов.
Примеры фильтрации
grep "error" app.log # Найти все строки со словом error
grep -i "warning" sys.log # Искать без учёта регистра букв
grep -v "debug" app.log # Показать всё, КРОМЕ строк с debug
awk '{print $1}' access.log # Вывести только первый столбец (например, IP)
df -h | awk '{print $5}' # Получить процент занятого места на дисках
5. Структура файловой системы Linux
В Windows программы разбросаны по разным папкам (Program Files, AppData, Windows). В Linux существует строгий стандарт FHS (Filesystem Hierarchy Standard). Знание этой структуры помогает мгновенно находить конфиги, логи и исполняемые файлы, независимо от дистрибутива.
| Каталог | Назначение | Почему это важно |
|---|---|---|
/etc | Конфигурация | Здесь лежат настройки всех сервисов (nginx, ssh, mysql) |
/var | Переменные данные | Логи, базы данных, кэши, почта |
/usr | Программы | Бинарные файлы приложений и библиотеки |
/home | Пользователи | Личные данные пользователей |
/tmp | Временные файлы | Очищаются при перезагрузке, полезно для тестов |
6. Управление пакетами (APT)
Установка программ через .exe файлы в Linux — плохая практика. Для этого существуют менеджеры пакетов. Они не только скачивают программу, но и разрешают все зависимости, проверяют цифровые подписи и позволяют легко обновлять всю систему одной командой. Это гарантирует стабильность и безопасность ПО.
Основные команды APT (Debian/Ubuntu)
sudo apt update # Обновить списки доступных пакетов
sudo apt upgrade # Обновить установленные программы
sudo apt install nginx # Установить пакет
sudo apt remove nginx # Удалить пакет (конфиги останутся)
sudo apt purge nginx # Удалить пакет полностью (с конфигами)
sudo apt autoremove # Удалить ненужные зависимости
7. Мониторинг ресурсов и процессов
«Сервер тормозит» — самая частая жалоба. Чтобы понять причину, нужно знать, какой процесс съедает память или процессор. Стандартные утилиты мониторинга позволяют увидеть картину в реальном времени и принять решение: убить зависший процесс, добавить памяти или оптимизировать код.
Диагностика производительности
htop— интерактивный диспетчер задач (удобнее, чемtop).free -h— проверка свободной оперативной памяти.df -h— проверка свободного места на диске.ps aux | grep python— поиск конкретных процессов.kill 1234— корректная остановка процесса по PID.kill -9 1234— принудительное завершение (если процесс не отвечает).
8. Systemd: управление службами
Раньше для запуска программ при старте системы использовались сложные скрипты. Сейчас стандартом является systemd. Он управляет демонами (фоновыми службами), отслеживает их состояние, перезапускает при сбоях и собирает логи в единый журнал. Понимание systemctl обязательно для любого современного админа.
Управление сервисами
sudo systemctl start nginx # Запустить веб-сервер
sudo systemctl stop nginx # Остановить
sudo systemctl restart php-fpm # Перезагрузить после правки конфига
sudo systemctl enable docker # Добавить в автозагрузку
systemctl status mysql # Проверить статус и последние ошибки
journalctl -u nginx -n 50 # Посмотреть последние 50 строк логов службы
9. Сеть и безопасный удалённый доступ
SSH — это дверь в ваш сервер. Если оставить её открытой и незапертой (стандартный порт 22 и вход по паролю), боты подберут доступ за считанные минуты. Настройка сети включает не только проверку соединения, но и «закаливание» SSH: смену порта, отказ от паролей в пользу ключей и настройку фаервола.
Диагностика и защита
ip a # Узнать свой IP-адрес
ss -tulnp # Посмотреть открытые порты
ping ya.ru # Проверить связь с интернетом
curl -I https://google.com # Проверить заголовки ответа сервера
Важно: всегда меняйте
PermitRootLogin noиPasswordAuthentication noв/etc/ssh/sshd_config.
10. Фаервол и защита от перебора паролей
Даже если вы закрыли SSH, сканеры портов будут постоянно стучаться в ваши сервисы. UFW (Uncomplicated Firewall) позволяет легко открыть только нужные порты (80, 443), заблокировав всё остальное. А Fail2ban анализирует логи и автоматически добавляет в чёрный список IP-адреса, которые слишком часто ошибаются при вводе пароля.
Настройка безопасности
sudo ufw enable # Включить фаервол
sudo ufw allow 80/tcp # Разрешить HTTP
sudo ufw deny from 10.0.0.5 # Забанить подозрительный IP
sudo apt install fail2ban # Установить защиту от брута
11. Права доступа: chmod и chown
В Linux каждый файл принадлежит пользователю и группе. Если вы загрузили сайт на сервер, но забыли назначить владельцем веб-сервер (www-data), сайт не сможет читать файлы или писать в кэш. Ошибки прав доступа — одна из самых частых причин проблем с работой веб-приложений.
Управление правами
chmod 755 script.sh— дать права на выполнение скрипта.chown www-data:www-data /var/www/html— назначить владельца папки сайта.chmod +x deploy.sh— сделать файл исполняемым.sudo adduser developer— создать нового пользователя.sudo usermod -aG sudo developer— дать права администратора.
12. Работа с логами и расследование инцидентов
Когда что-то ломается, сервер молчит, но он «говорит» через логи. Умение читать логи — это суперсила админа. Вместо того чтобы гадать, почему сайт лежит, вы открываете лог ошибок Nginx или системный журнал и видите точную причину: нехватка памяти, ошибка в коде или атака.
Где искать ответы
/var/log/syslog— общие системные события./var/log/auth.log— кто пытался войти в систему./var/log/nginx/error.log— ошибки веб-сервера.journalctl -p err --since today— показать все критические ошибки за сегодня.tail -f /opt/app/logs/output.log— следить за логом приложения в реальном времени.
13. Автоматизация: Cron и Bash-скрипты
Человек склонен забывать. Можно забыть сделать бэкап, забыть очистить старые логи или забыть перезапустить службу после обновления. Cron — это будильник для вашего сервера. Он выполняет задачи строго по расписанию. Bash-скрипты же позволяют объединить несколько команд в один сценарий, чтобы не вводить их вручную каждый раз.
Пример автоматизации
Создайте скрипт backup.sh:
#!/bin/bash
# Создаём архив с датой в имени
tar -czf /backups/site_$(date +%F).tar.gz /var/www/html
echo "Бэкап успешно создан"
Добавьте в Cron (crontab -e):
0 2 * * * /root/scripts/backup.sh # Запускать каждый день в 2 ночи
*/10 * * * * /usr/bin/check_health.sh # Проверять здоровье каждые 10 минут
14. Контейнеризация: Podman
Традиционные виртуальные машины тяжелы и медленны. Контейнеры изолируют приложение вместе с его библиотеками, но используют ядро хоста, что делает их лёгкими и быстрыми. Podman — это современная альтернатива Docker. Он безопаснее, так как может работать без прав root, и проще в интеграции с systemd. Это стандарт для развёртывания современных приложений.
Базовые команды Podman
podman run -d --name my-app -p 3000:3000 node:18 # Запустить контейнер
podman ps # Список работающих контейнеров
podman exec -it my-app sh # Зайти внутрь контейнера
podman logs my-app # Посмотреть логи приложения
podman build -t my-image . # Собрать свой образ
Заключение
Linux перестаёт быть страшным, когда вы понимаете логику его работы. Это не набор хаотичных команд, а стройная система, где всё связано: права доступа влияют на работу сайтов, логи помогают чинить ошибки, а автоматизация освобождает ваше время для более важных задач.
Используйте эту шпаргалку как опорную точку. Со временем большинство команд войдут в привычку, и вы сможете управлять сервером с закрытыми глазами. Удачного администрирования!
Комментарии
Комментарии появляются после модерации.
Опубликованных комментариев пока нет. Будьте первым.