← Назад к вопросам

Какие базовые команды Linux должен знать тестировщик?

1.7 Middle🔥 182 комментариев
#Теория тестирования

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Базовые команды Linux для тестировщика: фундамент эффективной работы

Для современного тестировщика, особенно в сфере автоматизации тестирования, DevOps и непрерывной интеграции (CI/CD), владение Linux — не просто плюс, а необходимость. Подавляющее большинство серверов, контейнеров (Docker) и CI-серверов (Jenkins, GitLab CI) работают под управлением Linux. Знание командной строки позволяет быстро диагностировать проблемы, анализировать логи, управлять окружением и автоматизировать рутину.

Я разделю ключевые команды на несколько логических групп, которые ежедневно используются в работе QA-инженера.

1. Навигация и управление файлами

Это основа основ для работы в файловой системе сервера или контейнера.

  • pwd (Print Working Directory) — показывает текущую директорию. Первое, что делаешь, чтобы понять, где находишься.
  • ls (List) — список файлов и папок. Ключевые флаги: -l (подробный список с правами), -a (показать скрытые файлы), -la (комбинация).
    ls -la /var/log/
    
  • cd (Change Directory) — переход между директориями. cd .. — на уровень выше, cd ~ — в домашнюю директорию.
  • cat — просмотр содержимого файла целиком. Идеально для быстрой проверки конфигов или небольших логов.
    cat application.properties
    
  • less / tail / head — продвинутый просмотр. tail -fрежим «слежения» (follow) за растущим лог-файлом в реальном времени, бесценная команда для мониторинга.
    tail -f /var/log/app/error.log
    
  • grepглавный инструмент для поиска. Фильтрация логов по ключевым словам, ошибкам, ID транзакции.
    grep "ERROR" app.log | grep "TimeoutException"
    
  • cp, mv, rm — копирование, перемещение/переименование и удаление. С rm будь осторожен, особенно с флагом -r (рекурсивно).

2. Анализ логов и текстовых данных

80% времени тестировщика на Linux уходит на анализ логов.

  • Комбинация grep, tail, head — основа основ. Найти последние 10 ошибок:
    grep -i error app.log | tail -10
    
  • wc (Word Count) — подсчет строк, слов, байт. Полезно оценить объем лога после фильтрации.
    grep "POST /api" access.log | wc -l
    
  • sort и uniq — сортировка и отбор уникальных значений. Найти все уникальные коды ответов HTTP в access.log:
    cut -d' ' -f9 access.log | sort | uniq -c
    
  • awk — мощный язык для обработки текста. Извлечь, например, вторую колонку (URL) из лога с разделителем-пробелом:
    awk '{print $2}' access.log
    

3. Проверка системы и процессов

Необходимо для диагностики: жив ли процесс, сколько ресурсов он ест, открыты ли порты.

  • ps (Process Status) — список процессов. Чаще с флагами aux или ef.
    ps aux | grep java
    
  • top / htop — интерактивный мониторинг процессов и потребления ресурсов (CPU, RAM) в реальном времени.
  • netstat / ss — проверка сетевых подключений и открытых портов. Убедиться, что приложение слушает нужный порт (например, 8080):
    netstat -tlnp | grep :8080
    # или современный аналог:
    ss -tlnp | grep :8080
    
  • df и du — информация о свободном месте на дисках (df -h) и размере конкретных директорий (du -sh /path/to/logs).

4. Работа с правами и архивами

  • chmod — изменение прав доступа к файлу (например, сделать скрипт исполняемым: chmod +x script.sh).
  • tar — работа с архивами .tar.gz. Распаковать скачанный лог-архив — обычная задача.
    tar -xzvf logs_archive.tar.gz
    

5. Сетевые утилиты для тестирования API и connectivity

  • curlосновная команда для быстрого тестирования API из командной строки. Проверить ответ эндпоинта, заголовки.
    curl -X GET http://localhost:8080/api/health -v
    
  • wget — скачивание файлов (например, артефактов сборки).
  • ping и telnet/nc (netcat) — базовая диагностика сетевой доступности (ping) и проверка доступности конкретного TCP-порта (telnet host port или nc -zv host port).

Практический сценарий для тестировщика

Задача: Приложение на тестовом сервере перестало отвечать. Необходимо быстро провести первичную диагностику.

  1. Подключиться по SSH к серверу.
  2. Проверить, жив ли процесс: ps aux | grep myapp. Если PID есть, перейти к шагу 4.
  3. Если процесса нет, попробовать запустить его и сразу перейти к просмотру логов (tail -f).
  4. Проверить, слушает ли порт: netstat -tlnp | grep :8080.
  5. Посмотреть логи ошибок: tail -100 /opt/myapp/logs/error.log.
  6. Найти в логах последние критические ошибки: grep -E "(ERROR|CRITICAL|Exception)" /opt/myapp/logs/app.log | tail -20.
  7. Проверить потребление ресурсов: top -p <PID_процесса>.
  8. Проверить место на диске (возможно, закончилось): df -h.

Вывод: Для тестировщика команды Linux — это не абстрактные знания, а рабочие инструменты, которые напрямую влияют на скорость локализации дефектов, анализ логов и взаимодействие с командой разработки и DevOps. Начинать стоит с навигации, grep, tail и curl, постепенно углубляясь в awk и анализ процессов. Умение работать в консоли делает тестировщика самостоятельным и эффективным специалистом.

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Базовые команды Linux для тестировщика

Как QA Engineer с более чем 10-летним опытом, я считаю, что знание Linux — критически важный навык для современного тестировщика. Большинство серверов, CI/CD-инфраструктуры, контейнеров (Docker) и тестовых сред работают под управлением Linux. Умение работать с командной строкой не просто «желательно», а является обязательным требованием для эффективной работы, анализа логов, настройки окружения и автоматизации.

Команды, которые должен уверенно знать каждый тестировщик, я разделяю на несколько ключевых категорий.

1. Навигация и работа с файловой системой

Это основа основ. Без этого невозможно перемещаться по серверу или анализировать структуру проекта.

  • pwd (Print Working Directory) — показывает текущую директорию.
  • ls (List) — список файлов и папок. С ключами -la (подробный список со скрытыми файлами) и -lh (человекочитаемые размеры) используется постоянно.
    ls -la /var/log/
    
  • cd (Change Directory) — переход между директориями. cd .. (на уровень выше), cd ~ (в домашнюю директорию).
  • mkdir / rmdir — создание и удаление директорий.
  • cp / mv / rm — копирование, перемещение/переименование и удаление файлов. С rm нужно быть крайне осторожным! Ключ -r (рекурсивно) для папок, -f (принудительно).
    cp app.log backup/           # Копировать
    mv old_log.txt archive/      # Переместить
    rm -rf temp_test_data/       # УДАЛИТЬ папку и всё внутри (опасно!)
    

2. Просмотр и анализ содержимого файлов (логов, конфигов)

90% работы при расследовании дефекта — это анализ логов.

  • cat — вывести всё содержимое файла на экран. Подходит для небольших файлов.
    cat config.yaml
    
  • less / more — постраничный просмотр больших файлов с возможностью поиска (/ в less).
  • head / tail — просмотр начала или конца файла. tail -f — одна из самых важных команд! Позволяет в реальном времени следить за записью в лог-файл (например, за запуском приложения).
    tail -f /var/log/app/application.log  # Следим за логом в реальном времени
    tail -n 100 error.log                 # Посмотреть последние 100 строк
    
  • grepглавный инструмент для поиска. Ищет текст по шаблону. Незаменим для фильтрации логов.
    grep "ERROR" app.log                  # Найти все строки с "ERROR"
    grep -r "NullPointer" /var/log/       # Рекурсивный поиск по всем файлам
    grep -v "DEBUG" app.log               # Показать все строки, КРОМЕ содержащих "DEBUG"
    cat app.log | grep "500" | head -20   # Конвейер: взять логи, найти "500", показать первые 20
    

3. Работа с процессами

Часто нужно проверить, запущен ли сервис, или завершить зависший процесс.

  • ps (Process Status) — список процессов. Чаще всего с ключами aux или ef.
    ps aux | grep java  # Найти все Java-процессы
    
  • top / htop — интерактивный монитор процессов, показывающий нагрузку на CPU и память. Помогает выявлять утечки памяти.
  • kill / pkill — отправить сигнал процессу (по PID или имени) для завершения. kill -9 — принудительное завершение.
    pkill -f "test_runner.py"  # Завершить процесс по имени
    

4. Права доступа (Permissions)

Проблемы с правами — частая причина сбоев при развёртывании или запуске скриптов.

  • chmod — изменить права на файл (читать r, писать w, выполнять x).
    chmod +x automation_script.sh  # Сделать скрипт исполняемым
    chmod 755 script.sh            # Установить права rwxr-xr-x
    
  • chown — изменить владельца файла.

5. Поиск файлов и информация о системе

  • find — мощный поиск файлов по имени, размеру, дате изменения.
    find . -name "*.log" -size +100M  # Найти все .log файлы больше 100 Мб в текущей директории
    
  • df / du — просмотр свободного места на дисках (df -h) и размера директорий (du -sh /path/).
  • uname — информация о системе (uname -a).
  • which — показывает полный путь к исполняемому файлу команды.
    which python3  # Где находится интерпретатор Python 3?
    

6. Работа с сетью

Для тестирования API, проверки доступности сервисов.

  • ping — проверка доступности хоста.
  • curlосновная команда для тестирования HTTP/API. Отправка запросов, проверка заголовков, статус-кодов.
    curl -X GET https://api.example.com/v1/users
    curl -X POST -H "Content-Type: application/json" -d '{"login":"test"}' https://api.example.com/auth
    
  • wget — скачивание файлов из сети.
  • netstat / ss — просмотр сетевых подключений, портов (netstat -tulpn).

7. Архивация и сжатие

Для работы с артефактами сборки, логами.

  • tar — создание и распаковка архивов.
    tar -czvf logs_backup.tar.gz /var/log/app/  # Создать сжатый архив
    tar -xzvf build_artifact.tar.gz              # Распаковать архив
    

Вывод для тестировщика: Освоив этот базовый набор, вы сможете самостоятельно развернуть среду, найти причину падения теста в гигантском лог-файле, проверить доступность сервиса, собрать артефакты для анализа и запускать автоматизированные скрипты. Это фундамент, который переводит тестировщика из разряда исполнителя чек-листов в категорию технического специалиста, способного к глубокому анализу и эффективному взаимодействию с DevOps и разработчиками. Начинайте практиковаться с самого простого — навигации и grep, постепенно расширяя арсенал.

Какие базовые команды Linux должен знать тестировщик? | PrepBro