Linux: базовые команды
Базовые команды Linux — минимальный набор для разработчика, работающего с серверами: навигация, просмотр файлов, управление процессами, права доступа и работа с сетью.
Зачем нужно
Большинство серверов работают под Linux. Умение ориентироваться в терминале — необходимый навык для деплоя, отладки и администрирования. Все CI/CD-пайплайны (GitHub Actions, Docker) выполняются в Linux-окружении, поэтому понимание базовых команд критично для автоматизации.
Где используется
- Подключение к VPS по SSH и управление приложением
- Написание shell-скриптов для автоматизации деплоя
- Просмотр логов и диагностика проблем на сервере
- Настройка прав доступа к файлам
Основной контент
Навигация и файлы
pwd # текущая директория
ls -la # список файлов (включая скрытые, с деталями)
cd /var/www/myapp # переход в директорию
cd ~ # домашняя директория
cd - # предыдущая директория
mkdir -p /opt/myapp/logs # создать директорию (включая родительские)
cp -r src/ dst/ # копировать рекурсивно
mv oldname newname # переименовать/переместить
rm -rf ./build # удалить рекурсивно (ОСТОРОЖНО!)
find /var/log -name "*.log" -mtime +7 # найти старые логи
Просмотр файлов
cat file.txt # вывести весь файл
less file.txt # постраничный просмотр (q — выход)
head -n 20 file.txt # первые 20 строк
tail -n 50 file.txt # последние 50 строк
tail -f /var/log/nginx/access.log # следить за логом в реальном времени
grep "ERROR" app.log # найти строки с ERROR
grep -r "TODO" ./src # рекурсивный поиск
grep -E "GET /api" access.log | wc -l # подсчитать строки
Права доступа
chmod 755 script.sh # rwxr-xr-x (владелец: всё, остальные: read+execute)
chmod 600 ~/.ssh/id_rsa # rw------- (только владелец читает/пишет)
chmod +x deploy.sh # добавить право выполнения
chown user:group file.txt # изменить владельца
chown -R www-data:www-data /var/www # рекурсивно
Процессы и системные ресурсы
ps aux # все процессы
ps aux | grep node # найти процессы node
top # интерактивный мониторинг (q — выход)
htop # улучшенный top (если установлен)
kill -9 1234 # завершить процесс по PID
killall node # завершить все процессы node
df -h # свободное место на дисках
du -sh /var/log # размер директории
free -h # использование памяти
Сеть
curl -I https://example.com # HTTP-заголовки
curl -s https://api.example.com/health | jq # запрос + форматирование JSON
wget -O output.tar.gz https://example.com/archive.tar.gz
ss -tlnp # открытые порты (современный netstat)
netstat -tlnp # то же, старый способ
lsof -i :3000 # кто слушает порт 3000
ping google.com
traceroute google.com
Переменные и скрипты
# Переменные
export NODE_ENV=production
echo $NODE_ENV
# Условия
if [ -f ./package.json ]; then
echo "Node.js project"
fi
# Цикл
for env in dev staging prod; do
echo "Deploying to $env"
done
Частые ошибки
rm -rfбез проверки пути — один лишний пробел может удалить не то (легенда:rm -rf / home/user)- Редактировать production-файлы напрямую без бэкапа
- Запускать всё от root — работать от обычного пользователя, sudo только когда нужно
- Не понимать разницу между
>(перезапись) и>>(дополнение) при перенаправлении вывода