Как собрать проект под cygwin. Как выполнить Linux команду из Windows. Как это все инсталлировать

Эта статья будет полезна начинающим пользователям Cygwin. Начнем с того, что нам для начала нужно ответить на простой вопрос. Что же такое Cygwin? Cygwin - это UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. В системе Microsoft Windows уже существует подобный интерфейс cmd. Вызвать командную строку можно сочетанием клавиш Win+R. Но зачастую большую часть работы Windows пользователям приходится делать вручную. По другую сторону Linux пользователь уже давно написал bash-скрипт и сидит пьет пиво в сторонке от автоматизированного рабочего процесса.

Так что же мешает сделать это и в ОС Windows? Правильно, абсолютно ничего не мешает. Но для этого нужны дополнительные программы и библиотеки. Программа Cygwin расширяет возможности стандартной командной строки Windows, позволяя автоматизировать некоторые процессы и разрабатывать программы для Linux и других систем.

Программу Cygwin можно качать с официального сайта: Ссылка на 32 битную версию программы и Ссылка на 64 битную версию программы .

Выбираем нужную версию, скачиваем и запускаем исполнительный файл setup-x86.exe и setup-x86_64.exe соответственно.

Окно установки 64 битной версии программы


Окно выбор способа установки


Окно выбора пакетов

Окно установки 32 битной версии программы выглядит точно так же как и 64 битной. Следующим шагом будет окно выбора. Откуда устанавливать или скачивать программу. Всего есть три варианта. Первый вариант Install from Internet (downloaded files will be kept for future re-use) установка из интернета причем загруженные файлы будут храниться до следующего повторного использования. Второй вариант Download Without Installing скачать без установки. Третий вариант Install from Local Directory установка из локального каталога. Т.к. у нас нет локальной копии и нам нужно установить то выбираем первый вариант. Следующее окно будет выбор пути установки. Рекомендую выбрать системный диск, к примеру у меня путь установки Cygwin это C:\cygwin64. Следующее окно это выбор пути где будут храниться временный файлы которые будут скачиваться в процессе установки. У меня это C:\cygwin64\package. Потом нужно выбрать как скачивать через прокси или напрямую. Следующим шагом будет выбор репозитория скачки выбираем любой попавшийся или тот что по умолчанию и жмем Далее. После нажатия кнопки далее начнется процесс скачивания основных конфигов. Следом вы сможете выбрать что устанавливать. Чтобы выбрать пакет нужно нажать Skip около названия пакета. Список пакетов которые вам пригодятся:

  • gcc-core (в разделе Devel)
  • gcc-g++ (в разделе Devel)
  • make (в разделе Devel)
  • cmake (в разделе Devel)
  • automake (в разделе Devel)
  • wget (в разделе Web)
  • libiconv (в разделах Devel и Libs)
  • openssh (в разделе Net)
  • nano (в разделе Editors)
  • bash (из раздела Base)
  • base-cygwin (из раздела Base)
  • base-files (из раздела Base)
  • cygwin (из раздела Base)
  • file (из раздела Base)
  • gzip (из раздела Base)
  • login (из раздела Base)
  • mintty (из раздела Base)
  • openssl (из раздела Base)
  • run (из раздела Base)
  • tar (из раздела Base)
  • vim-minimal (из раздела Base)
  • cron (из раздела Admin)
  • shutdown (из раздела Admin)
  • git (все пакеты из раздела Devel)

Мне не симпатизировал ни цвет фона, ни встроенный шрифт и цвет текста поэтому я кастомизировал его. На этих словах я закончу эту статью.

Теги: cygwin, для новчиков

Для того чтобы писать приложения под Unix не обязательно его устанавливать (под словом Unix я буду продразумевать все *nix системы). Это утверждение звучит довольно-таки парадоксально, но это действительно так, и в данной статье я попытаюсь вас в этом убедить.

Если вы не являeтесь истинным Unix-гуру, то для того чтобы написать пару приложений под эту ОС или скомпилировать существующие программы вам вовсе не нужно устанавливать Unix . Для данных целей отлично подойдет эмулятор Unix . Существует много замечательных программ, превосходно справляющихся с этой задачей, например: UWin , MinGW , Cygwin и др.

Для компиляции простых программ подойдет и MinGW , но для более сложных он не пригоден. Uwin является более продвинутым эмулятором, но его функциональность значительно уступает другому более популярному эмулятору Cygwin .

Cygwin - это очень функциональный, бесплатный эмулятор Unix . Он распространяется в виде одного-единственного файла (setup.exe ), пусть вас не вводит в заблуждение размер этого файла (~300 kb ), это не сам Cygwin , а только его инсталлятор. Все необходимые утилиты и библиотеки придется скачивать отдельно в процессе установки, или указать в качестве источника локальный каталог, если необходимые файлы у вас уже есть.

Cygwin включает в себя огромное количество разнообразных утилит и библиотек, многие из которых вам наверняка никогда и не понадобятся, но при установке Cygwin позволяет выбрать только нужные вам компоненты. Таким образом, если вы хотите только скомпилировать программу, то вам будет достаточно установить компилятор GCC , набор необходимых библиотек и утилиту make . Лично я установил все приложения, так как Cygwin позволяет легко "избавиться" от них в любое время. На самом деле Cygwin состоит всего из одного файла cygwin1.dll , все остальное является программными пакетами GNU , специально перекомпилированными для работы с Cygwin .



Думаю, что с установкой проблем не возникло. Теперь давайте разберем несколько тонкостей в настройке и в использовании Cygwin . После установки структура папки, в которую была проинсталлированна программа, будет напоминать структуру *nix системы. Для того чтобы запустить Cygwin , достаточно запустить BAT-файл , cygwin.bat , который расположен в корневом каталоге Cygwin (под корневым каталогом будем подразумевать папку, в которую проинсталлирован Cygwin , в дальнейшем отсчет будем вести именно с этого каталога). После запуска BAT-файла перед вами предстанет консольное приложение. Это и есть тот самый Bash , который является связующим звеном между Unix и Windows . Bash - это не просто аналог cmd.exe . Bash - это полноправный язык программирования, на котором можно писать скрипты для выполнения различных задач. Именно этим он в корне отличается от cmd.exe (command.com ).

Приглашение Bash , практически не отличается от cmd.exe (~ - означает ваш домашний каталог). Здесь не существует логических дисков (A, C, D и тд.), отсчет ведется от корневого каталога обозначаемого "/ ". Также необходимо помнить, что регистр здесь имеет значение, так что Etc и etc - два совершенно разных каталога. Давайте попробуем перейти в корневой каталог, для этого достаточно выполнить знакомую вам команду "cd / " (~ должна смениться на / ). После этого наберите команду "dir ", или "ls ", для того чтобы просмотреть содержимое корневого каталога. Думаю, что сейчас вам стало понятно, что такое корневой каталог.





Описать все команды в данной статье я не могу, поэтому перейдем сразу к самому важному этапу, собственно для которого мы и установили Cygwin . Попытаемся скомпилировать какую-нибуддь программу. Для компиляции я выбрал программу Htop (http://freshmeat.net/projects/htop/), это усовершенствованная версия стандартной программы top , которая является консольным менеджером процессов. Первым делом необходимо распаковать архив. Это вы можете сделать как в Windows , так и непосредственно в Cygwin . В Cygwin это делается командой:

tar zxf htop-0.6.tar.gz

Разумеется, что в данный момент вы должны находиться в том же каталоге, где находится архив htop-0.6.tar.gz . После распаковки заходим в созданный каталог htop-0.6 и выполняем три стандартных команды для компиляции приложения.

./configure
make
make install



Вот и все, компиляция закончена. Смело набираем команду htop и любуемся результатом. Получисшийся "EXE"шник" находиться в каталоге /usr/local/bin/ .



Теперь давайте попробуем сами написать простенькую программу (Hello world ) и скомпилировать ее с помощью GCC . Для начала нам нужно написать саму программу, сделаем это с помощью программы cat . Введите команду cat new.c , где new.c имя файла, содержащего исходный код. После выполнения команды напишите следующий код:

#include
int main(){
printf("Hello World");
return 1;}

После того, как код введен нажмите Ctrl+C . Теперь скомпилируем его с помощью GCC . Делается это командой:

Gcc new.c -o new.exe

В той же директории, где находился new.c появится еще один файл - new.exe . Запустив его, вы увидите ожидаемую надпись "Hello World ".



На этом можно было бы завершить статью, но я решил еще рассказать о графической среде Cygwin , чтобы потом не возвращаться к этой теме. Я думаю, вы обратили внимание на то, что при установке пакетов Cygwin предлагает установить оболочки Gnome и KDE . На самом деле это не просто оболочки, а их библиотеки, которые необходимы для запуска приложений. Так, например, графическая версия знаменитого редактора emacs , будет запускаться прямо под Windows , как будто это win32-приложение . Чтобы не быть голословными давайте попробуем этот самый Emacs запустить. Делается это командой:

xemacs

Вот что мы увидим.



Как видите, все прекрасно запускается и работает. Но так бывает не у всех. Графическая среда очень капризна. Поэтому нужно уметь ее конфигурировать. Документации по настройке X-сервера в интернете очень много и вы без труда сможете ее найти.

В конце хотелось бы напомнить, что как бы ни был хорош Cygwin , он всего лишь эмулятор. А как известно копия не может быть лучше оригинала, поэтому если вы хотите стать настоящим Unix-гуру, не поленитесь поставить полноценный unix-дистрибутив. На мой взгляд начинать лучше с Linux . Из всевозможных дистрибутивов рекомендую вам Slackware .

Разработка кроссплатформенных приложений — дело непростое. В особенности оно непростое благодаря 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 можно открыть терминал:

Ребята! Нормальный терминал, который ресайзится, позволяет копировать и вставлять текст, и вот это все! Под винду! Со всем хорошо знакомыми и привычными командами 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 на точно таком же репозитории команда отрабатывает мгновенно.

После статьи Криса Касперски "Как из Windows сделать Unix" в КГ?3 от 23.01.01 я загорелся желанием чуть подробнее рассказать пользователям Windows о том, что такое Cygwin. Пользуюсь я им достаточно давно и уже не могу эффективно работать в Windows без установленного Cygwin.

Слово Cygwin складывается из двух составляющих: Cygnus - это имя компании, и Windows, но было бы неверно сказать, что все в Cygwin написано ребятами из Cygnus. Cygwin - это порт утилит Gnu под Windows, а Gnu (www.gnu.org) - это проект Фонда Свободного Программного Обеспечения (Free Software Foundation, или просто FSF), ставящий своей целью создание некоммерческой Unix системы, не принадлежащей никому в отдельности и свободной от ограничивающих свободу распространения и модификации ПО лицензий. В рамках этого проекта были переписаны заново практически все стандартные утилиты UNIX. Три самых значительных вклада FSF - это gcc (Gnu C Compiler, или Gnu Compiler Collection), Bash (командный интерпретатор Bourne Again Shell) и Emacs. Без gcc не было бы Линукса, а Bash - стандартная командная оболочка для многих современных Unix-систем. Люди с опытом говорят, что первое, что делают сисадмины после установки коммерческих Unix"ов, - это доинсталлируют Gnu утилиты. В принципе, GNU и FSF сами по себе - тема обширная и заслуживающая отдельной подробной статьи.

Весь набор Gnu-утилит представляет собой набор маленьких (как правило) программок, которые покрывают большинство задач, с которыми ежедневно сталкивается пользователь Unix системы (и не только Unix), каждая такая программка выполняет одну задачу, и выполняет ее хорошо. Эти программки могут затем комбинироваться для решения различных задач.

Попытки перенести Gnu на другие, не Unix платформы осуществлялись не раз, что, кстати, свидетельствует об их популярности.

Стоит упомянуть проект портирования утилит под DOS - DJGPP. Сходите на сайт http://www.delorie.com/djgpp/, это действительно интересно.

Cygnus не стал компилировать каждую утилиту в отдельности, мучаясь каждый раз для решения одних и тех же проблем, вместо этого была написана некая "прокладка" между GNU утилитами и операционной системой. Эта прокладка - cygwin1.dll (1 - номер версии) - обеспечивает эмуляцию системных вызовов UNIX, что позволяет компилировать и исполнять Unix программы без или почти без изменения исходного кода. В принципе, эта dll и есть сам Cygwin, а все остальное - программные пакеты GNU, скомпилированные для работы с Cygwin.

Наличие gcc и библиотек дает возможность переносить под Windows самые различные приложения и делает Cygwin полноценной платформой - вы можете иногда найти выражение "Cygwin platform". Со времени первых бета-версий Cygwin различные люди компилировали под Cygwin то, чего им не хватало под Windows, рос постепенно и стандартный дистрибутив Cygwin, в том числе и за счет этих самопальных компиляций. К примеру, во время версии Beta 20 мне приходилось отдельно скачивать редактор vim, а сейчас он ставится вместе со всем набором.

Как это все инсталлировать

В Cygnus написали удобную программку для управления пакетами, слегка напоминающую некоторые аналогичные программы из дистрибуций ОС Линукс. Первый шаг - это скачать ее с сайта Cygnus http://sources.redhat.com/cygwin/setup.exe. Запустив ее, Вы сможете скачать стандартный набор пакетов с одного из многочисленных зеркал, причем Вы можете желать это выборочно, пропуская отдельные пакеты.

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

Эта же программа и поставит Вам Cygwin, опять предлагая самому распорядиться, что устанавливать, а что нет. Инсталляция создаст Вам директории, обычные для файловой иерархии Unix - bin, usr, sbin, и т.д., поэтому удобно поместить их все в какую-то одну директорию, дабы они не путались с Вашими виндозными папками.

И как этим всем пользоваться

Когда Вы запустите Cygwin, вы увидите окошко с консолью, подобное обычной виндозной консоли, command.com в Win9x или cmd.exe в NT. Но нет! У Вас на Windows запустился славный потомок юниксовых командных интерпретаторов, который и пыталась имитировать command.com со своими BAT файлами. Bash и его старший брат sh - это тот клей, который связывает в одно целое Unix систему, он может вполне полноправно называться языком программирования, то есть на нем можно писать.

Несколько основных команд и их аналоги в Windows

ls = dir - просмотреть содержание директории;
cd = chdir - перейти в другую директорию;
cp = copy - скопировать файл;
mv = mv - переместить/переименовать файл;
rm = del - удалить файл;
mkdir = mkdir - создать директорию;
pwd - вывести текущую директорию.

Запомните - большое "A" уже не равно маленькому "a", символ \ теперь должен быть заменен на /. Команда cd / в Cygwin приведет Вас в ту директорию, где находятся bin, usr и т.д. В Unix выше / уже ничего нет, а в Cygwin для того, чтобы путешествовать по виндозным партициям, можно пользоваться командой cd //c/ (cd //d/MyDir и т.д.).

Одна из удобнейших особенностей Bash - это автодополнение (autocompletion). Создадим командой cat несколько файлов:

cat > first_file ENTER

введите что-то, затем Ctr-C,

и то же самое для другого файла:

cat > second_file ENTER.

Убедитесь, что файлы существуют:

Теперь наберите любую команду, например, ls, и первую букву первого файла. Нажмите TAB. Bash сам допишет имя файла. Если файлы начинаются одинаково, например, file_one и file_two, Bash допишет только file_ и подождет, пока Вы введете еще одну букву, чтобы устранить многозначность.

Несколько примеров использования некоторых утилит.

Допустим, у Вас есть текстовый файл in.txt. Посчитать количество слов в нем Вы можете так:

Количество строк:

Найти строки, содержащие последовательность символов Larry:

grep "Larry" in.txt

Разбить строки на слова, заменяя пробелы на символы конца строки:

cat in.txt | gawk "gsub(" +","\n")"

Команда gawk "gsub(" +","\n")" значит - заменить один или больше пробелов (" +") на символ конца строки ("\n").

Сделать то же самое, но с возможностью удобного просмотра (PageUp, PageDown, выйти - q)

cat in.txt | gawk "gsub(" +","\n")" | less

Отсортировать строки (слова):

cat in.txt | gawk "gsub(" +","\n")" | sort | less

Убрать одинаковые строки (слова):

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq | less

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq | wc -l

Убрать одинаковые строки (слова), считая их количество:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | less

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

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r | less

То же самое, с выводом результатов в текстовый файл:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r > out.txt

То же самое, с сохранением промежуточных результатов в файле intermediate.txt:

cat in.txt | gawk "gsub(" +","\n")" | tee intermediate.txt | sort | uniq --count | sort -r | less

Теперь, используя возможности Bash, можно повторить эту команду для нескольких файлов. Набирайте скрипт прямо в консоли, переходя на новую строку так, как это напечатано в статье, - Bash поймет, что команда не закончена и сменит приглашение на ">":

for file in *.txt; do

cat $file | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r > $file.out

Вот так. Простые задачи - простые решения.

Чтобы узнать, как работает та или иная команда, можно запустить ее с ключом --help либо воспользоваться командой man (manual) - man awk, man grep. Выйти из man можно с помощью q.

ЧТО ЕЩЕ ЕСТЬ В CYGWIN

Компилятор

Простой (люди говорят - 1 день обучения) язык программирования для обработки текстов, один из предков Perl

Потоковый редактор

Генератор парсеров на С

Генератор парсеров на С

Язык программирования. Собственно к утилитам Gnu прямого отношения не имеет, некоторое время поддерживался корпорацией Sun. Можно сделать cd /usr/share/tk8.0/demos и запустить программку widget -./widget. Вы увидите демонстрацию возможностей Tk - расширения Tcl для создания GUI.

Архиватор

Мощный архиватор

Программа для сравнения файлов

И очень много другого. Просто зайдите в bin и посмотрите, что у Вас там лежит. Залежи пакетов можно найти на сайте http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html. Также много информации и линков по теме есть на сайте Cygnus http://sources.redhat.com/cygwin/.

Как настроить CYGWIN

Во-первых, Вам совсем не обязательно запускать Bash, если Вас пугает консоль. Вы можете пользоваться всеми программками из Far"а, Windows Commander"а и т.д., нужно только прописать пути к директории bin. В Windows 9x это делается в файле autoexec.bat, в NT в My Computer / Properties / Environment к переменной окружения PATH нужно добавить дорожку к bin.

Для более удобной работы в Bash советую сделать следующее: если директории Cygwin у Вас находятся в c:\cygwin, создать директорию c:\cygwin\root (mkdir /root) и внести строку в файл cygwin.bat, что лежит в c:\cygwin:

HOME=d:\cygwin\root

В директории root следует создать 2 файла, начинающихся с точки: .inputrc и.bashrc. Оба файла исполняются Bash при запуске, .inputrc отвечает за то, чтобы правильно работали все клавиши, а.bashrc содержит различную информацию. Как пример приведу свой.bashrc:

export PS1="\w > "

export PATH=".:$PATH"

alias ls="ls --color"

alias untar="tar xvf"

echo Welcome to CygWin!

Первая строка указывает путь Bash. Так в Юниксе поступают со всеми интерпретаторами. К примеру, если у вас есть скрипт hello.pl на Perl, а сам perl в /usr/bin, Вы можете написать в первой строке:

и запускать его так:

Таким образом, можно запускать программы, не заботясь о том, на чем они написаны.

PS1 - это переменная, в которой хранится Bash prompt, приглашение к работе, как его еще называют. \w - это текущая директория.

После такого добавления к PATH можно делать так, как это привыкли делать Windows пользователи:

Далее я использую синонимы, или alias"ы. К примеру, команда ls по умолчанию не раскрашивает свой вывод в зависимости от того, чем являются файлы, для этого ее нужно запустить с ключом --color. Это неудобно. Командой alias ls="ls --color" я решаю эту проблему. Теперь ls значит ls --color. Не обязательно использовать то же имя команды, можно сделать ll="ls --color" - и пользоваться новой командой ll. Примерно так я делаю, создавая команду untar для распаковки tar архивов, вместо того, чтобы каждый раз набирать tar xvf. В alias можно помещать и pipes (трубы, конвейеры): alias sort_un_sort=" sort | uniq --count | sort -r ".

В действительности простор для обустройства рабочего места здесь безграничен, и мои примеры примитивны и просты. Есть еще функции, интерактивные команды в.bashrc, функции, запускающиеся из приглашения (prompt)...

Если вы иногда все же используете операционную систему от Microsoft, вам, наверное, очень нужны некоторые утилиты Linux в windows. Было бы очень удобно использовать стандартные утилиты командной строки для фильтрации вывода, сортировки, фильтрации и потокового редактирования, в Windows, где такие функции не поддерживаются.

Для реализации этого есть несколько решений. В этой статье мы рассмотрим только два из них. Первое, о котором вы, возможно, уже слышали, а может, уже и используете - Cygwin. Второе, нечто более интересное и новое - Cash. Начнем с Cygwin. В последней версии Windows 10 появилось и третье решение - возможность нативно, с помощью специальной подсистемы. Об этом читайте в отдельной статье.

Cygwin - это набор инструментов, обеспечивающий Unix подобную среду в Windows. Здесь нельзя запускать уже существующие утилиты для Linux. Для того чтобы выполнить linux команду из Windows Cygwin, ее нужно сначала перекомпилировать.

Тем не менее пересобрано уже достаточно много программного обеспечения. Cygwin даст вам Linux подобную среду со многими утилитами, к которым вы уже привыкли в Linux. Его можно использовать как для стандартных утилит таких как команда cp windows, так и для подключения к удаленному серверу по ssh.

Установка Cygwin

Как и другие программы Windows, Cygwin устанавливается с помощью установщика в формате.exe. Скачать его можно на официальном сайте.

Для установки вам придется пройти несколько шагов мастера, по умолчанию программа будет установлена в C:\Cygwin:

С установочным пакетом не поставляется полный набор окружения. Оно будет загружено в процессе установки. В этом окне нужно выбрать сервер для загрузки компонентов:

Затем необходимо выбрать пакеты, которые нужно загрузить и установить. Доступно довольно-таки много программ и они рассортированы по категориям. Если вы не знаете нужен ли вам тот или иной пакет, оставьте значение по умолчанию. Вы сможете установить их потом:

Осталось только нажать Next для начала загрузки и завершения установки.

Добавление Cygwin в Path

После завершения установки, чтобы выполнить команды linux в windows с максимальным удобством, желательно добавить папку с исполняемыми файлами Cygwin в переменную среды Path.

Вы можете запустить терминал Cygwin, кликнув по ярлыку на рабочем столе. Откроется терминал с папкой C:\Cygwin\bin

Здесь можно выполнять все нужные linux команды в windows, но вы не сможете их выполнить в другой директории или другом терминале.

Чтобы решить эту проблему, необходимо добавить папку Cygwin в переменную Path. Откройте окно свойства системы с помощью сочетания клавиш Win+Pause/Break, затем выберите пункт Дополнительные параметры системы на левой панели:

На вкладке дополнительно выберите Переменные среды :

Найдите в списке переменную Path и нажмите Изменить :

Добавьте в конец строки вот такую запись:

Обратите внимание, что все пути должны быть разделены точкой с запятой. Осталось нажать Ок и тестировать выполнение Linux команд в Windows.

Cash

Это кое-что совсем новое. Утилита с открытым исходным кодом Cash, это кроссплатформенная реализация командной оболочки Linux на JavaScript. Цель этого проекта обеспечить более гибкую, простую альтернативу Cygwin, для тех кто хочет чувствовать себя в WIndows, как и в Linux.

Установив Cash, вы сможете выполнить linux команду из windows в любом эмуляторе терминала, в том числе в стандартной командной строке Windows.

На данный момент поддерживаются только некоторые утилиты linux для windows. Вот список поддерживаемых:

  • alias
  • clear
  • export
  • false
  • mkdir
  • source
  • touch
  • unalias

Так как утилита еще находится на стадии разработки, то список команд Linux в Windows будет постоянно увеличиваться. Вы также можете проголосовать за добавление команд которые вам нужны.

Вот как все работает:

Что самое интересное, вы можете комбинировать Windows и Linux команды. Например, вы можете выполнить:

ipconfig | grep IPv4 | sort

И команда правильно отработает. Сначала выполнится ipconfig, а затем результат будет отфильтрован с помощью Grep.

Установка Cash в Windows

Я буду устанавливать Cash в Windows 10. Это делается очень просто и работает также в более старых версиях Windows. Поскольку Cash основан на JavaScript для его работы необходимо установить Node.js. Скачать Node.js можно на официальном сайте:

После того как Node.js Будет установлена, можно переходить к установке Cash. Его можно установить в нескольких режимах:

  • Ручное использование Cash - нужно выполнить cash чтобы начать запускать linux команды
  • Глобальное использование - linux команды доступны во всех терминалах windows
  • Установить только некоторые команды - вы можете выбрать компоненты для установки если не хотите ставить все

Для установки Cash глобально откройте командную строку Windows с помощью Win+R:

npm install cash-global -g

Установка может занять несколько минут, в зависимости от скорости вашего интернет-соединения. После завершения установки вы можете сразу тестировать Linux команды в Windows.

Выводы

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

Нам, пользователям Linux нечасто понадобиться использование unix команд в windows и такие инструменты. Мы можем использовать Linux команды напрямую в нашей системе. Но если вы по каким-либо причинам не можете установить Linux, и все же хотите использовать linux команды, это может быть отличным решением.

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.