Подробный разбор сторонних командных инструментов в локальной среде ServBay
ServBay — это мощная локальная среда для веб-разработки, которая, помимо интеграции популярных веб-серверов, баз данных и интерпретаторов языков программирования, поставляется с набором сторонних командных инструментов, существенно упрощающих повседневную работу разработчика. В этот комплект входят утилиты для работы с изображениями, коммуникациями по сети, сжатием и распаковкой файлов, шифрованием и обеспечением безопасности.
В этой статье подробно рассматриваются командные инструменты, входящие в комплект поставки ServBay, объясняется их назначение и приведены базовые примеры использования, чтобы вы могли максимально эффективно применять возможности среды.
Почему в ServBay включены эти инструменты?
В процессе веб-разработки помимо написания кода разработчики регулярно сталкиваются с различными дополнительными задачами, например:
- Оптимизация и обработка графических ресурсов
- Тестирование API либо отладка сетевых запросов
- Работа с архивированными файлами
- Генерация или управление SSL-сертификатами и ключами
ServBay объединяет эти широко используемые командные утилиты в одной среде, позволяя работать с ними без отдельной установки и настройки: достаточно просто открыть терминал ServBay, чтобы приступить к работе. Это значительно повышает удобство и скорость разработки.
Предварительные требования
Перед использованием перечисленных командных инструментов убедитесь, что:
- ServBay успешно установлен и запущен на вашем macOS.
- Вы вошли в окружение ServBay из терминала либо настроили переменные среды (особенно PATH), чтобы работать с инструментами напрямую.
Компоненты для обработки изображений
ServBay включает несколько инструментов для работы с изображениями — они особенно полезны фронтенд- и бэкенд-разработчикам, которые занимаются медийными ресурсами.
ImageMagick
ImageMagick — мощный набор командных утилит и библиотек, поддерживающий более 200 форматов изображений. Позволяет создавать, редактировать, компонировать или конвертировать растровые картинки прямо из консоли.
Базовые примеры
Конвертация формата изображения:
bashmagick convert input.jpg output.png
1Изменение размера изображения:
bashmagick convert input.jpg -resize 300x300 output.jpg
1Добавление водяного знака:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg
1
cwebp
cwebp — консольный кодировщик от Google для преобразования изображений в формат WebP. Это современный формат, обеспечивающий лучшее качество при аналогичном или меньшем размере файла по сравнению с JPEG и PNG, что помогает ускорить загрузку сайтов.
Базовые примеры
Преобразовать JPEG в WebP:
bashcwebp input.jpg -o output.webp
1Преобразовать PNG в WebP:
bashcwebp input.png -o output.webp
1Установить качество сжатия (например, коэффициент 80):
bashcwebp -q 80 input.jpg -o output.webp
1
jpegtran
jpegtran — утилита для без потерь преобразований JPEG: выполнение поворота, отражения и транспозиций без повторного сжатия, а значит — без ухудшения качества.
Базовые примеры
Повернуть JPEG изображение на 90° по часовой стрелке:
bashjpegtran -rotate 90 input.jpg > output.jpg
1Отразить JPEG по горизонтали:
bashjpegtran -flip horizontal input.jpg > output.jpg
1
djpeg
djpeg — инструмент для декомпрессии JPEG-файлов в более "сырые" форматы, такие как PPM, PGM, BMP или Targa. Незаменим в случаях, когда требуется оперировать "сырыми" пиксельными данными снимка.
Базовые примеры
- Распаковать JPEG в формат PPM:bash
djpeg input.jpg > output.ppm
1
cjpeg
cjpeg выполняет обратную операцию djpeg: сжимает файлы форматов PPM, PGM, BMP или Targa в JPEG.
Базовые примеры
- Сжать PPM-файл в JPEG:bash
cjpeg input.ppm > output.jpg
1
img2webp
img2webp — утилита для объединения серии статичных изображений (PNG, JPEG) в один анимированный WebP-файл.
Базовые примеры
- Объединить кадры в анимированный WebP:bash(Убедитесь, что ваши
img2webp -o output.webp frame1.png frame2.png frame3.png
1frame*.png
идут в нужном порядке)
Компоненты для сетевых коммуникаций
cURL
cURL — легендарная консольная утилита и библиотека для передачи данных по широкому спектру сетевых протоколов. Неотъемлемый инструмент для тестирования API, загрузки файлов и взаимодействия с удалёнными серверами. В среде ServBay cURL уже интегрирован для быстрого сетевого дебага и обмена данными.
Базовые примеры
GET-запрос к демо-API:
bashcurl -X GET https://api.servbay.demo/data
1POST-запрос с передачей данных:
bashcurl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
1Загрузка файла с сохранением оригинального имени:
bashcurl -O https://servbay.demo/file.zip
1Посмотреть заголовки запроса и ответа:
bashcurl -I https://servbay.demo
1
Инструменты для сжатия и распаковки файлов
ServBay содержит набор утилит для работы с популярными форматами архивов — это удобно для обработки файлов в самых разных сценариях.
bzip2
bzip2 — эффективный инструмент сжатия, использующий преобразование Бэрроуза-Уилера и кодирование Хаффмана. Обычно его коэффициент сжатия лучше, чем у gzip, однако процессы могут идти медленнее.
Базовые примеры
Сжать файл (оригинал заменяется на
.bz2
):bashbzip2 input.txt
1Распаковать файл (
.bz2
заменяется оригиналом):bashbunzip2 input.txt.bz2
1Распаковать в стандартный поток вывода:
bashbzip2 -dc input.txt.bz2
1
gzip
gzip — весьма популярный и быстрый инструмент сжатия, широко распространён на Unix и Linux. Использует алгоритм LZ77.
Базовые примеры
Сжать файл (оригинал заменяется на
.gz
):bashgzip input.txt
1Распаковать файл (
.gz
заменяется оригиналом):bashgunzip input.txt.gz
1Распаковка в стандартный поток вывода:
bashgzip -dc input.txt.gz
1
xz
xz — высокоэффективный инструмент сжатия на базе алгоритма LZMA2. Обычно даёт лучший коэффициент по сравнению с gzip и bzip2, но медленнее на этапе архивации (разархивирование обычно быстрое).
Базовые примеры
Сжать файл (оригинал заменяется
.xz
):bashxz input.txt
1Распаковать файл (
.xz
заменяется оригиналом):bashunxz input.txt.xz
1Распаковать в поток:
bashxz -dc input.txt.xz
1
zstd
zstd (Zstandard) — быстрый и эффективный алгоритм сжатия от Facebook. Отличается высоким балансом между скоростью и степенью сжатия: как правило, быстрее gzip при аналогичных либо лучших размерах архива.
Базовые примеры
Сжать файл (оригинал заменяется
.zst
):bashzstd input.txt
1Распаковать файл (
.zst
заменяется оригиналом):bashunzstd input.txt.zst
1Распаковать в поток:
bashzstd -dc input.txt.zst
1
Шифрование и безопасность
OpenSSL
OpenSSL — один из самых известных open source-наборов для работы с SSL/TLS-протоколами и криптографией. В ServBay он особенно важен для генерации ключей, создания CSR и обработки сертификатов, что незаменимо при локальном тестировании HTTPS или взаимодействии с функциями безопасности ServBay (например, User CA или ACME).
Базовые примеры
Генерация приватного RSA-ключа (2048 бит):
bashopenssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
1Извлечь публичный ключ из приватного:
bashopenssl rsa -pubout -in private_key.pem -out public_key.pem
1Создать запрос на сертификат (CSR):
bashopenssl req -new -key private_key.pem -out request.csr
1(Вам потребуется ввести информацию о сертификате — страну, организацию, доменное имя и т.д.)
Генерировать самоподписанный сертификат (для локального теста):
bashopenssl req -x509 -days 365 -key private_key.pem -in request.csr -out certificate.crt
1(Примечание: опция
-in request.csr
подразумевает, что CSR уже создан. Для упрощённой генерации ключа и сертификата одной командой, используйте более короткий вариант — это только для простых тестов.)Посмотреть информацию о сертификате:
bashopenssl x509 -in certificate.crt -text -noout
1
Примечания
- Версии командных инструментов зависят от конкретной версии ServBay.
- Все инструменты доступны прямо из терминала macOS. Если какая-то команда не доступна — проверьте, правильно ли настроены переменные среды ServBay (особенно переменная PATH).
Итог
ServBay — это не просто локальная среда веб-разработки, но и мощный комплект сторонних командных инструментов для обработки изображений, сетевой отладки, управления файлами и решения задач безопасности. Знание и грамотное использование этих встроенных утилит позволяет вывести ваш процесс разработки на новый уровень удобства и эффективности.