Какие знаешь команды в терминале?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Мои знания о командах терминала
Как Senior QA Engineer, я ежедневно использую терминал для различных задач: настройки окружения, анализа логов, работы с CI/CD, автоматизации рутинных операций. Знание терминала критически важно для эффективной работы, особенно при отладке, анализе данных и автоматизации процессов.
Основные категории команд
1. Навигация и работа с файловой системой
# Базовые команды
pwd # показать текущую директорию
ls -la # детализированный список файлов (включая скрытые)
cd ~/projects # переход в конкретную директорию
mkdir test_directory # создать директорию
rm -rf old_folder # рекурсивное удаление (использую осторожно!)
cp -r source/ dest/ # копирование директорий
mv file.txt new_name.txt # перемещение/переименование
2. Работа с файлами
cat server.log # просмотр содержимого файла
less error.log # постраничный просмотр
head -20 large_file.json # первые 20 строк
tail -f app.log # следить за изменениями файла в реальном времени (очень полезно для логов!)
grep "ERROR" log.txt # поиск паттернов в файле
grep -r "assert" ./tests # рекурсивный поиск по всем файлам
find . -name "*.js" # поиск файлов по расширению
3. Анализ и обработка данных
# Команды, которые постоянно использую в QA
wc -l test_results.txt # подсчет строк
diff file1.json file2.json # сравнение файлов
sort -u users.txt # сортировка и удаление дубликатов
awk '{print $1}' data.log # извлечение конкретных колонок
sed 's/old/new/g' config.yml # замена текста
jq '.results[]' output.json # обработка JSON (jq - must have инструмент)
4. Процессы и система
ps aux | grep node # поиск процессов
kill -9 12345 # принудительное завершение процесса
top # мониторинг ресурсов
df -h # свободное место на дисках
free -m # использование памяти
netstat -tlnp # открытые порты
lsof -i :8080 # какие процессы используют порт
5. Сетевые команды
curl -X GET https://api.test.com/v1/users # HTTP запросы
curl -o file.zip https://example.com/file # скачивание файлов
wget https://example.com/test-data.csv # альтернатива curl
ping google.com # проверка доступности
traceroute api.server.com # трассировка маршрута
ssh user@server # подключение к удаленному серверу
scp file.txt user@server:/path/ # безопасное копирование
6. Практические примеры из QA практики
Анализ логов тестов:
# Найти все упавшие тесты в логах
grep -A 2 -B 2 "FAILED" test_run.log | head -50
# Подсчитать количество успешных/неуспешных тестов
grep -c "PASSED" results.xml
grep -c "FAILURE\|ERROR" results.xml
# Извлечь timing информации из логов
grep "Duration:" perf_tests.log | awk '{sum+=$2} END {print "Avg:", sum/NR}'
Работа с тестовыми данными:
# Создание тестовых файлов
seq 1 100 > test_data.txt # числа от 1 до 100
# Генерация JSON для API тестирования
echo '{"users": [' > test_users.json
for i in {1..10}; do echo "{\"id\": $i, \"name\": \"user$i\"}," >> test_users.json; done
sed -i '$ s/,$//' test_users.json # удалить последнюю запятую
echo ']}' >> test_users.json
Интеграция в CI/CD пайплайны:
# Типичные команды в скриптах сборки
npm test 2>&1 | tee test_output.log # запуск тестов с сохранением вывода
export TEST_ENV=staging && python -m pytest
docker-compose up -d && sleep 30 && ./run_tests.sh
Ключевые навыки для QA Engineer
- Комбинация команд через pipe (|):
cat log.txt | grep ERROR | sort | uniq -c - Перенаправление ввода/вывода:
./test_runner > results.txt 2>&1 - Работа с переменными окружения:
export DB_HOST=localhost && npm test - Написание bash скриптов для автоматизации рутинных задач
- Использование инструментов типа
screen/tmuxдля долгих тестовых сессий
Советы по безопасности
Всегда проверяю команды, особенно с rm -rf или chmod, чтобы случайно не удалить важные файлы. Использую alias rm='rm -i' в своей среде для дополнительной безопасности.
Эти команды составляют мой ежедневный инструментарий как Senior QA. Они позволяют быстро анализировать проблемы, автоматизировать задачи и эффективно работать в Linux/Unix средах, которые доминируют в серверной разработке и DevOps практиках.