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 только когда нужно
  • Не понимать разницу между > (перезапись) и >> (дополнение) при перенаправлении вывода

Связанные темы

Ресурсы