GNU on Windows
После нескольких лет работы в консоли (Linux
или OS X
), возвращаясь в коммандную строку
Windows
– очень не хватает простейших утилит, типа diff
, grep
, md5sum
, sort
, uniq
и, конечно же, wget
/curl
.
Когда-то, в бытность Windows XP
пользовался пакетом UnxUtils. Пакет этот, судя по всему, сейчас заброшен и давно не обновлялся. Есть ещё пакет GNUWin32 (для него есть утилита GetGNUWin32, для автоматизации процесса скачивания и установки пакетов GNUWin32
). Он посвежее, но последние версии тоже датируются аж 2010-м годом. А ещё этот GNUWin32
показался мне каким-то большим и слишком громоздким.
После небольших поисков был найден ещё один вариант – GNU on Windows. Этот пакет судя по всему основан на GNUWin32
, но какие-то программы в нём немного новее, нежели в исходном GNUWin32
.
Пакет устанавливается, прописывается в $PATH
и мы получаем следующие утилитки:
C:\Users\wakko>gow --version Gow 0.8.0 C:\Users\wakko>gow --list Available executables: awk, basename, bash, bc, bison, bunzip2, bzip2, bzip2recover, cat, chgrp, chmod, chown, chroot, cksum, clear, cp, csplit, curl, cut, dc, dd, df, diff, diff3, dirname, dos2unix, du, egrep, env, expand, expr, factor, fgrep, flex, fmt, fold, gawk, gfind, gow, grep, gsar, gsort, gzip, head, hostid, hostname, id, indent, install, join, jwhois, less, lesskey, ln, ls, m4, make, md5sum, mkdir, mkfifo, mknod, mv, nano, ncftp, nl, od, pageant, paste, patch, pathchk, plink, pr, printenv, printf, pscp, psftp, putty, puttygen, pwd, rm, rmdir, scp, sdiff, sed, seq, sftp, sha1sum, shar, sleep, split, ssh, su, sum, sync, tac, tail, tar, tee, test, touch, tr, uname, unexpand, uniq, unix2dos, unlink, unrar, unshar, uudecode, uuencode, vim, wc, wget, whereis, which, whoami, xargs, yes, zip
Нужно только иметь в виду что gnu
-тый sort здесь переименован в gsort, для того чтобы не перекрываться sort
'ом из Windows
. В установленном виде пакет занимает всего 22Мб.
Update: Правда есть в пакете и глючная утилитка, tail
из этого пакета не выполняет своих обязанностей, вместо отображения последних строк текстового файла и ожидания дополнения файла, ругается ошибками "Bad file descriptor" и "no files remaining". Поэтому tail
лучше всего взять из пакета UnxUtils.
Update 2: А вот отсюда можно взять свежий wget
версии 1.16.1
.