Памятка для Нуба: основные команды SSH Linux - Nginx, Apache, PHP-FPM, MySQL
Как войти на сервер:
ssh username@ip-адрес
# Пример:
ssh vasya@192.168.1.100
Куда я попал, как узнать где я?
pwd # покажи где я нахожусь
whoami # покажи кто я (под каким пользователем)
ls # покажи что тут есть
ls -la # покажи ВСЁ что тут есть (скрытые файлы тоже)
Перемещение между папками:
cd папка # перейти в папку
cd .. # подняться НАУРОВЕНЬ ВЫШЕ
cd ../.. # подняться на ДВА уровня выше
cd ~ # вернуться домой (в домашнюю папку)
cd / # перейти в корневую папку
cd /var/log # перейти сразу в конкретную папку
Просмотр файлов:
cat файл.txt # показать весь файл
head файл.txt # показать начало файла (первые 10 строк)
tail файл.txt # показать конец файла (последние 10 строк)
tail -f файл.log # смотреть файл в реальном времени (для логов)
less файл.txt # просматривать файл с прокруткой (выход - клавиша Q)
Поиск файлов и текста:
find /var -name "*.log" # найти все .log файлы в папке /var
grep "текст" файл.txt # найти текст в файле
grep -r "ошибка" /var/log # искать текст во ВСЕХ файлах папки
Информация о системе:
df -h # показать свободное место на дисках
free -h # показать оперативную память
top # показать запущенные процессы (выход - Q)
htop # красивый top (если установлен)
ps aux # показать все процессы
Работа с файлами:
cp файл1 файл2 # скопировать файл
mv файл1 файл2 # переименовать или переместить файл
rm файл.txt # УДАЛИТЬ файл (ОСТОРОЖНО!)
rm -r папка/ # УДАЛИТЬ папку и всё внутри (ОЧЕНЬ ОСТОРОЖНО!)
mkdir новая_папка # создать папку
touch новый_файл.txt # создать пустой файл
Простой редактор файлов:
nano файл.txt # открыть файл в редакторе nano
Проверка на наличие ошибок, синтаксис Nginx, Apache:
# Всегда проверяем перед перезагрузкой!
sudo apache2ctl configtest # для Apache
sudo nginx -t # для Nginx
Правильный порядок правил: Проверил - Перезагрузил.
Для Apahe:
# 1. ПРОВЕРИТЬ конфиги на ошибки
sudo apache2ctl configtest
# Если видишь "Syntax OK" →
# 2. ПЕРЕЗАГРУЗИТЬ апач
sudo systemctl restart apache2
# 3. ПРОВЕРИТЬ что работает
sudo systemctl status apache2
Одной строкой:
sudo apache2ctl configtest && sudo systemctl restart apache2
Для Ngnix:
# 1. ПРОВЕРИТЬ конфиги
sudo nginx -t
# Если видишь "test is successful" →
# 2. ПЕРЕЗАГРУЗИТЬ nginx
sudo systemctl restart nginx
# 3. ПРОВЕРИТЬ статус
sudo systemctl status nginx
Одной строкой:
sudo nginx -t && sudo systemctl restart nginx
Для PHP-FPM:
# 1. Проверить статус PHP
sudo systemctl status php8.1-fpm
# 2. Перезагрузить PHP
sudo systemctl restart php8.1-fpm
# 3. Проверить что перезагрузился
sudo systemctl status php8.1-fpm
Для MySQL:
# 1. Проверить статус базы
sudo systemctl status mysql
# 2. Перезагрузить базу
sudo systemctl restart mysql
# 3. Проверить работу
sudo systemctl status mysql
Универсальная команда для всего сразу:
# Проверить и перезагрузить ВСЁ
sudo apache2ctl configtest && sudo nginx -t && sudo systemctl restart apache2 nginx mysql php8.1-fpm
ГЛАВНОЕ ПРАВИЛО
Всегда сначала configtest или -t, и только если видишь Syntax OK → тогда restart!
Команды с системными логами:
cd /var/log # перейти в папку с логами
ls -la # посмотреть какие логи есть
cat syslog # посмотреть системный лог
tail -f apache2/access.log # смотреть доступы к сайту в реальном времени
Самые важные шорткады:
Ctrl + C # ОСТАНОВИТЬ текущую команду
Ctrl + Z # ПРИОСТАНОВИТЬ команду (потом fg - продолжить)
Ctrl + D # ВЫЙТИ из терминала
Tab АВТОДОПОЛНЕНИЕ (нажимай чаще!)
↑ / ↓ ИСТОРИЯ КОМАНД
Что делать если всё сломал?
# ЗАВИСЛА КОМАНДА?
Ctrl + C
# НЕПОНЯТНО ЧТО ПРОИСХОДИТ?
Enter
Ctrl + C
Ctrl + D
# ЗАБЫЛ КАК ВЫЙТИ ИЗ РЕДАКТОРА?
Q
Esc
:q! # в редакторе vim
Ctrl + X # в редакторе nano
Чек лист: Что посмотреть на сервере?
# 1. Где я?
pwd
# 2. Что вокруг?
ls -la
# 3. Сколько свободного места?
df -h
# 4. Какие процессы работают?
top
# 5. Какие логи есть?
ls -la /var/log/
# 6. Что в системном логе?
tail /var/log/syslog
Аварийная перезагрузка если всё зависло:
sudo reboot # нормальная перезагрузка
sudo shutdown -r now # перезагрузить СЕЙЧАС
Как понять что сломалось?
# Для Apache
sudo tail -f /var/log/apache2/error.log
# Для Nginx
sudo tail -f /var/log/nginx/error.log
# Системные ошибки
sudo tail -f /var/log/syslog
# 1. Сервер вообще жив?
ping ip-адрес-сервера
# 2. Дошёл ли до сервера?
curl -I http://localhost
# 3. Apache/Nginx запущен?
sudo systemctl status apache2
# 4. Конфиги правильные?
sudo apache2ctl configtest
# 5. Смотрим ошибки в реальном времени:
sudo tail -f /var/log/apache2/error.log
Сайт не открывается:
# Проверяем по цепочке:
sudo systemctl status apache2 # запущен ли apache?
sudo systemctl status nginx # или nginx?
curl -I http://localhost # отвечает ли локально?
sudo ufw status # не блокирует ли фаервол?
(Продолжение следует...)
Комментариев 0