Bash команды для тестировщика
Введение
Большинству тестировщиков в своей карьере рано или поздно придётся столкнуться с терминалом Linux
Скорее всего это начнётся как необходимость зайти на сервер и посмотреть логи.

Сервера делают на разных операционных системах:
Из семейства
Linux
популярны:
Также часто применяют UNIX подобные ОС:
- OpenBSD
- FreeBSD
Они немного отличаются друг от друга но есть и общее свойство:
На сервере обычно нет графического интерфейса
Но зато есть командная оболочка вроде
bash
Именно поэтому тестировщику нужно освоить основы работы с
терминалом Linux.
В этой статье Вы увидите команды нужные именно тестировщику. Больше полезных
команд можно найти в статьях:
Работа с каталогами
Тестировщику приходится постоянно работать с логами. Каждый найденный баг обычно нужно
описать как функционально: что не работает, что при этом делали, что показал UI.
Так и подтвердить документально: timestamp + логи клиента/сервера/партнёрского бэкенда.
Даже если в каком-то конкретном случае логи не нужны, разработчики скорее всего их попросят -
просто по привычке.
Для того, чтобы найти логи, нужно уметь перемащаться между каталогам и смотреть из
содержимое.
Просмотр каталогов
Чтобы перейти в каталог с логами достаточно ввести команду cd и абсолютный адрес папки с логами.
Например:
cd /glassfish_domains/server_name/logs
Если абсолютный адрес каталога неизвестен, нужно перемещаться куда-то из текущего каталога.
Узнать содержимое текущего каталога можно с помощью команды
ls
Например
ls -la
где опция l требует вывода в так называемом длинном формате.
Вывод будет содержать
права доступа, количество жёстких ссылок на файл , владельца, группу, размер,
время последнего изменения и называние файла.
a - это опция которая требует показать скрытые файлы - те, называние которых начинается с .
Переместиться в каталог на уровень ниже можно с помощью команды cd называние каталога
cd testProject01
Подняться на уровень выше
cd ..
Создание каталога
Для того, чтобы создать каталог выполните команду:
mkdir название_каталога
где название_каталога - это тот каталог, который вы хотите создать.
К примеру, создадим каталог test_Project2:
mkdir test_Project2
Копирование каталога
Для того, чтобы скопировать каталог из одного места в другое, выполните команду:
cp -a project01 project02
где project01 - источник (каталог, который вы хотите скопировать)
а project02 - получатель (тот каталог, в который вы хотите скопировать)
ключ -a означает то, что мы выполняем нерекурсивное копирование.
Например, скопируем каталог /usr/local/project01 в свой домашний каталог и назовем его project01arj:
cp -a /usr/local/project01 ~/project01arj
Перемещение / Переименование каталога
За перемещение и переименование каталогов, в Linux отвечает команда mv.
Рассмотрим примеры:
перемещение каталога /usr/local/projects в уже существующий, в домашней папке, каталог project01arj:
mv /usr/local/statistics ~/project01arj/
переименование каталога /usr/local/projects в /usr/local/testedProjects:
mv /usr/local/statistics /usr/local/newstatistics
Удаление каталога
Удаление каталога и его содержимого, можно произвести при помощи команд rmdir или rm:
удаляем каталог /usr/local/testedProjects/temp:
rmdir /usr/local/testedProjects/temp
или рекурсивно каталог /usr/local/testedProjects/temp, со всеми каталогами внутри него:
rm -rf /usr/local/testedProjects/temp
Работа с логами
Подробнее о том, что такое логи и какими они бывают читайте в параграфе «Изучение логов»
Просмотр последних логов
Зачастую открывать весь файл слишком долго. В этом случае можно воспользоваться командой tail
sudo tail -n 1000 ~/glassfish_domains/server/logs/project-name-2019-09-25.log
Эта команда выведет 1000 последних строк лога.
Логи в реальном времени
Опция -f позволяет мониторить изменения в реальном времени
sudo tail -f ~/glassfish_domains/server/logs/project-name-2019-09-25.log
Если Вы хотите вырезать определённый диапазон строк из лога - читайте
мою статью про текстовые препроцессоры:
Как вырезать строки из лога с помощью SED
Чтобы подсчитать сколько всего строк в файле latest.log используйте
wc -l latest.log
282608 latest.log