Шпаргалка по Linux command line для тестировщика

Шпаргалка по Linux command line для тестировщика


По работе мне часто приходится работать с удаленными системами через ssh (плюс ковырять Docker немного).

Поэтому я решил сделать небольшую шпаргалку по базовым командам, которые нужно знать тест инженеру при работе с unix командной строкой.

Базовые вещи

  • pwd (распечатать текущую директорию)
  • cd (перейти в каталог)
  • cp (скопировать файл)
  • mv (переместить файл или папку)
  • mkdir (создать новую папку)
  • rm (rm -r) (удалить папку или файл)
  • man (help, whatis, info) (получить информацию о команде)
  • diff (построчное сравнение файлов)
  • patch (применение diff файла к оригиналу)
  • passwd (поменять пароль пользователю)
  • grep (поиск по текстовым файлам)

Записываем результат работы команды в файл:

ls -l /usr/bin > output.txt 

Дописываем результат работы команды в файл:

ls -l /usr/bin >> output.txt

Записываем ошибки в файл:

 ls -l /bin/usr 2> error.txt

Записываем все в файл:

ls -l /bin/usr &> output.txt

Сортируем список и оставляем уникальные значения:

ls /bin /usr/bin | sort | uniq | less 

Делаем файл исполняемым:

chmod u+x script.sh

Генерируем рандомное число и пишем в файл:

echo $RANDOM >> random.txt

Работаем с историей

  • history (выводит историю команд)
  • !! / sudo !! (повторить последнюю команду)
  • !число (повторяет команду с указанным номером из списка history)
  • !строка (повторить последнюю команду из истории, которая начинается со строки)
  • !?строка (повторить последнюю команду из истории, которая содержит строку)

Процессы и сети

  • ps aux (список процессов)
  • top (интерактивный список процессов)
  • kill / killall (завершить процессы или список процессов)
  • pstree - (получить дерево процессов)
  • vmstat (получить снимок используемых ресурсов системы)
  • xload (получить изменение нагрузки на систему в виде GUI)
  • tload (получить изменение нагрузки на систему в терминале
  • ping (проверка работоспособности удаленной машины)
  • traceroute / tracepath (трассировка пути сетевых пакетов)
  • netstat (текущее состояние TCP соединений)

Работаем с удаленной машиной

Подключиться к машине по ssh:

ssh -i "ssh_key.pem" user@ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com

Отправить файл с локальной машины на удаленную (EC2):

scp -i "ssh_key.pem" install.sh user@ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:/home/ec2-user/destination

Сделать архив из папки:

zip -r data.zip /your/ec2/directory/

Отправить файл с удаленной машины на локальную (в текущую папку):

scp -i "ssh_key.pem" user@ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:/home/ec2-user/data.zip .

Разархивировать файл:

unzip data.zip -d destination

Генерируем большие файлы (с мусором) для тестов:

dd if=/dev/zero of=large-file-1mb.txt count=1024 bs=1024 # 1MB
dd if=/dev/zero of=large-file-1gb.txt count=1024 bs=1048576 # 1GB

В заключение:

Для тех, кто хочет прочесть одну книгу и закрыть базовые моменты по работе с командной строкой - рекомендую книгу "Командная строка Linux. Полное руководство".

Тут в очень доступной форме и кучей практики описываются базовые команды, работы с редактором vim и даже немного bash скриптинг.

Если вы не разрабатываете драйвера для Linux (или не хотите лезть глубже) этой книги будет более чем достаточно.


Report Page