Разработка кроссплатформенных приложений — дело непростое. В особенности оно непростое благодаря Windows, в котором все не как у людей. Тут тебе ни нормального терминала, ни нормальных консольных утилит, вообще ничего нет! В очередной раз столкнувшись с этой проблемой, я решил снова попробовать Cygwin. И знаете, оказывается, он действительно делает из Windows нечто, чем почти можно пользоваться!

Скачать инсталлятор Cygwin можно отсюда . На самом деле, это не столько инсталлятор, сколько пакетный менеджер, который при запуске прямо таки спрашивает, какие пакеты вы хотели бы поставить. Ребята! Пакетный менеджер! Под винду! Инсталлятор создает кэш в каталоге, из которого он будет запущен. Поэтому перед запуском лучше создать какую-нибудь специальную папочку на рабочем столе и положить инсталлятор в нее.

Какие пакеты на мой взгляд необходимо поставить:

  • openssh — мастхев;
  • inetutils , bind-utils , ping , nc и nc6 — мастхев;
  • wget , curl — мастхев;
  • python и/или python3 — считаю, что мастхев;
  • vim , gvim — для правки небольших файлов лишним не будет;
  • diffutils , pwgen , unzip , rzync — пусть будут на всякий случай;
  • gcc и/или clang , cmake , gdb — если нужно;
  • screen , tmux , mc — для любителей;
  • git — под очень большим вопросом, см ниже;

Обратите внимание! Чтобы в Cygwin установить pip, поставьте галочку напротив пакета python-setuptools и/или python3-setuptools . После установки в терминале скажите:

easy_install-2.7 pip

… и/или:

easy_install-3.4 pip

…, смотря какую версию или версии Python вы поставили.

Итак, после установки Cygwin можно открыть терминал:

Cygwin

Ребята! Нормальный терминал, который ресайзится, позволяет копировать и вставлять текст, и вот это все! Под винду! Со всем хорошо знакомыми и привычными командами id, ls, pwd, cat, ssh, scp, и другими. С человеческим окружением — .bashrc, ~/.ssh/config, и так далее. Плюс к этому, в отличие от позорной поделки под названием PowerShell, Cygwin не тащит за собой .NET Framework. Мы даже можем открыть несколько терминалов и переключаться между ними при помощи сочетания Ctr + Tab. Это почти как табы! Понятное дело, старый-добрый Alt + Tab тоже работает.

Выше я не советовал устанавливать Git , и вот почему. Дело в том, что в Cygwin он заметно тормозит. Тут рекомендуют выполнить команды:

git config —global core.preloadindex true
git config —global core.fscache true
git config —global gc.auto 256

Но это, к сожалению, не решает проблему полностью. Так на большом проекте команда git status может выполняться секунд 20. В Linux на точно таком же репозитории команда отрабатывает мгновенно. Git for Windows с включенным флагом core.fscache (который можно поставить прямо в инсталляторе) работает заметно лучше, поэтому советую использовать его.

Еще вы можете обнаружить, что курсор очень трудно разглядеть, когда он находится над черным терминалом. В панели управления можно поменять, как выглядит курсор, расположенный над текстом — это решает проблему.

Также расстроило, что среди доступных пакетов не удалось обнаружить Nmap .

В остальном же Cygwin прекрасен и делает жизнь под Windows почти что сносной. Еще с его помощью можно установить Zsh , Gimp, Emacs, Mutt , Irssi , Texlive, Apache, MySQL и PostgreSQL например. Плюс чуть ли не весь KDE можно установить. Правда, на такие эксперименты я не отваживался.

А пользуетесь ли вы Cygwin и каковы ваши впечатления от него?

EnglishRussianUkrainian