NefigTut ([info]nefigtut) wrote,

Юниксовые утилиты командной строки для Windows // Unix-like command line utilities for Windows

Я фанат командной строки. Точнее, я считаю её весьма удобным инструментом. И использую из Far-а в этих своих Windows. Хе-хе, сколько сразу конфликтных тем – cmdline/gui, Far/TC, Linux/Windows – можно устроить Холивор и Срачъ.

Так вот. Здесь я хочу описать набор утилит командной строки, портированных на Windows, которые считаю удобными и полезными иметь на своём Windows-десктопе. Это именно standalone-бинарники, а не Cygwin, так как я хочу иметь xcopy-style deployment (скопировал куда-нибудь в %PATH% и ололо), без записей в реестр или конфиг-файлы. Все ссылки и версии приведены и работают на настоящий момент, со временем, конечно, версии будут устаревать, а ссылки – протухать.

Почти для всех программ требуется Microsoft Visual C++ 2008 SP1 Redistributable Package, который скорее всего уже есть в системе. Если нет – качать и ставить: x86 и x64 версии. Многие программы взяты из проекта GNUWin32, полный список пакетов смотреть здесь – мало ли, может кому sed понадобится.

  • Integrated pack

Всё, что упомянуто ниже, версии на настоящий момент, собрано в один пакет cmdline-unix-4-windows.zip. Распаковываете архив, бинарники из c-windows кладёте в %SystemRoot%, библиотеки из c-windows-system кладёте в %SystemRoot%\system (этот layout работает, по крайней мере, на Windows 7).

На всякий случай рядом лежат рантаймы от VC++ x86 и x64.

  • wget

Адовый инструмент для скачивания почти чего угодно. Идём на домашнюю страницу виндового порта wget, скачиваем архив с бинарником и архив с зависимостями. wget с версии примерно 1.10 начал поддерживать SSL, поэтому ему теперь нужна SSL-библиотека и еще по мелочи всякого. wget.exe из первого архива кладём в C:\Windows. Библиотеки libeay32.dll, libiconv2.dll, libintl3.dll и libssl32.dll из второго архива кладём в C:\Windows\system. Пыщ.

C:\>wget.exe --help | more
GNU Wget 1.11.4, a non-interactive network retriever.
Usage: C:\Windows\wget [OPTION]... [URL]...

  • dig

Адовый инструмент для выполнения запросов к DNS-серверам. То же, что nslookup, только в стопицот раз удобнее. Отдельно его нет, он входит в стандартный комплект DNS-сервера BIND. Идём на домашнюю страницу BIND-a, качаем архив для Windows (на текущий момент последний стабильный релиз – 9.7.3), достаём из архива dig.exe и host.exe, кладём его в C:\Windows. Так как они часть BIND, то требуют кучу его библиотек для своей работы – достаём из архива libbind9.dll, libdns.dll, libisc.dll, libisccfg.dll, liblwres.dll и libxml2.dll и кладём в C:\Windows\system. Также нужен libeay32.dll, если он не скопирован во время установки wget-а. И вот ололо.

C:\>dig ru ns
; <<>> DiG 9.7.3 <<>> ru ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42415
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 12

  • scp

Иногда надо потаскать файлы взад-назад с юникс-сервера на виндовый десктоп. Для этого нужен scp из командной строки. Идём на домашнюю страницу PuTTY. Это сам по себе зач0тный инструмент, хотя некоторые ребе считают более кошерным Bitvise Tunnelier, но для моих целей это overkill. Скачиваем по ссылке pscp.exe, переименовываем в scp.exe и кладём в C:\Windows. Вуаля.

C:\>scp pagefile.sys root@shell.ru:/root/
root@shell.ru's password:

  • bc

Калькулятор командной строки. Берём с домашней страницы виндового порта bc архив с бинарником и архив с зависимостями, кладём bc.exe из первого архива в C:\Windows, кладём readline5.dll из второго архива в C:\Windows\system.

По умолчанию bc.exe работает с целыми числами. Чтобы он считал с, например, 20-ю знаками после запятой надо либо сказать ему scale=20 перед вычислениями, либо запустить с опциями -lq, либо поместить эти опции в переменную окружения BC_ENV_ARGS. Выход из интерактивного режима – Ctrl-D.

C:\>bc -lq
1/3
.33333333333333333333
scale=8
1/3
.33333333

  • grep

Оттуда же берём grep. А так же egrep и fgrep. Бинарники из архива с бинарниками кладём в C:\Windows, библиотеки из архива с зависимостями – в C:\Windows\system.

C:\>grep -V
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.

  • ls

Иногда возможностей виндового dir не хватает. Отсюда берём портированный ls с виндовыми дополнениями, распаковываем архив и копируем ls.exe в C:\Windows. Почитайте ls.exe ––help – там много интересного.

  • dd

Иногда надо поработать напрямую с дисками. Прям как в линуксовом dd. Идём на домашнюю страницу, скроллим вниз, берём из архива бинарник dd.exe и кладём в C:\Windows. Сделайте dd.exe ––list 2>&1 | more – увидите всякое.

А вот как потырить MBR с первого диска. Partition0 – весь диск. Запускать, естественно, именем и властью администратора.

C:\>dd.exe if=\\?\Device\Harddisk0\Partition0 of=boot.img bs=512 count=1
rawwrite dd for windows version 0.6beta3.
1+0 records in
1+0 records out

  • MD5, SHA1 и SFV

Посчитать контрольные суммы скачанного чего-нибудь. md5sum: домашняя страница, бинарник. sha1sum: домашняя страница, бинарник. sfv: источник утерян, но остались сотни ссылок на файлопомойках. Качаем это всё и кладём в C:\Windows.

Заключение

Конечно, здесь не упомянуты более 9000 других «кульных прожек» и «тулзов». Здесь те, которыми пользуюсь лично я.

Пыщь! Оригинал поста размещен в блоге Ад, ненависть и локалхост. Комментить? Набигай. Подкат? ОИНЧ.


Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…