Какие базовые команды Linux должен знать тестировщик?
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Базовые команды 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.propertiesless/tail/head— продвинутый просмотр.tail -f— режим «слежения» (follow) за растущим лог-файлом в реальном времени, бесценная команда для мониторинга.tail -f /var/log/app/error.loggrep— главный инструмент для поиска. Фильтрация логов по ключевым словам, ошибкам, 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 -lsortиuniq— сортировка и отбор уникальных значений. Найти все уникальные коды ответов HTTP в access.log:cut -d' ' -f9 access.log | sort | uniq -cawk— мощный язык для обработки текста. Извлечь, например, вторую колонку (URL) из лога с разделителем-пробелом:awk '{print $2}' access.log
3. Проверка системы и процессов
Необходимо для диагностики: жив ли процесс, сколько ресурсов он ест, открыты ли порты.
ps(Process Status) — список процессов. Чаще с флагамиauxилиef.ps aux | grep javatop/htop— интерактивный мониторинг процессов и потребления ресурсов (CPU, RAM) в реальном времени.netstat/ss— проверка сетевых подключений и открытых портов. Убедиться, что приложение слушает нужный порт (например, 8080):netstat -tlnp | grep :8080 # или современный аналог: ss -tlnp | grep :8080dfи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 -vwget— скачивание файлов (например, артефактов сборки).pingиtelnet/nc(netcat) — базовая диагностика сетевой доступности (ping) и проверка доступности конкретного TCP-порта (telnet host portилиnc -zv host port).
Практический сценарий для тестировщика
Задача: Приложение на тестовом сервере перестало отвечать. Необходимо быстро провести первичную диагностику.
- Подключиться по SSH к серверу.
- Проверить, жив ли процесс:
ps aux | grep myapp. Если PID есть, перейти к шагу 4. - Если процесса нет, попробовать запустить его и сразу перейти к просмотру логов (
tail -f). - Проверить, слушает ли порт:
netstat -tlnp | grep :8080. - Посмотреть логи ошибок:
tail -100 /opt/myapp/logs/error.log. - Найти в логах последние критические ошибки:
grep -E "(ERROR|CRITICAL|Exception)" /opt/myapp/logs/app.log | tail -20. - Проверить потребление ресурсов:
top -p <PID_процесса>. - Проверить место на диске (возможно, закончилось):
df -h.
Вывод: Для тестировщика команды Linux — это не абстрактные знания, а рабочие инструменты, которые напрямую влияют на скорость локализации дефектов, анализ логов и взаимодействие с командой разработки и DevOps. Начинать стоит с навигации, grep, tail и curl, постепенно углубляясь в awk и анализ процессов. Умение работать в консоли делает тестировщика самостоятельным и эффективным специалистом.
Ответ сгенерирован нейросетью и может содержать ошибки
Базовые команды 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.yamlless/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-xchown— изменить владельца файла.
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/authwget— скачивание файлов из сети.netstat/ss— просмотр сетевых подключений, портов (netstat -tulpn).
7. Архивация и сжатие
Для работы с артефактами сборки, логами.
tar— создание и распаковка архивов.tar -czvf logs_backup.tar.gz /var/log/app/ # Создать сжатый архив tar -xzvf build_artifact.tar.gz # Распаковать архив
Вывод для тестировщика: Освоив этот базовый набор, вы сможете самостоятельно развернуть среду, найти причину падения теста в гигантском лог-файле, проверить доступность сервиса, собрать артефакты для анализа и запускать автоматизированные скрипты. Это фундамент, который переводит тестировщика из разряда исполнителя чек-листов в категорию технического специалиста, способного к глубокому анализу и эффективному взаимодействию с DevOps и разработчиками. Начинайте практиковаться с самого простого — навигации и grep, постепенно расширяя арсенал.